pidgin-encryption-3.1/0000777000175100017510000000000011365216007012027 500000000000000pidgin-encryption-3.1/pidgin-encryption-installer.nsi0000644000175100017510000003036711365171052020124 00000000000000;NSIS Script For Pidgin-Encryption Plugin (MUI version) ; Based on installers by Mike Campell and Daniel Atallah, and on the Pidgin installer by ; Herman Bloggs. Many thanks! ; probably will not work with older versions of NSIS ; Requires NSIS 2.0 or greater Name "Pidgin-Encryption ${PIDGIN-ENCRYPTION_VERSION}" !define MY_NAME Name ; Registry keys: !define PIDGIN_ENCRYPTION_REG_KEY "SOFTWARE\pidgin-encryption" !define PIDGIN_ENCRYPTION_UNINSTALL_KEY "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\pidgin-encryption" !define PIDGIN_ENCRYPTION_UNINST_EXE "pidgin-encryption-uninst.exe" !define ALL_LINGUAS "bg cs da de es fr hu it ja lt nl nn pl pt_BR pt_PT ro ru sl sv ta tr uk zh_CN zh_TW" !include "MUI.nsh" ;Do A CRC Check CRCCheck On ;Output File Name OutFile "pidgin-encryption-${PIDGIN-ENCRYPTION_VERSION}.exe" ShowInstDetails show ShowUnInstDetails show SetCompressor lzma ; Translations ; Modern UI Configuration !define MUI_ICON .\nsis\install.ico !define MUI_UNICON .\nsis\install.ico !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_BITMAP "nsis\header.bmp" ; Pidgin Plugin installer helper stuff ;!addincludedir "..\..\src\win32\nsis" ;!include "pidgin-plugin.nsh" ; Pages ; !insertmacro MUI_LANGDLL_DISPLAY !define MUI_WELCOMEPAGE_TITLE $(WELCOME_TITLE) !define MUI_WELCOMEPAGE_TEXT $(WELCOME_TEXT) !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "./COPYING" !define MUI_DIRECTORYPAGE_TEXT_TOP $(DIR_SUBTITLE) !define MUI_DIRECTORYPAGE_TEXT_DESTINATION $(DIR_INNERTEXT) !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !define MUI_FINISHPAGE_TITLE $(FINISH_TITLE) !define MUI_FINISHPAGE_TEXT $(FINISH_TEXT) !insertmacro MUI_PAGE_FINISH ; MUI Config !define MUI_CUSTOMFUNCTION_GUIINIT encrypt_checkPidginVersion !define MUI_ABORTWARNING !define MUI_UNINSTALLER !define MUI_PROGRESSBAR smooth !define MUI_INSTALLCOLORS /windows ; !define MUI_FINISHPAGE_TEXT $(G-E_INSTALL_FINISHED) ; !define MUI_FINISHPAGE_NOAUTOCLOSE ;!define MUI_TEXT_WELCOME_INFO_TEXT $(WELCOME_TEXT) ;!define MUI_TEXT_DIRECTORY_SUBTITLE $(DIR_SUBTITLE) ;!define MUI_INNERTEXT_DIRECTORY_TOP $(DIR_INNERTEXT) ;; Here in alphabetical order in native language ;; i.e. Danish, Deutsch, Espanol, Francais... , not Danish, French, German, Spanish... ;; English first as a default !insertmacro MUI_LANGUAGE "English" !insertmacro MUI_LANGUAGE "Bulgarian" !insertmacro MUI_LANGUAGE "Czech" !insertmacro MUI_LANGUAGE "Danish" !insertmacro MUI_LANGUAGE "SimpChinese" !insertmacro MUI_LANGUAGE "TradChinese" !insertmacro MUI_LANGUAGE "German" !insertmacro MUI_LANGUAGE "Spanish" !insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "Hungarian" !insertmacro MUI_LANGUAGE "Italian" !insertmacro MUI_LANGUAGE "Japanese" !insertmacro MUI_LANGUAGE "Lithuanian" !insertmacro MUI_LANGUAGE "Dutch" !insertmacro MUI_LANGUAGE "Norwegian" !insertmacro MUI_LANGUAGE "Polish" !insertmacro MUI_LANGUAGE "Portuguese" !insertmacro MUI_LANGUAGE "PortugueseBR" !insertmacro MUI_LANGUAGE "Romanian" !insertmacro MUI_LANGUAGE "Russian" !insertmacro MUI_LANGUAGE "Slovenian" !insertmacro MUI_LANGUAGE "Turkish" !insertmacro MUI_LANGUAGE "Ukrainian" !include "nsis\translations\english.nsh" !include "nsis\translations\czech.nsh" !include "nsis\translations\danish.nsh" !include "nsis\translations\trad-chinese.nsh" !include "nsis\translations\german.nsh" !include "nsis\translations\spanish.nsh" !include "nsis\translations\french.nsh" !include "nsis\translations\hungarian.nsh" !include "nsis\translations\italian.nsh" !include "nsis\translations\japanese.nsh" !include "nsis\translations\lithuanian.nsh" !include "nsis\translations\dutch.nsh" !include "nsis\translations\norwegian.nsh" !include "nsis\translations\polish.nsh" !include "nsis\translations\portugueseBR.nsh" !include "nsis\translations\romanian.nsh" !include "nsis\translations\russian.nsh" !include "nsis\translations\slovenian.nsh" !include "nsis\translations\turkish.nsh" !include "nsis\translations\ukrainian.nsh" !define MUI_LICENSEPAGE_RADIOBUTTONS ;The Default Installation Directory InstallDir "$PROGRAMFILES\pidgin" InstallDirRegKey HKLM SOFTWARE\pidgin "" Section -SecUninstallOldPlugin ; Check install rights.. Call CheckUserInstallRights Pop $R0 StrCmp $R0 "HKLM" rights_hklm StrCmp $R0 "HKCU" rights_hkcu done rights_hkcu: ReadRegStr $R1 HKCU ${PIDGIN_ENCRYPTION_REG_KEY} "" ReadRegStr $R2 HKCU ${PIDGIN_ENCRYPTION_REG_KEY} "Version" ReadRegStr $R3 HKCU "${PIDGIN_ENCRYPTION_UNINSTALL_KEY}" "UninstallString" Goto try_uninstall rights_hklm: ReadRegStr $R1 HKLM ${PIDGIN_ENCRYPTION_REG_KEY} "" ReadRegStr $R2 HKLM ${PIDGIN_ENCRYPTION_REG_KEY} "Version" ReadRegStr $R3 HKLM "${PIDGIN_ENCRYPTION_UNINSTALL_KEY}" "UninstallString" ; If previous version exists .. remove try_uninstall: StrCmp $R1 "" done StrCmp $R2 "" uninstall_problem IfFileExists $R3 0 uninstall_problem ; Have uninstall string.. go ahead and uninstall. SetOverwrite on ; Need to copy uninstaller outside of the install dir ClearErrors CopyFiles /SILENT $R3 "$TEMP\${PIDGIN_ENCRYPTION_UNINST_EXE}" SetOverwrite off IfErrors uninstall_problem ; Ready to uninstall.. ClearErrors ExecWait '"$TEMP\${PIDGIN_ENCRYPTION_UNINST_EXE}" /S _?=$R1' IfErrors exec_error Delete "$TEMP\${PIDGIN_ENCRYPTION_UNINST_EXE}" Goto done exec_error: Delete "$TEMP\${PIDGIN_ENCRYPTION_UNINST_EXE}" Goto uninstall_problem uninstall_problem: ; Just delete the plugin and uninstaller, and remove Registry key MessageBox MB_YESNO $(PIDGIN_ENCRYPTION_PROMPT_WIPEOUT) IDYES do_wipeout IDNO cancel_install cancel_install: Quit do_wipeout: StrCmp $R0 "HKLM" del_lm_reg del_cu_reg del_cu_reg: DeleteRegKey HKCU ${PIDGIN_ENCRYPTION_REG_KEY} Goto uninstall_prob_cont del_lm_reg: DeleteRegKey HKLM ${PIDGIN_ENCRYPTION_REG_KEY} uninstall_prob_cont: Delete "$R1\plugins\encrypt.dll" Delete "$R3" done: SectionEnd Section "Install" Call CheckUserInstallRights Pop $R0 StrCmp $R0 "NONE" instrights_none StrCmp $R0 "HKLM" instrights_hklm instrights_hkcu instrights_hklm: ; Write the version registry keys: WriteRegStr HKLM ${PIDGIN_ENCRYPTION_REG_KEY} "" "$INSTDIR" WriteRegStr HKLM ${PIDGIN_ENCRYPTION_REG_KEY} "Version" "${PIDGIN-ENCRYPTION_VERSION}" ; Write the uninstall keys for Windows WriteRegStr HKLM ${PIDGIN_ENCRYPTION_UNINSTALL_KEY} "DisplayName" "$(PIDGIN_ENCRYPTION_UNINSTALL_DESC)" WriteRegStr HKLM ${PIDGIN_ENCRYPTION_UNINSTALL_KEY} "UninstallString" "$INSTDIR\${PIDGIN_ENCRYPTION_UNINST_EXE}" SetShellVarContext "all" Goto install_files instrights_hkcu: ; Write the version registry keys: WriteRegStr HKCU ${PIDGIN_ENCRYPTION_REG_KEY} "" "$INSTDIR" WriteRegStr HKCU ${PIDGIN_ENCRYPTION_REG_KEY} "Version" "${PIDGIN-ENCRYPTION_VERSION}" ; Write the uninstall keys for Windows WriteRegStr HKCU ${PIDGIN_ENCRYPTION_UNINSTALL_KEY} "DisplayName" "$(PIDGIN_ENCRYPTION_UNINSTALL_DESC)" WriteRegStr HKCU ${PIDGIN_ENCRYPTION_UNINSTALL_KEY} "UninstallString" "$INSTDIR\${PIDGIN_ENCRYPTION_UNINST_EXE}" Goto install_files instrights_none: ; No registry keys for us... install_files: SetOutPath $INSTDIR SetCompress Auto SetOverwrite on File /r ".\win32-install-dir\*.*" StrCmp $R0 "NONE" done CreateShortCut "$SMPROGRAMS\Pidgin\Pidgin-Encryption Uninstall.lnk" "$INSTDIR\${PIDGIN_ENCRYPTION_UNINST_EXE}" WriteUninstaller "$INSTDIR\${PIDGIN_ENCRYPTION_UNINST_EXE}" SetOverWrite off done: SectionEnd Section Uninstall Call un.CheckUserInstallRights Pop $R0 StrCmp $R0 "NONE" no_rights StrCmp $R0 "HKCU" try_hkcu try_hklm try_hkcu: ReadRegStr $R0 HKCU ${PIDGIN_ENCRYPTION_REG_KEY} "" StrCmp $R0 $INSTDIR 0 cant_uninstall ; HKCU install path matches our INSTDIR.. so uninstall DeleteRegKey HKCU ${PIDGIN_ENCRYPTION_REG_KEY} DeleteRegKey HKCU "${PIDGIN_ENCRYPTION_UNINSTALL_KEY}" Goto cont_uninstall try_hklm: ReadRegStr $R0 HKLM ${PIDGIN_ENCRYPTION_REG_KEY} "" StrCmp $R0 $INSTDIR 0 try_hkcu ; HKLM install path matches our INSTDIR.. so uninstall DeleteRegKey HKLM ${PIDGIN_ENCRYPTION_REG_KEY} DeleteRegKey HKLM "${PIDGIN_ENCRYPTION_UNINSTALL_KEY}" ; Sets start menu and desktop scope to all users.. SetShellVarContext "all" cont_uninstall: ; plugin Delete "$INSTDIR\plugins\encrypt.dll" ; all locales Push $R0 ;save old values Push $R1 Push $R2 Push "${ALL_LINGUAS}" Pop $R0 ;initialize input array alllinguas: StrLen $R1 $R0 ;length of input array IntCmp $R1 0 alldone IntOp $R1 $R1 + 1 uptodelimiter: IntOp $R1 $R1 - 1 IntCmp $R1 0 fullof fullof StrCpy $R2 $R0 1 -$R1 StrCmp $R2 "" fullof StrCmp $R2 " " partof Goto uptodelimiter partof: StrCpy $R2 $R0 -$R1 IntOp $R1 $R1 - 1 StrCpy $R0 $R0 "" -$R1 Goto dodelwork fullof: StrCpy $R2 $R0 StrCpy $R0 "" dodelwork: StrCpy $R1 "$INSTDIR\locale" Push $R1 StrCpy $R1 "$R1\$R2" Push $R1 StrCpy $R1 "$R1\LC_MESSAGES" Delete "$R1\pidgin-encryption.mo" RMDir $R1 Pop $R1 RMDir $R1 Pop $R1 RMDir $R1 Goto alllinguas alldone: Pop $R2 ;restore old values Pop $R1 Pop $R0 ; uninstaller shortcut Delete "$SMPROGRAMS\Pidgin\Pidgin-Encryption Uninstall.lnk" ; uninstaller Delete "$INSTDIR\${PIDGIN_ENCRYPTION_UNINST_EXE}" Delete "$INSTDIR\pixmaps\pidgin-encryption\*.png" RMDir "$INSTDIR\pixmaps\pidgin-encryption" ; try to delete the Pidgin directories, in case it has already uninstalled RMDir "$INSTDIR\plugins" RMDIR "$INSTDIR\locale" RMDir "$INSTDIR" RMDir "$SMPROGRAMS\Pidgin" Goto done cant_uninstall: MessageBox MB_OK $(un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1) IDOK Quit no_rights: MessageBox MB_OK $(un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2) IDOK Quit done: SectionEnd Function .onVerifyInstDir IfFileExists $INSTDIR\pidgin.exe Good1 Abort Good1: FunctionEnd Function encrypt_checkPidginVersion ; Push $R0 ; Push ${PIDGIN_VERSION} ; Call CheckPidginVersion ; Pop $R0 ; ; StrCmp $R0 ${PIDGIN_VERSION_OK} encrypt_checkPidginVersion_OK ; ; StrCmp $R0 ${PIDGIN_VERSION_INCOMPATIBLE} +1 +6 ; Call GetPidginVersion ; IfErrors +3 ; Pop $R0 ; MessageBox MB_OK|MB_ICONSTOP "$(BAD_PIDGIN_VERSION_1) $R0 $(BAD_PIDGIN_VERSION_2)" ; goto +2 ; MessageBox MB_OK|MB_ICONSTOP "$(UNKNOWN_PIDGIN_VERSION)" ; Quit ; ; encrypt_checkPidginVersion_OK: ; Pop $R0 FunctionEnd Function CheckUserInstallRights ClearErrors UserInfo::GetName IfErrors Win9x Pop $0 UserInfo::GetAccountType Pop $1 StrCmp $1 "Admin" 0 +3 StrCpy $1 "HKLM" Goto done StrCmp $1 "Power" 0 +3 StrCpy $1 "HKLM" Goto done StrCmp $1 "User" 0 +3 StrCpy $1 "HKCU" Goto done StrCmp $1 "Guest" 0 +3 StrCpy $1 "NONE" Goto done ; Unknown error StrCpy $1 "NONE" Goto done Win9x: StrCpy $1 "HKLM" done: Push $1 FunctionEnd Function un.CheckUserInstallRights ClearErrors UserInfo::GetName IfErrors Win9x Pop $0 UserInfo::GetAccountType Pop $1 StrCmp $1 "Admin" 0 +3 StrCpy $1 "HKLM" Goto done StrCmp $1 "Power" 0 +3 StrCpy $1 "HKLM" Goto done StrCmp $1 "User" 0 +3 StrCpy $1 "HKCU" Goto done StrCmp $1 "Guest" 0 +3 StrCpy $1 "NONE" Goto done ; Unknown error StrCpy $1 "NONE" Goto done Win9x: StrCpy $1 "HKLM" done: Push $1 FunctionEnd Function .onInit !insertmacro MUI_LANGDLL_DISPLAY FunctionEnd pidgin-encryption-3.1/icon_unlock.xpm0000644000175100017510000000204711365171052014777 00000000000000/* XPM */ static char * icon_unlock_xpm[] = { "26 24 19 1", " c None", ". c #5C5C5C", "+ c #656565", "@ c #7B7B7B", "# c #313131", "$ c #A0A0A0", "% c #9B9B9B", "& c #585858", "* c #6A6A6A", "= c #828282", "- c #7B7B7B", "; c #929292", "> c #4D4D4D", ", c #676767", "' c #E1E1E1", ") c #FFFFFF", "! c #C3C3C3", "~ c #A2A2A2", "{ c #848484", " ", " $@++++@@ ", " $@.++++@@& ", " $$@@##%%..&& ", " %@@## %..&& ", " %%** ++== ", " %%** ++== ", " ;;** >>== ", " ;;** >>== ", " ,,,,,,,,,,,,,,,, ", " ,,,,,,,,,,,,,,,, ", " ,,''))''!!!!~~,, ", " ,,''))''!!!!~~,, ", " ,,~~!!~~~!{{,,,, ", " # ,,~~!!~~~!{{,,,, ", " *# ,,''))''!!!!~~,, ", " ####### ,,''))''!!!!~~,, ", " *# ,,~~!!~~!!{{,,,, ", " # ,,~~!!~~!!{{,,,, ", " ,,''))''!!!!~~,, ", " ,,''))''!!!!~~,, ", " ,,,,,,,,,,,,,,,, ", " ,,,,,,,,,,,,,,,, ", " "}; pidgin-encryption-3.1/ltmain.sh0000755000175100017510000073337411365171220013604 00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 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. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6 Debian-2.2.6a-4 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6 Debian-2.2.6a-4" TIMESTAMP="" package_revision=1.3012 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; 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' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $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, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 pidgin-encryption-3.1/internal.h0000644000175100017510000000025411365171052013731 00000000000000#ifndef G_GNUC_NULL_TERMINATED # if __GNUC__ >= 4 # define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__)) # else # define G_GNUC_NULL_TERMINATED # endif #endif pidgin-encryption-3.1/WISHLIST0000644000175100017510000000130311365171052013131 00000000000000Features that would be good to put in, things that should be done better, etc Cleanup / Modernization: There are a bunch of lists and hashmaps, some of which should be consolidated, maybe. There are things that have progressed in Pidgin that haven't been caught up with here yet. Like Gaim now has an icon "stock", so we probably don't need our own anymore (add our icons to Gaim's stock instead). The config could probably be moved into the main gaim config, I think... although I'm not sure how well that would work. Audit: Someone should go through the code and audit for security. (thanks to Joe Testa at Rapid7 for doing some auditing already) (and to Michael Wright) pidgin-encryption-3.1/rsa_nss.h0000755000175100017510000000276411365171052013600 00000000000000/* NSS keys for the Pidgin encryption plugin */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #ifndef NSSRSA_H #define NSSRSA_H #include "pidgin-encryption-config.h" #include #include "nonce.h" /* suppress warnings: our header defines this, then nss tries to */ #ifdef HAVE_LONG_LONG #undef HAVE_LONG_LONG #endif /* From NSS libraries: */ #include #include typedef struct { SECKEYPrivateKey* priv; SECKEYPublicKey* pub; Nonce nonce; } RSA_NSS_KEY; extern gboolean rsa_nss_init(void); #endif pidgin-encryption-3.1/pe_blist.h0000644000175100017510000000053111365171052013714 00000000000000#ifndef PE_BLIST_H #define PE_BLIST_H #include #include #include #include #include "pidgin-encryption-config.h" void PE_buddy_menu_cb(PurpleBlistNode* node, GList **menu, void* data); gboolean PE_get_buddy_default_autoencrypt(const PurpleAccount* account, const char* buddyname); #endif pidgin-encryption-3.1/nls.h0000644000175100017510000000105411365171052012710 00000000000000#ifndef GE_NLS_H #define GE_NLS_H #ifdef HAVE_CONFIG_H # include #endif #ifdef ENABLE_NLS #ifdef _ # undef _ #endif #ifdef N_ # undef N_ #endif # include # include # define _(x) dgettext(ENC_PACKAGE, x) # ifdef gettext_noop # define N_(String) gettext_noop (String) # else # define N_(String) (String) # endif #else # include # define N_(String) (String) # define _(x) (x) # define ngettext(Singular, Plural, Number) ((Number == 1) ? (Singular) : (Plural)) #endif #endif pidgin-encryption-3.1/README0000755000175100017510000000134211365171052012626 00000000000000 Gaim encryption plugin v1.11 Copyright (C) 2001-2003 William Tompkins This plugin is free software, distributed under the GNU General Public License. Please see the file "COPYING" distributed with the Gaim source code for more details This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. pidgin-encryption-3.1/configure.ac0000644000175100017510000002416011365171052014234 00000000000000# -*- shell-script -*- # # Simple configure.in for pidgin-encryption # # # Init autoconf # AC_INIT(./encrypt.c) AC_PREREQ(2.52) AC_CANONICAL_SYSTEM # # Init automake # The third argument to AM_INIT_AUTOMAKE surpresses the PACKAGE and # VERSION macors # PIDGIN_ENC_VERSION="`cat $srcdir/VERSION`" AM_INIT_AUTOMAKE(pidgin-encryption, $PIDGIN_ENC_VERSION, 'no-define') AC_DEFINE_UNQUOTED(ENC_VERSION, "$PIDGIN_ENC_VERSION", [Version of pidgin-encryption plugin]) AC_DEFINE_UNQUOTED(ENC_PACKAGE, "$PACKAGE", [Version of pidgin-encryption plugin]) # before gettexting, in case iconv matters case "$host_os" in darwin*) AC_MSG_CHECKING([for fink]) if test -d /sw; then AC_MSG_RESULT([found, adding /sw to search paths]) CFLAGS="$CFLAGS -I/sw/include" else AC_MSG_RESULT([not found]) fi ;; *) ;; esac ALL_LINGUAS="bg cs da de es fr hu it ja lt nl nn pl pt_BR pt_PT ro ru sl sv ta tr uk zh_CN zh_TW" AM_GNU_GETTEXT_VERSION(0.10.40) AM_GNU_GETTEXT # # Setup the header file # AH_TOP([/* Pidgin-encryption header file */ #ifndef _PIDGIN_ENCRYPTION_CONFIG_H #define _PIDGIN_ENCRYPTION_CONFIG_H ]) AH_BOTTOM([ #endif /* _PIDGIN_ENCRYPTION_CONFIG_H */ ]) # # Look for the C compiler # CFLAGS_save="$CFLAGS" AC_PROG_CC CFLAGS="$CFLAGS_save" # # Utility function # check_for_header() { file="$1" bases="$2" variations=". $3" result= for dir in $bases; do if test -z "$result"; then for variant in $variations; do if test -z "$result" -a -f "$dir/$variant/$file"; then result="$dir/$variant" fi done fi done if test -z "$result"; then AC_MSG_RESULT([not found!]) AC_MSG_ERROR([*** Cannot continue]) fi } check_for_lib() { func="$1" lib="$2" bases="$3" variations="$4" LIBS_save="$LIBS" LDFLAGS_save="$LDFLAGS" found=0 result= LIBS="-l$lib $LIBS_save" AC_CHECK_FUNC($func, result="$dir/$variant") if test -z "$result"; then for dir in $bases; do if test -z "$result"; then for variant in $variations; do echo checking: $dir/$variant if test -z "$result"; then if test -d "$dir/$variant"; then LDFLAGS="-L$dir/$variant $LDFLAGS_save" AC_CHECK_FUNC($func, result="$dir/$variant") fi cmd="unset ac_cv_func_$func" eval $cmd unset cmd fi done fi done fi if test -z "$result"; then AC_MSG_RESULT([could not find $lib]) AC_MSG_ERROR([*** Cannot continue]) fi LDFLAGS="-L$result $LDFLAGS_save" } # # Check for Pidgin # PKG_CHECK_MODULES(PIDGIN, pidgin, [ AC_DEFINE(HAVE_PIDGIN, 1, [Define if we have found pidgin.]) ]) AC_SUBST(PIDGIN_CFLAGS) PIDGIN_DATADIR=`pkg-config --variable=datadir pidgin` AC_SUBST(PIDGIN_DATADIR) # # Check for libpurple # PKG_CHECK_MODULES(PURPLE, purple, [ AC_DEFINE(HAVE_PURPLE, 1, [Define if we have found purple.]) ]) AC_SUBST(PURPLE_CFLAGS) PIDGIN_DATADIR=`pkg-config --variable=datadir purple` AC_SUBST(PURPLE_DATADIR) dnl # dnl # Check for NSS if it's specified, or if GNUTLS checks failed. dnl # if test "x$enable_nss" != "xno"; then AC_ARG_WITH(nspr-includes, [ --with-nspr-includes=PREFIX Specify location of Mozilla nspr4 includes.], [with_nspr_includes="$withval"]) AC_ARG_WITH(nspr-libs, [ --with-nspr-libs=PREFIX Specify location of Mozilla nspr4 libs.], [with_nspr_libs="$withval"]) AC_ARG_WITH(nss-includes, [ --with-nss-includes=PREFIX Specify location of Mozilla nss3 includes.], [with_nss_includes="$withval"]) AC_ARG_WITH(nss-libs, [ --with-nss-libs=PREFIX Specify location of Mozilla nss3 libs.], [with_nss_libs="$withval"]) if test -n "$with_nspr_includes" || test -n "$with_nspr_libs" || \ test -n "$with_nss_includes" || test -n "$with_nss_libs" || test "x$enable_nss" = "xstatic"; then nss_manual_check="yes" else nss_manual_check="no" fi enable_nss="no" if test "x$nss_manual_check" = "xno"; then if `$PKG_CONFIG --exists mozilla-nss`; then PKG_CHECK_MODULES(NSS, mozilla-nss, have_nss="yes", have_nss="no") mozilla_nspr="mozilla-nspr" mozilla_nss="mozilla-nss" else if `$PKG_CONFIG --exists nss`; then PKG_CHECK_MODULES(NSS, nss, have_nss="yes") mozilla_nspr="nspr" mozilla_nss="nss" fi fi if test "x$have_nss" = "xyes"; then AC_DEFINE(HAVE_NSS, 1, [Define if you have Mozilla NSS]) AC_DEFINE(HAVE_SSL, 1, [Define if you have SSL]) msg_nss="Mozilla NSS" enable_nss="yes" else nss_manual_check="yes" fi fi if test "x$nss_manual_check" = "xyes"; then mozilla_nss="" have_nspr_includes="no" if test "x$with_nspr_includes" != "xno"; then CPPFLAGS_save=$CPPFLAGS AC_MSG_CHECKING(for Mozilla nspr4 includes in $with_nspr_includes) AC_MSG_RESULT("") CPPFLAGS="$CPPFLAGS -I$with_nspr_includes" AC_CHECK_HEADERS(nspr.h prio.h, [ moz_nspr_includes="yes" ]) CPPFLAGS=$CPPFLAGS_save if test "x$moz_nspr_includes" != "xno" -a \ "x$moz_nspr_includes" != "x"; then have_nspr_includes="yes" NSPR_CFLAGS="-I$with_nspr_includes" fi else AC_MSG_CHECKING(for Mozilla nspr4 includes) AC_MSG_RESULT(no) enable_nss="no" fi have_nspr_libs="no" if test "x$with_nspr_libs" != "xno" -a \ "x$have_nspr_includes" != "xno"; then CFLAGS_save=$CFLAGS LDFLAGS_save=$LDFLAGS if test "$enable_nss" = "static"; then if test -z "$with_nspr_libs"; then AC_MSG_ERROR( [Static linkage requested, but path to nspr libraries not set.] [Please specify the path to libnspr4.a] [Example: --with-nspr-libs=/usr/lib]) enable_nss="no" else nsprlibs="$LIBDL $with_nspr_libs/libplc4.a $with_nspr_libs/libplds4.a $with_nspr_libs/libnspr4.a $PTHREAD_LIB" fi else nsprlibs="$LIBDL -lplc4 -lplds4 -lnspr4 $PTHREAD_LIB" fi AC_CACHE_CHECK([for Mozilla nspr libraries], moz_nspr_libs, [ LIBS_save=$LIBS CFLAGS="$CFLAGS $NSPR_CFLAGS" LIBS="$nsprlibs" if test "x$with_nspr_libs" != "x"; then LDFLAGS="$LDFLAGS -L$with_nspr_libs" else LDFLAGS="$LDFLAGS" fi AC_TRY_LINK_FUNC(PR_Init, [moz_nspr_libs="yes"], [moz_nspr_libs="no"]) CFLAGS=$CFLAGS_save LDFLAGS=$LDFLAGS_save LIBS=$LIBS_save ]) if test "x$moz_nspr_libs" != "xno"; then have_nspr_libs="yes" NSPR_LIBS="-L$with_nspr_libs $nsprlibs" else NSPR_CFLAGS="" enable_nss="no" fi else AC_MSG_CHECKING(for Mozilla nspr4 libraries) AC_MSG_RESULT(no) fi have_nss_includes="no" if test "x$with_nss_includes" != "xno" -a \ "x$have_nspr_libs" != "xno"; then CPPFLAGS_save=$CPPFLAGS AC_MSG_CHECKING(for Mozilla nss3 includes in $with_nss_includes) AC_MSG_RESULT("") if test "x$with_nspr_includes" != "x"; then CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes" else CPPFLAGS="$CPPFLAGS -I$with_nss_includes" fi AC_CHECK_HEADERS(nss.h ssl.h smime.h keyhi.h, [moz_nss_includes="yes"], [moz_nss_includes="no"]) CPPFLAGS=$CPPFLAGS_save if test "x$moz_nss_includes" = "xyes"; then have_nss_includes="yes" NSS_CFLAGS="-I$with_nss_includes" else NSPR_CFLAGS="" NSPR_LIBS="" enable_nss="no" fi else AC_MSG_CHECKING(for Mozilla nss3 includes) AC_MSG_RESULT(no) enable_nss="no" fi if test "x$with_nss_libs" != "xno" -a \ "x$have_nss_includes" != "xno"; then LDFLAGS_save=$LDFLAGS if test "$enable_nss" = "static"; then if test -z "$with_nss_libs"; then AC_MSG_ERROR( [Static linkage requested, but path to nss libraries not set.] [Please specify the path to libnss3.a] [Example: --with-nspr-libs=/usr/lib/mozilla]) enable_nss="no" else nsslibs="-ldb1 $with_nss_libs/libnssckfw.a $with_nss_libs/libasn1.a $with_nss_libs/libcrmf.a $with_nss_libs/libswfci.a $with_nss_libs/libjar.a $with_nss_libs/libpkcs12.a $with_nss_libs/libpkcs7.a $with_nss_libs/libpki1.a $with_nss_libs/libsmime.a $with_nss_libs/libssl.a $with_nss_libs/libnss.a $with_nss_libs/libpk11wrap.a $with_nss_libs/libsoftokn.a $with_nss_libs/libfreebl.a $with_nss_libs/libnsspki.a $with_nss_libs/libnssdev.a $with_nss_libs/libcryptohi.a $with_nss_libs/libcerthi.a $with_nss_libs/libcertdb.a $with_nss_libs/libsecutil.a $with_nss_libs/libnssb.a" case "$host" in *solaris*) nsslibs="$nsslibs $with_nss_libs/libfreeb1.a" ;; esac fi else nsslibs="-lssl3 -lsmime3 -lnss3 -lsoftokn3" fi AC_CACHE_CHECK([for Mozilla nss libraries], moz_nss_libs, [ LIBS_save=$LIBS LDFLAGS="$LDFLAGS -L$with_nspr_libs $nsprlibs -L$with_nss_libs $nsslibs" LIBS="$nsslibs $nsprlibs" AC_TRY_LINK_FUNC(NSS_Init, [moz_nss_libs="yes"], [moz_nss_libs="no"]) if test "x$moz_nss_libs" = "xno"; then nsslibs="-lssl3 -lsmime3 -lnss3 -lsoftokn3" LDFLAGS="$LDFLAGS -L$with_nspr_libs $nsprlibs -L$with_nss_libs $nsslibs" AC_TRY_LINK_FUNC(NSS_Init, [moz_nss_libs="yes"], [moz_nss_libs="no"]) fi LDFLAGS=$LDFLAGS_save LIBS=$LIBS_save ]) if test "x$moz_nss_libs" != "xno"; then AC_DEFINE(HAVE_NSS) AC_DEFINE(HAVE_SSL) NSS_LIBS="-L$with_nss_libs $nsslibs" if test "$enable_nss" = "static"; then msg_nss="Mozilla NSS (static)" else msg_nss="Mozilla NSS" fi enable_nss="yes" else NSS_CFLAGS="" NSPR_CFLAGS="" NSPR_LIBS="" enable_nss="no" fi else AC_MSG_CHECKING(for Mozilla nss libraries) AC_MSG_RESULT(no) fi NSS_CFLAGS="$NSPR_CFLAGS $NSS_CFLAGS" NSS_LIBS="$NSPR_LIBS $NSS_LIBS" fi AC_SUBST(NSS_CFLAGS) AC_SUBST(NSS_LIBS) fi AM_PATH_GTK_2_0(2.0.0,,AC_MSG_ERROR([ *** GTK+ 2.0 is required to build Pidgin-Encryption; please make sure you have the GTK+ *** development headers installed. The latest version of GTK+ is *** always available at http://www.gtk.org/.])) CPPFLAGS="$GTK_CFLAGS $CPPFLAGS" # # A little tomfoolery to make this buildable both in the pidgin # structure and standalone # want_plugins=yes AM_CONDITIONAL(PLUGINS, test "$want_plugins" = "yes") # # Setup libtool # AM_PROG_LIBTOOL # # Party on # AM_CONFIG_HEADER(pre-config.h) AC_OUTPUT([Makefile pixmaps/Makefile intl/Makefile po/Makefile.in]) pidgin-encryption-3.1/nsis/0000777000175100017510000000000011365216007013003 500000000000000pidgin-encryption-3.1/nsis/header.bmp0000644000175100017510000006233411365171052014657 00000000000000BMÜd6(–9  ¶|U¶yQµxO³vM²tK±rH±pF¯oD¯mA®k?¬j=¬i;«g9ªe7ªd5©c3¨a3§`1§_/§^-¦],¥\+¥],§^.§_/¨`0¨a2©b4ªd6ªe8«f9¬h;¬j=®l?¯mB¯oD°pF±rH²tJ³vMµxOµzR¶|T·~W¹Yº‚\»„^¼†a¾ˆd¿ŠgÀŒjÁlÂoÓrÅ•uÆ—xÇš|Èœ~Éž‚Ë¡…Ì£‡Î¦‹Ï¨ÐªÒ¬“Ó®—Ô±™Õ³×µ Ø¸¢Ùº¥Ú½©Ü¿¬ÝÁ¯ÞÃ²ßÆ´áÉ·âÊ»ãͽäÏÀæÑÃæÓÆèÕÉé×ËêÙÎëÛÐìÝÓíàÖïáØïãÛñåÞòçàóéâóëåôíæõíéöïë÷òíøóïùôñúõóû÷õûøöüùøüûúýüûþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|T¶zR´xO³vM²tJ²rG°qF°oD¯mA®k?¬j=¬h;«g9ªf7ªd5©b3¨b2§`0§_/¦^-¦],¥\+¦]-§^-§_/¨`1¨a2¨c4©e6ªf8«g:«i;¬j=­l?¯mB°nD°pE±rH³tK³vL´xO¶zQ¶|T¸}V¹€Yº‚\»„^¼†b½ˆd¿ŠgÀjÀm‘oÓsÄ•uƘyÇ™{Éœɞˡ„Ì£ˆÎ¦ŠÏ¨Ðª‘Ò¬”Ò¯—Ô±™Õ³×¶ ×¸¢Ùº¥Ú½©Ü¿«ÝÁ¯ßÄ±àÆ´àȸâÊ»ã̽åÏÀåÑÃæÓÆçÕÉé×ËëÙÎëÛÑíÝÓîßÖïáØðãÛñåÝòçàóéâôêåôìæöîé÷ðë÷ñíùòïùôñùöòû÷ôûùöüúøüûúýûûþýýþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{TµzQ´xO³vL²tJ±rH°qE°oD¯mA­l?¬j=¬h;«g9ªe8©d6¨c4¨b2§`0§`/¦^-¥],¥\+¥],¦^.§_/¨`0¨b2¨c3©d5ªf7«g9¬i;­j=­k?®mA¯nC°qE±rH²tJ´vL´xOµzQ·|T¸}W¸€Z¹‚\»„_¼†a½ˆd¿Šg¿ŒjÀŽl‘pÄ“rÄ•uƘxÇš{Èœ~ʞˠ…Í£‡Í¥ŠÏ¨ŽÐªÒ­”Ò¯–Ô±šÕ´Öµ ×¸£Ùº¦Û¼©Û¿¬ÝÁ¯ÞÃ²àÆ´áȸâʺã̽åÏÀåÑÃçÓÆçÕÉé×ËëÙÎëÛÑíÞÓíàÖïáÙïãÛñåÝòçàòéâôêäõìçöîé÷ðë÷ñíøóïùôñúöòû÷ôûù÷üùøýûúþüûþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|T¶yR´xO´uM²tJ±rH°pF¯oD®mB­l?­i=¬i<«g9ªe8ªd5©b3¨a2§a0§_/§^-¥],¥\+¥],¦^-§_/§`1¨a3©c3©d5ªe7«g9¬i;­j>­k?¯mA°oD±pE²sH²tJ³vLµxOµyR¶|T¸~W¸€Yº\»ƒ_¼†a½ˆd¿Šg¿ŒiÁmÃoÃ’rÅ•vƘxÇš|Èœ~ɞˡ…Ì£‡Í¦ŠÏ§ŽÐª‘Ò­“Ó¯—Ô±šÕ´×µŸØ¸£Ù»¥Ú½¨Ü¿«ÝÁ¯ßı߯´àÈ·âʺã̽äÏÀæÑÃçÓÆèÕÈé×ÌêÚÎìÛÑìÝÓîàÖïáØðãÛðæÝñçàóéâôêåôíçöîéöðë÷ñíøòïùôñúöóûöôûø÷üùøýûùýüûþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|TµyRµxO³vM³tJ±rH°pE¯nD¯mA­k?­j=¬h;«f9ªe8©d6©c3¨a2¨a0§_/¥].¢[+ŸX)›X)™W*™W+›Z-Ÿ\/¤`3¨c5ªf8«g9¬h;¬j=­l?®mA®oD®oE­oF¬pH«qJ¬sL¯vN³yR¶|V·Zº‚\»ƒ^¼†a½ˆd¾‹gÀjÀŽmÂpÄ“rÅ•vÆ—xÇ™{ɜɟ‚Ë¡…Í£‡Í¥ŠÏ¨ŽÐª‘Ѭ“Ó¯–Ô±™Ö´Öµ Ø¸£Ù»¦Ú½©Ü¿¬Ý®ÞIJ߯µáÈ·âʺãͽåÏÀåÐÄçÓÆèÕÉé×ËêÚÎìÛÑìÝÓíßÖîáØïãÚñåÝòçßóéâôëåõìçõîéöðë÷ñíøóïùôðúõóû÷õûøöüùøýúùýüûýýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{T¶yRµxO³vM³tJ±rH°pF°nC®mA®l?­j=¬h;«g9ªf7©d5¨c4¨b3§a0¦_/¤]-ŸZ*™V(”S(Q(P(‘S*˜W.Ÿ]1¥a4©d6ªg:¬i;­j=®l?­nA­mC«mC§lD¥kE¤kF¥nHªqM°vQ³|T¸Yº\»„_½†b½ˆd¾ŠgÀŒjÁlÂpÄ“rÅ–vŘyÈš{Èœʞˡ„Ì£‡Í¦ŠÏ§ŽÐ©‘Ѭ”Ò¯—Ô±™Õ³œÖ¶ Ø¸£Ùº¥Ú½©Ü¿¬ÝÁ¯ÞÄ²àÆ´àȸâ˺ãͽäÏÀæÑÃæÓÆèÕÈé×ËêÚÎìÛÑíÞÓíàÖïáØïãÛñåÝòçßóéâôêäôíçöîé÷ïëøñíùóïùôñùöóû÷ôüùöüúøýúúýüûþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|UµyRµxP³uL²tK±rG°pE¯oC®mA®l@¬j=¬h;«f9«f7©d6©c4¨b2§`0¦^/¢\-œX)“R&‰M$‚I#€I$„L'R*—Y. ^2¦b6©f9«h;«j=¬k?¬l@©kA¤iAŸfAše@˜dA›hD£nI¬sO³zU·~X¹‚\»ƒ_¼†b¾ˆd¾ŠgÀŒjÁl‘oÄ“sÅ•uƘyÇš|Éœ~ʞˡ„Ì£ˆÍ¦ŠÏ§Ðª‘Ò¬”Ó®—Ô±šÖ³œ×¶ Ø¸£Ùº¦Ú½©Ü¿«Ý®ÞÃ²ßÆ´àȸáʺã̾äÏÀåÑÃæÓÅèÕÈé×ÌêÙÎëÛÑìÞÔîàÖîáØðãÛðåÝñçàóéâôêäôìçõîé÷ïê÷ñìøòîùôñùõóú÷õûøöüùøüúúþüûþýýþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|UµzRµxO³vM³tJ±rH°pE°nD®mB­k?¬j=«h;«g9ªe8©d5©c3¨b2–V+‹O'ˆL%€H#ŒN$€G"vC!sB xE"K&S+™Z0¡_4¦d7©g:«i<ªi>Ÿc<›b<”^:“_<\;Œ]<“aAœiG¨rM²zS·~X¹\»„_¼†b¾ˆd¾ŠgÀjÁm‘pÄ“sÄ•vƘyÇš{Ȝɞ‚Ë¡…Ì£ˆÍ¥ŠÎ§ŽÐªÒ¬“Ó®—Ô±šÕ³×¶ Ø¸£Ùº¥Ú½©Ü¿¬ÝÁ¯ßIJ߯µàÈ·âʺã̾äÏÀæÐÃçÓÆèÖÈé×ËëÙÎëÛÑìÞÓíßÖîáØïãÚðåÝòçàóéâôëäõìçöîéöðë÷ñíøóïùôñúöóú÷õûùöüúøýûúýüûþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|UµzR´wO³vM³tJ²rH°pF°nC®mB®k@­i=¬h;«f9«e8©e5¨c3¨a2{G$3=HF^W1~F!wC m>i<m> uD#‚K(ŽT,™[1 a5¥d8¦f;“[5~O/lD,qH-†V6T6ƒW8Œ]=šgE§qM±xT·~X¹\»„_¼†a¾ˆd¾‹gÀiÀŽmÂpÓrÅ•vÆ—xÇš|Éœ~ʞˡ„Ì£‡Í¥ŠÎ¨ŽÐªÒ¬“Ò¯—Ô±™Õ´œ×µŸØ¸£Ù»¥Ú½©Ü¿¬ÝÁ®ÞIJ߯´áÈ·âʺãͽäÎÀæÑÃçÓÆèÕÈéØËêÙÎìÜÐìÞÓíßÖïáØðãÛñåÝòçàòéâôëåôìçõîéöïë÷ñíøóïùôñúöóú÷ôûøöüúøýúùýüûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|TµzRµxO´vM²tJ±rH°qF°oC®mA®k?¬j=«h;«g9«e7ªd6©b3¨a2b9s˜‹ÏE,Y1q@h;d9e;l? vE%ƒM*T/—[2œ^5•[5[8!D/'-,EgA(zO2xN3~S5Š[<™gE§rM±zS·~Y¹\»„_½†a½ˆd¾ŠgÀŒjÁŽm‘oÓrÄ•vÆ—xÈš|Éœ~ÉŸË¡„Ì£‡Í¥ŠÏ¨ŽÐª‘Ò¬“Ò®—Ô±šÕ³Öµ Ø¸¢Ù»¦Ú½©Ü¿¬ÝÁ¯ßIJ߯´áȸâÊ»ã̾åÏÀåÑÃæÓÆèÕÉé×ËëÙÎìÜÐíÝÔîàÖîáØðãÛñåÝòçàóéâóêäõíçõîé÷ðëøñíùòïùõñúõóú÷õûøöüúøüûúþüûþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|T¶yRµxO³vM²tJ²rH±qF°nD¯mA®l?­j=¬i;«g9«e7ªd5©c4—W-Y3–Ô˜ß>‘B%V1d8`6`8e:l?!vE%€L)‰R.‡R.U4I.8£J/^<%qJ.sK0}R5‹\=œhF©rN³{T¸~Y¹‚\º„_¼†b¾ˆe¿‹fÀŒiÁŽlÑpÄ“rÅ•uÆ—xÇš|Èœʞˡ„Ì£ˆÍ¦ŠÏ§ÐªÑ­”Ò®—Ô±šÕ´œ×µŸØ¹£Ùº¦Ú¼¨Û¿¬Ý¯ÞIJàÅ´áÈ·âÊ»ä̽äÏÀæÑÃçÓÆèÕÈé×ËêÙÎëÛÑíÞÓîßÕîáØðäÛðåÝòçàòéâôêäôìæõîé÷ïëøñíøóïùõñúöóû÷ôûøöüúøýûùþüûþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|TµzR´xO´vL³tJ±rH°pE°oC®mA­l?­j>¬i;«g9ªe7ªd5©c4}I%6@H £äšÞ_Ê$)D9 R.^5]5`8e;k?!sD%tF'K-<%8£"oC*mF*lF,rJ/S6_? kH¬uO³|U¸Y¹\»ƒ^¼…a½ˆd¾ŠgÀŒjÁm‘oÓsÅ–uÆ—xÇš{Èœ~Éž‚Ë¡„Ì£‡Î¦‹Î§ÐªÒ¬“Ó¯–Ô±šÕ³×¶ ×¸¢Ùº¥Ú¼©Û¿¬ÝÁ®ÞıàŵàÈ·âʺã̾äÏÁåÑÃçÓÆèÕÉé×ËêÚÎëÛÑìÝÓîßÖïáØðäÛðåÝòçàóéâôëåôìçõîéöïê÷ñíøóïùôñúõóûöõûù÷üú÷ýûùýüûþýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|T¶zR´xO³vL³tJ±rH°pE¯oD®mA­l?­j=«h;«g9ªe7©d6©b4k> „Ÿ ¬çœáhÍZÄ%$3E'\5]6_8c: X5:#5!8¤<²&#H.gB(kD+sK0‚U8”bA£nJ®vPµ|V¸Yº\»„^¼…b½ˆd¾‹gÀiÁlÂoÓrÅ•vƘxÇ™{Èœ~Êž‚Ë¡„Ì£‡Î¥ŠÏ¨ŽÐª‘Ñ­”Ò¯—Ô±šÕ³×µ Ø¸¢Ùº¦Ú½¨Û¿«ÝÁ®ÞÄ²àÆµáȸâʺã̾äÏÁåÑÃçÓÅèÕÉé×ÌêÙÎëÜÐíÝÔîßÖîáØðãÛðåÞòçßóèâôêåõíçöîèöðë÷ñíùòïùõñùöòû÷ôûø÷üúøýúúþûûþýýþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|T¶zR´xO³vM²tK±rH°qE¯oD®mA­l?­i=¬i;«g9ªf7©e5©b4Y3¦Ê²è¡âxÕhÌZÁQ1:"M-O.<$4$!1J¿?¶8¬5!T5 eA(kE+wM1‡Y:˜fC¨pK°xQ·}U¹€Zº‚[ºƒ^¼†a¾ˆd¾ŠgÀŒjÁm‘pÓsÄ–uƘyÇš{ɜɞ‚Ë „Ì£‡Î¥‹Ï¨ŽÐª‘Ѭ”Ò®–Ô±šÕ³ÖµŸØ¸£Ùº¦Ú½©Ü¿¬ÝÁ¯ßı߯µáÈ·â˺ã̾åÏÀåÑÃçÓÆèÕÉé×ËêÙÎëÜÐìÝÓíàÕïâÙðãÛðåÝòçàóèâôêåôìæõîéöïê÷ñíùóïùôñúöóû÷õûùöüùøüûúýüûþýýÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·{T¶zRµxO³vL²tJ±rH°qF¯oD®mA®k?­j=¬i;«g9«e7ªd5ŽS,Y4Áì¿ëŸã†ÚuÒfÊ\Á= "11!(?šRÂH»A¶d3 a>&e@(nF,{P3Œ\%eA(pH-~R5_>¢jG­sN´zS·}V¹€Yº‚\»ƒ_¼†a¾‡d¿ŠgÀŒjÀmÂoÄ“rÅ–vƘxÇ™{Éœ~ÊŸË „Ì£‡Î¥ŠÎ¨Ðª‘Ò­“Ó¯—Ô±šÕ³×µ Ø¸£Ù»¦Û½©Û¿«ÝÁ¯ÞñßÅ´áɸâÊ»ã̾åÏÀæÑÃçÔÆèÕÉéØËêÙÎëÛÐìÞÔîßÖïáÙïäÚñåÝòçàòéâôëäõíçõîéöïë÷ñíøóïùôñúõóû÷õüø÷üúøüûùþüûþýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{TµzQ´wP³vM²tJ±rH°pF°oC®nA®l?­j=¬i;«g9ªf8©e5uD#dƒ‹.Ôñ$Ïð ´ë¦å˜à‹Ü€ÕrÒmÏhÍhÍfÌ\ÉXÆLºD²-P2b>%gA)rI.ƒU6”b?¥mH¯vO´{S¸~W¹€Zº‚\»„^¼†a½ˆd¾ŠgÀŒjÁŽlÂpÓrÅ–uŘxÇš|Éœ~ɞʡ„Ì£‡Î¦ŠÎ§ÐªÑ¬”Ó¯–Ô±šÖ´Ö¶ Ø¸¢Ù»¥Ú¼©Û¿«ÝÁ®ÞÃ²ßÆ´àȸâÊ»ãͽåÎÁåÑÄæÓÆèÕÈéØËêÙÎìÜÐìÝÔîàÖîáØïãÚñåÞñçßòéâóëåõíæõîéöïë÷ñíøóîùôñúõóú÷ôûøöüú÷ýûúýüûþýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{T¶zQ´wO³vL²tJ±rH°pF¯oC®mB®k@¬j=¬i;«g9ªe7©e5l?!c´¿=Úó.Ôñ½í ´é¨çœã݋܃Úz×rÔpÔhÏZÆP»>¡2[8"b>&iC)uK/…W7˜dA¦oJ°vO´{S¶~W¹€Zº\»„_¼†a¾ˆd¾ŠgÀŒjÁŽmÂoÄ“rÅ•uÅ—yÇ™{É~Êž‚Ê¡„Ì£ˆÎ¥‹Ï¨ÐªÒ¬”Ò®—Ô±šÕ´Ö¶ ×¸¢Ù»¦Û½©Ü¿¬ÝÁ®ÞÃ²ßÆµàÈ·âʺã̽äÎÀæÑÃæÓÆçÕÈé×ÌêÙÎëÛÐíÝÔíßÖïâØïäÛñåÝñçàóéâôêäõíçõîè÷ðëøñíøòïùôñúöóú÷ôüø÷üúøüúùýüûþýýÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·{TµzRµwP³vM²tJ±rH°qF¯nD®mB®k?¬j>¬i;«f9«e7©d5Y4nÈÓTàô4×òÉï¿í ¶êªç¡åœãßà€ÚzÙkÒaÉRÁ'm7"`<$c?&jD*wL0‡X9™eA§pI¯vO³yRµ|Vµ~X¸[º‚]»…a¼‡e¾Šg¿ŒjÁm‘oÓsÄ•uÆ—xÈ™|ɜɞ‚Ë¡„Í£‡Í¥ŠÎ¨ŽÐªÒ¬“Ò¯–Ô±šÖ³Ö¶ Ø¸£Ùº¦Û¼©Û¿¬Ý¯ÞÃ±ßÆ´áȸâʺã;äÎÀåÑÃçÓÆèÕÉé×ËëÙÎëÛÑíÝÓîßÕïáØïãÛñåÝòçßóéâôëäõíæöîèöðëøñíøóïùôñúõóû÷õûùöüùøüúùýüûþýýÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{T¶zQµxO³vM²uK±sH°qE¯oD®mA®k?¬j=¬h;«g9ªe8©d5Y4uæõhäõ1×ò#ÒñÇï»ì ´ë®ê¨çœå˜âŽß€ÚuÓfÌ\ÄOA(`<$c?&kD+wM1‰Y9™eB¦nH¬sN¯wP¯yS±zV³|X¶€\¸‚_¼‡c¾ŠgÀŒjÁm‘pÓrÄ•vƘxÇš{Èœ~Êž‚Ê …Ì£ˆÎ¥‹Ï¨ŽÐªÑ­“Ó®—Ô±™Õ´Ö¶Ÿ×¸£Ù»¥Û½©Ü¿«Ý¯ÞòßÅ´áÈ·âʺã̾äÏÀæÐÃçÓÆèÕÉé×ËêÙÎëÜÐìÞÓíßÖïáÙðãÛðåÝñçàòèâôêäõìçõîéöðëøñíøóïùôñúöòû÷ôûøöüùøýûùýüûþýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{U¶zRµxP³vL²tJ±rH°pF¯oC®mA­l?­j=¬h;«g9ªe7T-Y4®í÷ˆèö8Úó*ÕòÐñÇð ºí²ë¬é¨éŸæ•á‹Þ€ÙkÏ\Ä!&F+`<$c?&kE*wL0‡X8–cA kF¦oK¦qL§rO§tQ«xU°|Yµ€^¹…b¾ŠgÀŒjÁŽl‘oÓsÅ•uƘyÇ™|Ȝʟˡ„Ì£‡Í¥ŠÏ¨ŽÐªÒ¬“Ó®–Ô±™Ö³Öµ Ø¸£Ùº¦Ú½©Û¿¬ÝÁ®ÞñàÅ´áÈ·â˺ã;äÏÀæÑÃçÓÆèÕÉé×ËêÙÎëÜÑíÝÔíßÖïáØðãÛñæÝñçàóéâôêäõíçöîé÷ðë÷ñíøóïùôñúõòû÷ôûøöüùøüûùýûûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|U¶zR´xO³uL³tK±rG°qF¯oD®mA­k?­j>¬h;«g9ªe7ŽT-oo¶îøêöFßô5Úó%ÔñÌðÄï ½î¸ì°ë¨é¡æ˜ãƒÙrÐcÉ! (O1`<$c?&jD*uL/‚U6Ž^=–dB™fD˜gG™iH›lL¢qP©wV±~[¸„a¾‹gÀŒiÁm‘pÄ“rÅ•vƘxÇš{É~ʞˡ„Ì£ˆÍ¦‹Ï¨ÐªÒ­”Ò¯—Ô±™Õ´×¶Ÿ×¸£Ùº¦Ú½©Û¿¬ÜÁ¯ÞÃ²àÆ´àȸáÊ»ã;äÎÀåÑÃçÓÆèÕÈéØÌêÙÎìÛÑìÞÓíàÖîáÙðäÛñåÞñçàòéâôëåõìæöîè÷ïëøñíùóïùôñúöóû÷õüøöüùøýúúýüûþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|T¶zR´xO³vM²tK²rH°pF¯oC®mA­k?­i=¬h;«g9ªe7ŽT-}no¦ì÷•êöNáôAÞô*×òÏñÇï Áî ½î¶ì®é¨èšãˆÜxÓfÉ'O1_;#b>&gA)pH-zP3ƒV8ˆZ;‰[>ˆ]@Š^AcE™kL¤sS¯}Z·ƒa¿Šg¿jÁmÃpÄ“sÅ•uÆ—yÇ™{Èœ~ÊŸË¡„Ì¢‡Í¥‹Î§ŽÐª‘Ò­”Ó®—Ô±šÕ³×¶ Ø¸¢Ùº¦Ú½¨Û¿¬ÝÁ®ßIJ߯µáÈ·âÊ»ã̽äÎÀåÑÃçÓÆèÕÉé×ËêÙÎìÛÑíÞÓîßÖïáØïãÛðåÞòçßóéâôêäõíçöîé÷ïëøñíøòïùôñúõóú÷õûøöüùøýúùýüûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|TµzRµxO³vM²uJ²sH±qE¯oC®nB®k?­j=¬h;«g9ªe7ŽT-~no®î÷ŸëöXâõBÞô-×òÒñÊðÄð ¿îºí´ëªçŸä߀×kÍ-O1_;#a=%eA(jE+`>(^=(a?*bB,wP7Y=Š`C—jK¤sS¯}Z¶ƒ`¾ŠgÀŒjÀŽm‘oÄ“sÅ•uƘxÇ™{Èœ~ʞʠ„Ì£‡Î¥ŠÏ§ÑªÑ­”Ò¯—Ô±šÕ³œÖ¶ ×¸£Ùº¦Ú½©Ü¿«ÝÁ¯ßÃ²ßÆµáÈ·âÊ»ã;åÏÀåÑÃæÓÆçÕÉé×ËêÚÎëÛÐìÝÓíßÖîáØïãÛñåÝñçàòéâôëäôìæöîé÷ïë÷ñíùòïùôñùöóú÷õüøöüúøýûùþüûþýýÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{TµyRµxO´vL²tJ±rG±pF¯oC®mA­l?­j=¬i;«f9«e8T-~no¶ï÷¦í÷aåõDßô5ÙóÐñÉðÆî Áî ºí¶ì®é¡å•߆ÙrÏ!%4J._;#Q3E+6#9%'+F/;fS9+sN5ƒY>aD›kL¦vU±~[¸„a¾ŠgÀjÁŽm‘oÓrÅ–vÅ—xÇ™{Èœ~ʞˡ…Í£‡Í¥ŠÎ§ÐªÒ­”Ó¯–Ô±™Õ´×µ ×¸£Ùº¦Ú½¨Ü¿¬ÝÁ®ÞÄ±àÆµàÈ·âÊ»ãͽäÎÀåÑÃçÓÆèÕÉêØËêÚÎìÛÑíÝÓîßÖïáÙðãÛñåÝñçßóèâóëäõíæõîéöïëøñíøóïùõñúöóú÷õüùöüùøýûùýüûþýýÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|UµzR´xP³vL²tJ±rH°pE¯nC¯mA®l?­j=¬h<«g9ªe8T.~no¶ï÷®î÷cäôHßó:Úó"ÐðÉïÂí Äî »ì¶ë¬è¦æ˜áˆÚxÒ Q<%7#3 #%99‰\Ð+uS7$]?*yR8Š_B—hI£qP­zXµ^º†b¾ŠgÀŒjÀŽm‘oÓrÄ•uŘyÇ™{Éœ~Êž‚Ë …Ì£‡Í¥ŠÎ¨ŽÐªÑ¬“Ò¯–Ô±™Õ³×¶ŸØ¸£Ùº¥Ú¼©Ü¿«ÝÁ¯ÞÃ²àÆµàÈ·âË»ãͽäÏÀåÑÃæÓÆèÕÈê×ËêÚÎëÛÐìÝÓíßÕîâÙïäÛñåÝñçàóéâôêåôìæöîé÷ïë÷ñíøòïùôñúöòú÷ôûøöüùøüûùþüûþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|T¶yRµxO´vM³tJ±rH°qF¯nC®mB®l?¬j=¬h<«g9«e7T.~no½ð÷¬ìömæôTàó:Ùð&ÒïÉíÄì¿ë »ë ¶ê®ç¡ã˜à‹Ú}ÕR£(.iRµaÏY¾+#):&W9&€V:‹^@˜gH£pN¬xU´~[¸ƒ`¼‡c¿ŠgÀŒjÁŽmÂpÓsÅ•uÆ—xÇš{Èœʞˡ„Í£‡Î¦ŠÎ¨ŽÐªÑ¬“Ó¯—Ô±šÕ´Öµ Ø¸£Ùº¦Ú½©Û¿«ÝÁ¯ÞIJ߯´áȸâ˺ã̾åÏÀåÑÃçÓÆèÕÈé×ËêÙÎëÛÑíÝÓíàÖïáÙïãÛñåÝòçàòéãôëäôìæöîèöðëøñíùòïùõñúöóû÷õüøöüúøýûùþüûþýýÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{TµzR´xO³vM³uK±rG°pF°oD®mB­k?­j=¬i;«g9ªf8ŽT.~no¿ð÷®ìömãòVßñ<×ð'ÏìÆêÁé½é ºè ²ç¬å£áœß‹Ù€ÔuÏpÌfÌaÊ=Š5"?)hD-U8^?™gG¤pM­wT³|Y·€]¼…`½ˆd¾Šg¿jÁŽm‘pÓrÅ•vÅ—yÇ™|Èœ~ÉŸ‚Ë¡…Ì£‡Î¦ŠÏ¨ŽÐª‘Ò­”Ò¯–Ô±™Õ³Ö¶ Ø¸£Ùº¦Ú½©Ü¿¬ÝÁ®ÞÃ²àÆµàÈ·âÊ»ã̾åÎÀåÐÃæÓÅèÖÉê×ËëÙÎëÜÑíÝÓíßÖïâØïäÛñåÞñçàóéâôêåõìçöîé÷ðë÷ñíùòïùôñúöóû÷õûø÷üúøýûúýüûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{T¶zR´xO´vM²tJ±sH°pE°nD¯mA®k?¬j=¬h;«g9ªf7T-noÆðö¶îõpâñPÜî<Õí%ÊéÄèÁèºç´æ ²å ¨âŸà˜Ü‹Ø€ÓxÓmÍhÍ!U5"I/rK0~S5Œ\=™fE¤oK¬vR³|V¶€[ºƒ_¼†b¾ˆd¾Šg¿ŒjÁŽl‘pÓrÅ•vƘxÇš{Ȝʞ‚Ë¡„Ì£‡Í¥ŠÏ§ÐªÑ¬“Ò¯—Ô±šÕ³œÖµ Ø¸¢Ú»¦Ú½©Û¿«ÝÁ®ÞÃ±ßÆµàÉ·âÊ»ä̽äÎÁæÑÃçÓÆçÕÉé×ÌêÚÎëÛÐíÝÓîßÖïáÙðãÛñåÝòçàòéâóëåôìæöîè÷ïë÷ñíøóïùõñúöòú÷õûùöüúøýûùýüûþýüþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|T¶zRµxO³uL²tJ±rH°qE¯oC®mA­l?­i=¬h<«g:ªf8ŽT-€ppÕó÷Óñö˜çóƒãñhÞîP×ë?Òê7Íè/Êè)Çç#Âç½å¸â°à®ß •×rÍpÍ"&75"S5!pH.|Q3Š[;˜eC£nJ­tO²{U·~Y¹€\»„^¼†a½ˆd¾‹fÀŒjÁŽm‘pÓrÄ•uÆ—yÇš{Èœ~ɞˠ„Ì£‡Í¥ŠÏ¨ŽÐªÑ¬“Ó¯–Ô±™Õ³Ö¶ ×¸¢Ù»¦Ú¼©Ü¿¬ÜÁ®ßÃ²ßÆµàȸâÊ»ã;äÏÀæÑÃçÔÆèÕÈé×ËêÙÎëÛÑìÞÓíßÖïáÙðãÛñåÝòçàòéâôêäôìçöîè÷ïê÷ñíøòïùôñùöóû÷ôüø÷üúøýûúýüúþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|TµzR´xO³vM³tJ²rH°pF¯oC®mA®l?¬j=«h;«g9ªf7T.ooÕñöÇîõ“äñ}áï_ÙìPÔé=Íè7Çæ.Æå+Áä'Áä"½ã´à#ºá.¿ã²ß}Ï M4 V7!nF,yN1‡X8•b@¢lG¬sM²yR¶}U¸Yº‚\»ƒ_¼†a½ˆd¾Šg¿jÁŽl‘oÃ’rÄ•uÅ—xÇš|Ȝɟˠ„Ì£‡Í¥‹Ï§ÐªÑ¬“Ò¯—Ô±šÕ´Ö¶ Ø¸¢Ù»¦Ú½©Ü¿¬ÝÁ¯ÞÄ²àÆ´áÈ·âʺã̾äÏÀåÑÃæÓÆèÕÈé×ËêÙÎëÜÑíÝÓíßÖîáÙïãÛñæÞòçàóéâôëäôíæöîéöðë÷ñíøòïùõðùõóú÷õûø÷üùøýûúýüûþýýÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{U¶zQ´xP³vL²tJ±rH°pF°oD®mB­k?­j=¬h;«g9ªe7T-Z5¨éóœ·¼Š²¸p|‚[^bSZ^CTZ?RX9OV.wˆ)‡Ÿ"–¶²Ý"´Þ/¿á²ßQ‰3 N1jC(tJ-‚T4^= iD©qJ±wPµzS·~W¸Zº\º„_¼†b½ˆd¾‹gÀŒjÁm‘oÄ’rÅ•vÆ—xÇš|Èœ~ɞˠ„Ì£ˆÍ¥ŠÎ§ÐªÑ­“Ó¯—Ô²™Õ´×µŸ×¸£Úº¦Ú¼©Û¿¬ÜÁ®ÞÃ²àÆµáȸâʺã̽åÏÀåÑÃæÓÆèÕÈé×ËêÙÎëÛÑìÝÔîßÖîáØðãÛñæÝòçàòéâôêäõìçöîéöïë÷ñíøòïøôñúõòû÷ôûùöüúøüúùýûûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|UµyRµwO³vM³tJ±sH°qF°nC¯mA®l?­j=¬i;«f9ªe7ªd5Z5X3V1V1T5 \s|¬‚É}Ð}Æ m¥Jf;(1&COe |º.B)d?%mE*yN0ˆX7™c?¥mF®tL³yQµ{T·~W¹€Yº‚\»„_¼†b¾ˆd¾‹g¿jÀl‘pÄ“rÅ•uÆ—yÇš|Èœ~ʞˠ„Í£‡Í¥ŠÏ¨ÐªÒ¬”Ò¯–Ô±™Ö´œÖ¶ Ø¸£Ùº¥Ú¼¨Ü¿¬Ý¯ÞòàÅ´áȸâ˺ã;äÏÀåÑÃçÓÆèÕÈéØËëÚÎëÛÐìÞÓíßÖîâØðãÛñåÝòçàóèâôëäõìçõîéöïë÷ñíøóïùôñúöóû÷ôüùöüùøýûùýüûþýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|U¶zRµxO³vL³tJ²rH°pF°nC®mA­k@¬j=¬i<«g9«e7©d6¨c4~I%U1&Zo ’ÐŽÕƒÓxÏrÌkÉcÄXÁN±"316!7!7"[8!d?&mE*zN1ŒY8›e@©oH±uN´yP·{U·~W¹€Yº‚\»„_¼†b¾ˆd¾Šg¿ŒjÁmÑoÓrÅ–uƘyÇš|Éœɞˠ…Í£‡Í¥ŠÏ§ÐªÑ¬“Ó¯—Ô±šÕ³×¶ ×¸£Ù»¦Ú½©Ü¿¬ÝÁ¯ÞIJ߯µàÈ·âʺã̾äÏÀåÑÃçÓÅèÕÉé×ËêÙÎëÛÐíÞÓîßÕïáØðãÛñæÝòçßòéâôëäôìæöîéöïë÷ñíøòïùôñúöóû÷ôüùöüúøýûùýüûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|TµzQ´xO³vM²uK²sH°qF¯nC®mA®k?¬j=«h;«g9ªe7ªd5ˆP*X3rŒ £à £ß šÚ šÚ׈Õ}ÒmÍaÄZÁR»M2L.^:!_;#c>%kD)xM/ŠY8›eA©oH°uMµzR·{T¸~V¹Zº‚\»„_¼†a½ˆd¾ŠgÀŒiÁŽmÃpÓsÅ–uŘyÇš{Éœ~ÊŸË „Ì£ˆÎ¦‹Ï¨ŽÐª‘Ò¬“Ó¯—Ó±šÕ³×µ Ø¸£Ùº¦Û½©Û¿¬ÝÁ¯ÞòßÅ´áÈ·âË»ã̾äÎÀåÑÃæÓÅèÕÉé×ÌêÙÎëÜÐíÝÓîàÖïáÙðãÛñåÝòçàóéâôëäõíæöîé÷ðëøñìøóïùôñúõóû÷õûø÷üúøýûùþüûþýýÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|TµzQ´wO³vL²tJ±sH±qF¯oC¯nA­l?­j=¬h;«g9«e8¤a4^7$au°å²ä²â°ã®â ¨á ŸÝ“ÙƒÔuÏhÊXÂR½!64[8 `;#c>%jC(uK.‡W7˜c?¦nH°uM´xQ·|T·}W¹€Yº‚\»ƒ_¼…a¾ˆe¿‹gÀŒjÁl‘oÓrÅ•vŘyÇš|Èœ~ÉŸË¡„Ì£ˆÎ¥ŠÏ¨ÐªÑ¬“Ó®–Ô±™Õ´×¶ Ø¸£Ù»¥Ú½¨Û¿¬ÝÁ®ÞıßŵáÈ·âÊ»ã̽äÏÀåÐÃçÔÅèÕÈé×ËêÙÎëÛÑìÝÔíßÖïáÙðãÛñåÝòçßóéâôêåôìæõîèöðêøñíøòïùôñúöóû÷ôüøöüúøýúùýüûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·{UµzR´wO´uL³tJ±rH°qE¯oD®mA®k@¬j=¬i;«g9ªe7…O*a?'´â¿êÄë"Çë"ÇëÄé¿éºæ ªãšÝˆ×zÒfÊVÂL¶/J-^:"b=$hA(sI.ƒT5–b>¥mG®tMµxQ¶|T·~W¹€Yº\»„_¼†a¾ˆe¿Šg¿ŒjÁŽm‘pÄ“rÅ•uÅ—yÇ™{Ȝʟˡ„Ì£‡Í¥ŠÎ§ÐªÑ¬”Ó®—Ô±™Õ³Ö¶ Ø¸¢Ùº¥Ú½©Û¾¬Ý¯ÞÃ²ßÆ´áÈ·áÊ»ã̾åÏÁæÑÃçÓÆèÖÉéØËëÚÎìÜÐíÞÔíßÖîáØðãÛðåÝòçàóéâóëäôìæöîé÷ïë÷ñíøóïùôñúöóú÷õûù÷üùøüûúýûûþýýþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·{T¶yR´xO³vM²tJ±rH±pF¯oC¯nA®k?¬j=«h;«g9ªf7nA#!v‰Æí$Íî/Òï7Õð<Õð8Õð+Ðî#Ìí½è´æ¡áƒÙuÒhÏ\ÊQ<%^:"a=$f@(qH-‚T5•`>¤lF®tM´xQ¶{U¸~W¹Yº\»„_¼†a¾ˆd¿Šg¿ŒjÁŽl‘oÃ’rÅ•vÆ—xÇš|Èœ~ʞʡ…Ì£‡Î¥ŠÎ¨ÐªÑ¬“Ó®–Ô±™Õ³œÖ¶ŸØ¸¢Ù»¦Ú¼©Û¿¬ÝÁ¯ÞIJ߯´áÈ·â˺ã̽äÏÀæÐÃçÓÆçÕÉéØÌêÚÎëÛÐìÞÓíßÖîáØïãÛñåÝòçàóéâóêäõìæöîèöðëøñíøóïùôñùöóú÷ôûøöüùøýúúþûûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{UµyQµwO³vM²tK±rH°qE¯oC®mA®l?­j=¬i;«g:«f7_8­É$Ïð7ÙòFßóTáóZáôTàóHÞó:×ñ'ÏîÁë ²çŸà‹ÚuÕcÏA›4 ^:"a<$g@'qH-S5“`=¤lE®tMµxQ·|T·}W¹€Zº‚\»ƒ_¼†a¾ˆd¾Šg¿ŒjÁm‘pÓrÄ•vƘyÇš|Ȝɞ‚Ë¡…Í£‡Î¥ŠÏ¨Ðª‘Ѭ”Ó¯–Ô±™Õ´Öµ Ø¸£Ù»¥Ú½¨Ü¾¬ÝÁ®ßIJ߯µáÈ·âʺãͽäÏÀåÑÃæÓÆèÕÈéØËêÙÎëÛÑìÝÓíßÖîâØïãÛñåÞòçàóéâóêåôìæõîéöïëøñíøóïùôðùõóû÷ôüø÷üù÷ýûúýüûþýüÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|UµzR´xO´vM²tJ±rH°qE¯oD¯mA­l?­j=¬i;«g9ªe7Z5Èè1ØòJàôcåõ}éöˆéö€èökæõPàô7Ùò%ÏïÁë ®ç˜à€ÙkÓ\Æ2^:"a=$fA'rH-‚T5”`>¤kF®tM´yP·|T·~V¹€Yº‚\»„_¼†b½ˆd¾Šg¿ŒjÁm‘oÓsÅ•uƘyÇš{Èœ~ÉŸ‚Ë¡„Ì£ˆÎ¦‹Ï¨ÐªÒ­“Ó®—Ó²™Õ´œ×µ Ø¸¢Ù»¦Û¼¨Û¿¬Ü¯Þı߯µàȸâÊ»ã̾åÏÀæÑÃçÓÆèÕÈé×ËëÚÎëÛÐíÝÔíßÖïâØðãÛñåÝñçàóèâôëåôìæöîèöðë÷ñíøòïùôñùöóû÷ôüùöüúøýûúýüúþýýÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{TµzR´xO³vL²tJ²rH°qF°oD®mB­k?¬i=¬h<«g:ªf7Z5"Òñ:ÝóZåõ€êöší÷£î÷¡î÷“ìörèöNàô4×ñÊî ºê¦å‹ÞzÚhÓ2^;"b=$hA(tJ.…U6—b>¥mG¯tMµyP·{T·~W¹€Yº‚\»„_¼…b½ˆd¿ŠgÀŒjÁlÃpÓsÅ•uÆ—xÇ™{Èœ~ÉŸË¡„Ì£‡Í¥‹Î§ŽÐªÑ­“Ó¯—Ô±™Ö³×¶ Ø¸£Ú»¥Û½©Ü¿¬ÝÁ¯ÞÃ±ßÆ´àȸâ˺ãͽäÎÀåÑÃçÓÆèÕÈéØËêÙÎëÛÐíÝÓîßÖîáØïãÛñæÝòçßòéãóëäôìçõîéöðê÷ñíøóïùôñùõóû÷õûø÷üúøýûùýüûþýüþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|T¶zRµwO³vM²tK²sH°pE¯nD¯mB®l?¬j=«h;«f:ªf7[5%ÍêBßôcçöŽì÷ªð÷´ñø²ðø£î÷‹ëöaäõ=Úó%ÒðÁë ®ç˜á€ÝfË2`;#c>%kC)vK.‡W7™d@§nH±uMµyP·|T·~W¹Zº\»„_¼†b½‡d¾Šg¿ŒiÀmÂoÄ“rÄ–uƘxÇš|Éœ~Êž‚Ë „Ì£‡Î¦ŠÏ§ŽÐªÑ¬“Ó®—Ô±šÕ³×¶ŸØ¸£Ùº¦Ú¼¨Ü¿«ÝÁ®ÞÃ²àÆ´áÈ·âÊ»ã;åÎÀåÑÃçÓÆèÕÈéØËêÙÎëÛÐíÝÔîßÕïâÙïãÛñåÝòçßóéâôêäõìçõîéöðëøñíøóïùõñúöóú÷ôûø÷üùøýûúýüûþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{UµzR´xP´vL²tJ±rH±pF¯oC¯mA­k?­j=¬i;«f9«e8_8)·ÎAßôcçöŽì÷¬ðø¿óùºñøªðø“ì÷mçöDÞô+ÓñÂí ²èœä†ÞWª5!b<$f@&oE*|P1[9fB©pH°uMµzR·|T·~V¹€Yº‚\»„_¼†b¾ˆd¿Šg¿ŒjÁŽm‘oÓrÅ•uƘyÇš{Èœ~ÊŸË¡„Ì£ˆÎ¦ŠÏ§ÐªÑ¬“Ó¯—Ô±šÕ³×µŸØ¸¢Ùº¦Û½©Ü¿«ÝÁ¯ÞÄ±àÆ´àÈ·âÊ»ãͽåÏÀåÑÄæÓÆèÕÈé×ËêÙÎìÛÐíÞÓíàÖïáØðãÛñåÞòçàóéâôëäõìæõîè÷ðëøñíøóïùôñúõóú÷ôûùöüúøýúúþüûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶{T¶zQµxO³vM²tJ±sH°pF¯oC®nA­k?­j=«h;«g9ªf7nA"1€8ÜôTäõ}ëöœî÷®ðø®ðø£î÷ŽëökæöHßô*ÓñÆî ´ê¡åˆß5l?&d>$kC(vJ-ƒT4”_;£jC­qJ±vN´zR¶{T¸}V¹Zº‚\»ƒ^¼†b½ˆd¿ŠgÀŒjÀŽl‘oÄ“sÄ–uƘyÇš|Éœ~ʞˡ„Ì£‡Í¥ŠÎ¨ÐªÑ¬”Ó¯—Ô±šÖ³Ö¶ Ø¸£Ù»¦Û½©Ü¿«ÝÁ¯ÞñàŵáÈ·áÊ»ã̽äÎÀåÑÃçÓÆèÕÉé×ËëÚÎìÛÐìÝÓîàÕïâÙðãÛñæÞòçàóéâóêåõìæöîèöïëøñíøóïøôñúõóú÷õûùöüùøýûúþüûþýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|TµzQµxO³vM²tJ±rH°pF°oC¯mA­l?­j=¬h;«g9ªe8†O+a?'-ÑëDàôcçõ€ëö•í÷˜í÷ìö}èö_äõ=Üó&ÓñÄî ´ê¡ç‚×1O1jA'sH+~P0Z8›d?§mE°sK³vNµzR¶|T·~V¹Yº\»„_¼†b½ˆd¿‹g¿ŒjÁŽm‘pÓrÅ•uƘxÇ™{Èœ~Êž‚Ë „Ì£‡Í¥ŠÏ¨ŽÐªÑ¬“Ò®–Ô±™Õ´×¶ Ø¸£Ùº¥Ú¼©Û¿¬ÝÁ¯ÞIJ߯´áÈ·âÊ»ä;äÏÀæÑÃçÓÆèÕÈéØËëÙÎëÛÑíÝÔîßÖïáØðãÛñåÞñçßòéâôêäõìæöîé÷ïëøñíøóïùôñúõòû÷ôûøöüúøýûúýüûýýýÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|T¶zQ´xO³vL²tJ±rH±pF¯nD¯mB®k?¬j=¬i;«g9ªe8¥a5_8/v‚2ÜóDáôZåõkçöpçöpçöaäõHàô4ØóÏñÂî²ë¡æ>f;#iA%uH*~O0ŠW6˜`;£iA«oH±tL³wOµzQ¶{T·~W¹Yº‚\»ƒ^¼†a½ˆd¿ŠgÀŒjÁmÂoÓsÅ–vÆ—xÇš{Èœ~ÊŸ‚Ë¡„Ì£ˆÎ¥ŠÏ¨ŽÐªÑ¬“Ò®—Ô²šÕ³œ×¶ Ø¸£Ùº¦Û½©Û¿«ÜÁ¯ÞIJ߯´áȸâÊ»ãͽäÎÀæÐÃçÓÆèÕÉé×ËêÙÎëÛÐìÞÔíßÖïâÙðãÛñåÝòçàòéâóëäôìæöîéöðë÷ñíøòïùôñúõóú÷õûùöüùøýúùþüûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|UµzQµwO³vM²tJ²rH°qE¯oC¯mB­l?­j=¬h<«g9«e7©d6ŠQ*Z4*Œœ.Úó=ÞôFáôLâõJàô?Þô5Ùó$ÓñÇð »í®ê^ˆ<$^9!zK+‚P/ŒW4–_:¢g@©mE¯rJ²tK´wOµyQ¶|T¸~W¹€Yº‚\º„^¼†a½ˆd¿ŠgÀŒjÁm‘oÓsÄ•uÆ—yÇš{Ȝʟ‚Ë¡„Ì£‡Í¥ŠÏ§ÐªÑ¬“Ò®—Ô±šÕ³×µ ×¸¢Ù»¦Ú¼©Ü¿¬ÝÁ¯ÞÄ±àÆµáȸâË»ã;åÏÀæÑÃçÓÆèÕÉé×ËêÙÎëÛÑíÝÓîßÖïáØðäÛðæÞòçßóèâôëäõíæõîèöïë÷ñíøóïùôñúõóúöõûø÷üùøüûúþüûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|TµzQµwP´vM²tJ±rH°qE¯nD®nB­l?­j=¬h;«g:ªe7ªd5©c3€K&Y3/v"Ìê*×ó.Øó-×ó*ÕòÐñÊðÁî®âVpC(a; „P-‰T1‘Y5š`9¡f>¨lC­pF±sI³uLµwOµyQ¶|T·~V¸Yº‚\»ƒ_¼†a½ˆe¿ŠgÀŒjÁŽl‘oÄ“rÄ•vÆ—xÇš|Éœ~Êž‚Ë „Ì£ˆÍ¥‹Ï§ŽÐªÑ­”Ò¯–Ô±™Õ³œ×¶ Ø¸¢Ù»¦Û½©Û¿«ÝÁ®ÞÃ±àÆµáȸâÊ»ã̽äÏÀåÑÃçÓÆèÕÉéØÌêÙÎëÛÑìÞÓîßÖïâÙðãÚðåÞòçàóéâóëäõíæõîé÷ïë÷ñìøóîùôñúöòû÷ôûø÷üùøýûúýüûþýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·{TµzQµxO´vL²tJ±rH±pE°oC®mA­k?­j=¬h;«g9«f7ªd6©c3¨a2ˆO(]6_<$#|Œ°ËÅéÊð¿è£Èo‡N6#O/tF&W0”Y3™^6a9£f=©kA­nE±qG³tK´uL´xOµzR·|T¸~W¸€Yº‚\»„_¼†a½ˆd¿‹gÀŒjÁŽm‘oÄ“rÅ•uƘyÇš{Èœ~ÊŸË¡…Ì£ˆÍ¦ŠÎ§ŽÐª‘Ò¬“Ó¯—Ô±™Õ´×¶ Ø¸¢Ùº¦Ú½©Û¿¬ÝÁ®ÞIJ߯´áÈ·âʺãͽäÏÁæÑÃçÓÆèÖÈé×ÌêÙÎëÛÑíÞÓíßÖïáØðãÛñåÝòçßòéâôëåôìçöîé÷ðë÷ñíøóïùôñúöóû÷ôûøöüúøýûùýüûþýýÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|T¶zQ´xP´vM²tJ±rG°qE¯oC¯mB®l?­j=¬h;«g:«e7©d6¨b4¨a2§`0¡\.ƒJ$k<[3W1V0T0W2d:zG&—Y0]2ž_5¡a8¤c:§h=«j@¬mB°qF±rH²tJ´vLµwO¶zQ¶|T¸}W¸Y¹‚\»„_¼…a½ˆd¾ŠgÀiÁl‘pÄ“rÄ•vÆ—xÇš{Èœʞʡ„Ì£‡Í¥‹Ï¨ŽÐª‘Ò­“Ó¯–Ô±šÕ´Ö¶ Ø¸£Ùº¦Ú¼¨Ü¿¬ÜÁ®ÞıàŵàÈ·âÊ»ãͽåÏÀæÑÃçÓÅèÕÈé×ËêÙÎëÛÑíÝÓîßÖïáØðäÛñåÝòçàóéâôêäôìçöîé÷ðêøòíøóïùôñúõòû÷ôûùöüú÷ýûúýüûþýüÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶|T¶yQ´wO´vM²tJ²rG°pF¯oD®mA­l?¬j=¬i;«g9«e7©d5©c4¨a3§a0¦_/¦^-¦],¥\+¥],§^.§_/¨a1¨b2©c4©d6ªf7«g9¬i;­j=®k?¯mA¯oC°qE±rH²uK³vLµwO¶zR·{T¸}W¹Yº‚\»„_¼†a½ˆd¾Šg¿ŒjÁlÂoÓrÅ•uÆ—yÇš|Èœ~ÉŸË „Ì£‡Í¦ŠÏ§ŽÐªÒ¬“Ò¯—Ô±™Õ³Ö¶Ÿ×¸£Ù»¦Û½©Û¿«ÝÁ¯ßÃ²àÆµáȸâʺã̽äÏÀåÑÃçÓÆèÕÈé×ËëÚÎìÜÑíÝÓíßÖïáÙïãÛñåÞñçàóéâóëäõìæöîèöðë÷ñíøòïùôñùöóú÷ôüøöüúøýûùþüûþýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|T¶zQ´xO³vM²tJ±rH°pE°oD¯nA­k?¬i=¬h<«g9ªf7ªd5¨c3¨b2§`1§_/§^.¥],¥\+¥],¦^-§_/¨`1¨b2¨b3ªd5ªe7«g9«i;­j=®l?®mA¯nD°qF±sH³tJ³vM´xPµzQ·|T¸~W¹€Yº‚\»„_¼…a½ˆd¿Šf¿ŒjÁlÑoÄ“rÄ•uÆ—xÇš|Éœ~ɞˡ„Í£‡Î¥‹Ï¨ÐªÑ¬“Ó¯—Ô±šÕ³œÖ¶ Ø¸£Ù»¥Ú½¨Ü¿«Ý¯ÞIJ߯µàȸâË»ã;äÏÁæÐÃæÓÆèÕÉé×ËëÙÎëÛÑìÝÓíàÕîáØðãÛñæÝòçàóèâôêåõìçõîé÷ðëøñíùóïùôñúõóûöôûù÷üùøýûúýüûþýýÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|TµzQ´xO³vM²tJ±rH°pF¯oD®mB®l?­j=¬h;«g9ªe8ªd5©c4¨a2§`1¦_/¦^.¥],¥\+¦],¦^-§`/§`1¨a2©c3ªd5«f8«g9¬h;­j>­l@¯mA¯oC°qF±rH²tJ³vM´xOµzR·{T¸~W¸€Y¹‚\»ƒ^¼†a½ˆd¿Šg¿jÁŽm‘pÓrÅ•vÆ—yÇš{Èœ~Êž‚Ê „Ì£ˆÍ¥ŠÏ¨Ðª‘Ò¬”Ò¯—Ô±šÖ³œÖµ Ø¸¢Ùº¦Ú¼¨Û¾«ÝÁ¯ßÃ±ßÆ´àÈ·âÊ»ã̽åÏÁåÑÃçÓÆèÕÉéØËêÙÎëÛÑíÞÓíàÖïâØðãÛñåÝòæàóèâôëäõíæõîé÷ðë÷ñíøóïùôðúöóú÷õûøöüùøüúúþüûþýüþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|TµzR´xO³uM²tJ±rH°qF¯oC®mB®l?¬j=¬h;«g9ªe7©d5©b4¨a2¨`1§_/¦^.¦],¥\+¦]-¦^.¦_/¨`0¨a2©b4ªd6ªe7«g9¬h;¬j=­k?®mA¯oD°qF±rH²uJ³vMµwOµzR·{T¸~W¹€Zº‚\»ƒ^¼†a¾ˆd¾ŠgÀŒjÁŽl‘pÄ“rÄ•vÆ—yÇš|Éœ~ʞʡ…Ì£‡Î¥ŠÎ§ÐªÑ­“Ò¯–Ô±™Õ´Ö¶ŸØ¸¢Úº¥Ú½©Ü¿¬ÝÁ®ÞÃ±ßÆµáȸâË»äͽäÎÀåÑÃçÓÆèÖÉé×ËêÚÎëÜÐíÝÓíßÖïáØïãÛñåÞñçàóéâóêåôìæõîé÷ðëøñíøóïùõñùõóú÷õûøöüú÷ýúúýüûþýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|TµzQ´xO³vM³tJ±rH±pF°oC¯mA®l?­j=«i;«f9ªf7©d5©c3¨a2§a1¦_/¦^.¥]-¥\+¥],¦^.¦_/§`1¨b2©c4©d5ªf8«g9¬h;¬j=®l?®mA¯oD±pF²rH²tJ´vM´xOµyQ·|T¸}V¸€Yº‚\»„^¼†b½ˆd¾‹g¿jÁŽmÑpÓsÄ•uƘyÇš|Éœ~ɞˡ„Ì£ˆÎ¦ŠÏ¨ŽÐª‘Ѭ“Ó¯—Ô±šÕ´œÖ¶ Ø¸¢Ùº¦Ú½©Û¿¬ÝÁ¯ÞÃ²àÆµáȸâ˺ã̽äÏÀæÑÃçÓÆèÕÉé×ÌêÙÎëÛÑìÝÔîßÖîáØðãÛðåÝòçßóéâóëåôìæöîèöðëøñíøóïùôñúöóûöôûù÷üúøýúùýüûýýüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|T¶zR´xO´vM³tJ±rH±pE¯oC®mA®k?¬j=¬h;«g9ªf8ªd5¨c4¨b2§`0§_/§^.¥],¥\+¦],¦^-¦_/¨`0¨b2©c3ªd6ªf7«g9¬h;­j=®k?¯mB¯oC±qF±sH²tJ´vL´xOµzR·{T·~W¹€Y¹‚\»„_¼†a½ˆd¿ŠgÀŒiÀŽlÂpÓsÅ•uÆ—xÇ™{Ȝʞ‚Ë¡„Ì£‡Í¥ŠÏ¨ÐªÑ¬“Ò¯–Ô±šÕ³ÖµŸØ¸£Ù»¦Ú½©Û¿¬Ý¯ßÃ²ßÆµáÈ·âʺãͽäÏÀåÐÃçÓÆèÖÈé×ËëÙÎëÛÑíÞÔîßÖîáØðãÛðåÝòçßòèâôëäõìæöîéöðë÷ñìøóïùôñúöóú÷õüøöüúøýûúýüûþýýþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·|TµyQ´xO³vM²tJ±rH±qE¯nC®mA®k?¬j=¬h;«g9ªe7ªd6¨c4¨a2§`0¦_/¦^.¦],¥\+¦]-¦^-¦_/§`1¨a2©c3ªe6ªe7«g:¬i;­j=­l?®mB°nD°qF±rH²tJ³vL´xOµzR·|T·}W¹€Yº‚\»„_¼†a½ˆd¾ŠgÀŒiÁŽl‘pÓsÄ•vƘxÇ™{Èœ~ɞˡ„Ì£ˆÍ¥ŠÏ¨Ðª‘Ò¬“Ó®—Ô±™Ö³œ×¶ Ø¸£Ùº¥Ú½¨Ü¿¬ÝÁ¯ÞñßÅ´áÈ·âË»ãͽäÎÀåÑÃæÓÆçÖÉé×ÌêÙÎëÜÐíÝÓîßÖïáØðäÛðåÝñçàòéâôëäõìçõîé÷ïë÷ñíøòïùõñúõóû÷õûøöüùøüúúýüûþýüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿpidgin-encryption-3.1/nsis/install.ico0000644000175100017510000005357611365171052015101 00000000000000 ˆ V ¨Þ  ¨†00¨.#00 ¨%Ö1(0 `  QPM$???#( ¿¿¿ +[[[Å2q“ø39@ì---Ú²„¦~ˆM66²jPPÈ^FFÄ,Thhh*‹‹‹Ø” £ÿ›×üVùY^eÿfefÿ.Dlý"4[ùG21ì­{{ûìµµÿúÏÏÿõÖÖÿàÆÆýŒqq玥¥¥]¸¸¸ÿz›¡ÿ¸èþ‡Øþe»ýX°ûM»ý=5Fÿ˜^^ÿÙ‘‘ÿüµµÿÿÅÅÿÿÓÓÿÿççÿýüüÿ¶ŸŸö§§§]ºººþ|¯µþ-Ðïþ ²èÿ™áÿ€ØÿUµù_DKÿ¥ffÿߊŠÿõ££ÿø³³ÿýÅÅþþííþþþþþûúúþŠqqæT¨¨¨]ÐÐÐÿ›ÀÅþJÜòÿÈîÿ³êÿšâÿa¯þtUWÿžjjÿ¾uuÿË„‡ÿ਻ÿúÆ×ÿÿùûÿÿÿÿÿÿÿÿÿã××ý1""¤ªªª]ÕÕÕÿ¤ÃÇþ]àòÿÌîÿ ¼ëÿ¥äÿr¾ûXKUÿFJhÿ[K`ÿ±– ÿÆ™ÿá·ÄÿýóýÿûúùÿùööÿôîîÿmVVÔ¬¬¬]ØØØÿ¬ÅÈþnàðÿ)Ëêÿ¼çÿ ¨áÿ‡Ôý Z§üFOmû¨‡‡ÿÙ·½ÿª¨¥ÿ̦•ÿòåèÿïçäÿìâßÿìâßÿuuå‚+®®®]ÛÛÛÿ¢±³þˆ·ºþH¤¸þ)œ¼þ™¾þ™ÆûLSfÿ¨‡‡ÿàÀÀÿùåðÿ¿¦¤ÿÉ“‰ÿùÕÚÿþ¶¶ÿü¹¹ÿûÇÆÿ˜ts惂‚)¯¯¯]àÞÜÿŸÿ0Œ­þ‹ÏúrÆûH“ü(1Fÿ†uuÿ»²²ÿñïïÿþõþÿûÏðÿøÇáÿÿËÔÿÿžžÿÿªªÿü¶¶ÿ}YYÒ€€€±±±]ç´hÿQ“‰þ)Éëþ'ÆêÿªáÿwÐþ>{ûxooÿ³³³ÿîîîÿÿüüÿÿËÑÿÿ¿Åÿÿ­®ÿÿŸŸÿÿÿþK22—³³³]ܤ[ÿ=¯¸þvæôÿæôÿ8Ôïÿ ¦ãÿa¬þhNGÿ¬¨¨ÿîîîÿÿððÿÿÒÒÿÿÈÈÿÿººÿÿ­­ÿþžžÿ­nnå 2´´´]Ú¶ŽÿP±¼þŠêõþ£íöÿVßòÿ¸éþjœþ‰e<ÿ™yhÿèááÿÿííÿÿÝÝÿÿÒÒÿÿÇÇÿý¹¹ÿʈˆù2!!Z¶¶¶]ÄÄÄÿ|šÿLÐßýZáóþ4ÕñþªÕý``Iÿ»„8ÿâBÿÌXÿЩ˜ÿâ¾ÿã¾¾þѤ¤ô”jjÁ(=ÈÈȸ¸¸]ÙÙÙÿäáÝÿ°°›ÿzÅÓýq½Îý˜«°ÿÌÈÄÿÛϾÿåέÿêÅ‘ÿæ¸wÿݤ^ÿ¾‘_ûE<<º^ ±±±_èèèÿÕÏÎÿ­ƒƒþ»••ÿʬ¬ÿÕ¿¿ÿÞÑÑÿäÞÞÿãààÿàßßÿÝÝÝÿØ×ÖÿÓÑÎþµµµòCCCsfffvvvŠàààÿÞêÿÉqþÁŽ~ÿ¾‹‚ÿ¼‰…ÿ»ˆ‡ÿ¾‹‹ÿÇ™™ÿÚÈÈÿíííÿíêêÿÓÏÏý333‰???œœœ ÆÆÆÚðððÿúLjþþƇþþËšÿûÈ ÿøÄ¤ÿõÁ©ÿð½«ÿê·¬ÿëÉÆÿýááÿÿææÿôææÿ888­ÄÄÄ>Ö̾ðýÊŒÿþƉþþËšþÿË¡ÿÿ˧ÿÿË­ÿÿË´ÿÿ˺ÿþËÁÿ¹¢ îðØØúÿññÿÿüüÿœœœæ=ñññÉÆÁI‰zhŠˆvc ¢‹x±É®šÅÕµ¢Ù໩êèÀ²ýðÄ»ÿóÅÁþYPP”­¨¨ÂãááðÊÊÊÎ~~~ž777!xxxuuu[[[  >;;*MJJAPPP... ÿÿüððððððððððððððððàààþ?ÿÿÿÿÿÿ( @<66`A>vV<wb:+1J?5D&5_=p$9hT>FNo.In7Gg'Qi9Zg)Gy9Qq0T|KKJEJPRQQUZ^___dKDkOQmXZtRT{`UNS`Z]fzT`]agnbbkkksbb{ggu`lvllrpnwvv|ttswx˜m8…YY“__€gk‚kl“ff‚vvˆrr„yy‰~~ww”zz›}}£ll¦sq¨uu¤yy­{{·rrÆyyY‰u¼„7Ø–=°€F’Œg²ˆhÝKÔ–QèŸAÞ¢Wé«QÍ—yØŸqé³hì¼}þÀwF˜LS’W›_›&U‰aœ(g’(|“G¯ W¨P· `«v²S|gÇmÇdÌmÊwÅ}ÍsÒ?€œ9™·= ¤}…‚aš¢G¦«T¬±~­­j¤³™Ë‡Ø‘Û™ß žÝ*žÁ¦Í ¢Ü"§É,ªÉ›áªç«à±ç ±å³ê ²é ¼ê¹æB±ÈV¾Öm½ÆÆí&Éë4Îì;Öï)Óð3Öñ]ÅÙAËâJØíSÛíLÝñTßòjåôsã󃂂›ŽŽŒ›‘‘‘ž•”™˜˜¤„†·ˆˆº‘Œ¬’“ žž¹——¿°—ž££¨›³¶ ¢£¥¬­«««¶¨¦¤¯±¤·¹´´´ºººÄŠ‡Ð„…Æ”ƒÂ‘‘ו•ј˜ãŒŒå””üÖµŒÈ Ø˜ É¦¤Þ¦¦Ã¹­Õ¶«Ç µÜ¦²Ç´´Ï²·É¼³Á¾»Î¿¿Öº¶å¯¯û¨¨çµ©ñ½§å«¶ä½´ý²²ÿ¶¸õ¼¼ýººýŇêÅùȘÝʯǺÓŶáʦûÈ¦æÆ¶ûɸçÒ±ùß¾ã®Ìî±Âÿ¼Á¤ÎÓ‡èô–çò¦íöÇÆÆÚÁÃÑÉÇÖÈÈÜÍÍÍÑÂÝÔÇØ×׿ÈÇöÆÆýÅÅÿËÁýÅÍöÈÍþÌÌêÜÝôÒÒþÒÒýÛÛèàÝÿÌêúÖéöÝðèææòääýããöìà÷äíôíìþèèûçõû÷ø*"(’]V")/552$’˜¤fcT ' <Ãéððáœ#¥ª•wp_QPX8¯Ìêðòýü½$¥© ‹~qod`Z,=²ÄÌêîýÿÿä#¥ª¡„~xpdY -=±³ÄËêýÿÿÿœ)©ç¢‘ˆ„}yoY0=>¬¶Úìÿÿÿÿ÷2©ç¢Ý‰„yp[,™»Ùõÿÿÿÿÿž©ç¨Ý‡„~xb %»š›·þÿÿüü¿1ªç¨ßŒ…€€ro[/žáœåµïüóóóá)ªç§Üƒwvtn/žáû½·­íðÉÌéÃ3ª÷¥he\\S ™áøÿö¼ÇõÌÄÉ̸4ª×Cszuo_O3çüÿþôôÛ³³ÄÉ®¹I?…†…€p^!˜âÿÿùìêɳ³³³;¹EgÝ‘‡€oR4âÿÿòîêÌÉij«”¹Fjßß…xUàüÿòðîêÌIJ7ÀÒiÝÝ…r+BDÁøýòðî˰™àÀ•k‡„W@AGF­¸Â÷šàâ÷ŸlŠ‚m£ÑÒÓÎMLHFD&àÿ÷¿½¿ç÷ü÷÷÷÷çææÐ¹£“àçâ™9::<ž·Ááãóóóçç£à÷ÐKJ­­®«š®®·ãüü÷à’÷üÏNÏÏÔÔÆÆÅÅÅèûýûø(àúØÍÍÏÏÔÔÔÖÖÖÖÁòýýÿ˜â´MÎÏÔÔÔÔÖÖÖëÈ—áÿÿÿå–¦¦¹ÒÒÂÓÈÕÖ¾ªççå©ÿÿÿÿÿÿÿÿÿ‡ÿÿÿ ?þüüüüüüüüüüüüüüü?üü?üüüøø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ( @ €ªªªªªªªªªªªªªªªªªªªªª 'UUU ªªª888E!') $º œŠk73M@B@ K S O7888ªªª::: @bccÊOyŠø aŽõ;@Fñ998ç+**Э –±¥}$›[@@Àz[[ÓbbØnSSÑ>**³†?²²²<<ÿ£llÿו•ÿù··ÿþÅÅÿÿÑÑÿÿÚÚÿýååÿ÷ííþƲ²øbJJÕbÛÛÛ“““Á³³³þž£ÿAËâþ ±çÿ™àþ×þsÒþdÌþN·ü?5Dÿ‡SSÿ¹ssÿã““ÿû®®ÿþ¹¹ÿþÅÅþþÎÎþþããþþüüþüûûþÞÎÎþO88È`888 ÜÜÜ•••Á»»»þ£¨þTÚîþÅíÿ ²éÿŸãÿÞÿtÓþP¬öT>Fÿ“__ÿ½ssÿ㌌ÿó  ÿôªªÿú¹¹þýÅÅþþèèþþþþþþþþþüúúþ¦ð*¢!ªªªÜÜÜœœœÁÒÒÒÿ™±µþuãóþ)ÓðÿÄîÿ³êÿ¥æÿ‡Úþ X£þkOQÿ“ffÿ±qqÿÆyyÿЄ…ÿؘ ÿî±ÂÿûÄÏÿÿ÷øÿÿþÿÿÿÿÿÿÿÿÿÿçÝÝýw^^ÝQªªªÜÜÜžžžÁÖÖÖÿµ¸þƒæôþ3ØñÿÊîÿ ¼ìÿ¯èÿ’Ýþ a¨þlTVÿƒ__ÿwRUÿzT`ÿª‚ˆÿÇ µÿã®ÌÿøÑëÿÿôþÿþþþÿþýýÿýüüÿöòòÿ¯––ó{ªªªÝÝÝ¡¡¡ÁØØØÿ¢¶¹þçóþ>ØïÿÉìÿ ½éÿ±çÿ™ßþtÄø-HmýDyû-Fxÿu`lÿ½¤«ÿ»ˆÿº‘ŒÿÌ¥¥ÿøìöÿúö÷ÿõïîÿôíìÿóëêÿÑ»ºý'—ªªªÝÝÝ£££ÁÚÚÚÿ§¸ºþèòþJØíÿ(Ééÿ½çÿ²äÿ žÝþ…Óý _®ý*Ixû€gkÿ·——ÿÜÁÇÿ®’ÿÍÑÂÿÈ ÿíÜÞÿõîîÿëàÝÿëàÝÿëàÝÿÕ¿½ÿ<++¥¬««ÞÞÞ¥¥¥ÁÝÝÝÿ¤¯±þ¤ÎÓþm½ÆþB±Èþ+©Éþ"§Éþ¥Íü˜Ëü9Qqÿhiÿ¿ššÿáÁÁÿ÷äíÿϲ·ÿÆ­¡ÿÆ’‡ÿöÈÍÿÿÐÑÿý³²ÿû¼¼ÿúÇÆÿß³²ÿA..¥¬««ÞÞÞ§§§Ááááÿ«®®ÿ}…‚ÿ=›üz³ún°û^šüMný&Phýo\_ÿ¢ˆˆÿÓ¿¿ÿñççÿýñüÿöÝðÿܦ²ÿå«¶ÿýÜçÿÿ¶¸ÿÿ¨¨ÿÿ±±ÿþ¼¼ÿÞ¦¦ÿ6%%•«««ÞÞÞ©§¤ÁçÒ±ÿ’Œgÿ*žÁþ«àþ ¢Üþ‰ÔþmÊþB–ù*0Iý„yyÿ žžÿÔÔÔÿôôôÿÿüÿÿÿâõÿÿÊíÿÿÏèÿÿºÁÿÿŸŸÿÿÿÿ¦¦ÿú®®ÿÊŠ÷iªªª ßßß­£•Áé«QÿY‰uþ'Æèþ4Îìþ+Êëÿ³äÿ“ÚþfÇü>>d;;;www/ÅÅÅçâââÿâË´ÿØŸqþÍ—yÿÈ•‚ÿÄÿÁކÿ¾‹‡ÿ¼‰ˆÿ¾‹‹ÿ‘‘ÿË  ÿÝÎÎÿïïïÿòññÿîççÿÌÇÇý111˜ÀÀÀ~~~xéééÿïïïÿøÌ”þþÀwþÿÉÿþËšÿûÇžÿ÷Ä¡ÿôÁ¤ÿñ½§ÿ침ÿç´¨ÿã³­ÿëÏÍÿüääÿþääÿÿééÿíààÿDCC¹:UUUÈÈȪªª»öìàÿùß¾ÿýÄ‚þþÇþÿËšÿÿËŸÿÿˤÿÿ˨ÿÿË­ÿÿ˲ÿþʶÿýʺÿõżþ×¹¶üùÙÙþÿååÿÿññÿýøøÿ‹‹‹à kUUU ááá(¯¯¯”Ѭ~âë·xóñ‘ùóÅ™þöÇŸÿùÈ£ÿýÊ©ÿÿË­ÿÿ˳ÿÿË·ÿÿ˼ÿÿËÁÿæ¼·øƒxwÇÒÃÃçýððþþúúÿùùùÿÊÊÊó999øøøââⳬ¤ZndYrm`RscU¬˜‰¤¾¨˜³È®žÌϲ£Ûܹªìâ½°ýêÁ¸ÿòÅ¿ÿΫªë>88w•’’¦ÞÚÚôÎÎÎØ»»»»ppp‹LLLE^^^™™™œœœ ………(''LIH5fbaHZVVTjjj222MMM ˜˜˜ÿÃÇÿÿÁÿþüøøøøøøøøøøøøøøøøøøøø?ððððÿÀÿÿÿÿÿÿÿÿÿÿÿÿ(0` ))8=::I76Y>9[O2hI!kM;xY72K $P0S1Z%-E17C.5U=>P1a)?f+?r@?R?@QF{.Ee4Ji%GuGGGVDIPPOIKS]KPXWWfHGzMLtWOkZZuVW`rRZ^`fMaBap[ntWx~khhvhhlsnorrlwzyvwŸi†b5Ÿp3¥u1†[[“ZZ„aB‘[¤yF¶|W†ff–ee˜rc…vv˜vw§ll³mm°zm©wv´xxÆ||Ò~~B‚y{ƒ}¼†;؉*Ó‰6Ô”7æ–(æž<ö¨:¹…y°œ~É…CÔ”HÚRäžDò«Gô³UÄ hæ¨líµdùºfà§yë¸tþÀw9Ÿ GL‰Pˆ LšJ˜U–*n0uŽ&{™ K¥ V­\ F¶X¹z¤ f³c„[ÅgËtËnÒxÓ<ˆ†2…§0ž¼L‹Š^‹„Dƒ”Z™mƒ„y‡ŠL¦§ ̅ß͉ٖۗÖ%ŸÉ ¤Þ´ß'ªË:»Ñœá©æ ¶é¸å!ºáH¶ÅeµÂ ÁìÅì#Èê5Èæ,Ñî5Óí(Óð9ØñiËØWØëEÛñtÝìFàòVàòfäóvæô†……•ŠŠ‰–’———¦……·ˆ‡§—™¸—–†¡¥Ÿ  ©¨¨·¡¡º¤´¸¸·È‰ˆ×‡‡È•ŠÐ‰ÀŽ˜Æ••ÝŸŸê—˜ü››×¤‡Ù·ŒÊ¥–δ–Ùº˜â¾ˆâ½œÖ¢ÌŸµÈ¨§×¦¤È¸©×¸®Ì¨µÛ ¸É¸¶×º¸è¨§ü¨¨é¶¢ð½¡é®¾å¹¶ü··¿Â¸äÂýÇ‹üÉšÍÇ¿Ý˶æÃ¢ýÊ§æÆºýÊ·áÔ¿öصüà½Î©ÆÊ¼Ãë·Îÿ½Äñ¼Ñæ·â‡çô—êõ¦ëô´ìô·ð÷ÇÆÆÙÈÉÛÓÊÏÐÐØØØãÉÉýÈÇäÚÎôßÁýÉÕåÛÚû××ÄäÛæâÛóÇïéÛáÿËúþÚ÷Éíóåååùçæþëúüùù.&..)(./¢..>>¢¢w€ 0+#;?§§¦?$#.¥¥Ñ~†ƒj+H>.5¦ÀÏïôôîÉ©;#H«éé*ˆ„tj+l_"DÀÐïïôôýýýë¦$.¬éÑ¥|“‹ƒtmaacml!@°·ÐÐïïôôýýÿþ­$.¯¬¯¥‘”‹ƒuttrql 6AFÊËÐïïïôôÿÿÿÿ­$H¬Ñ¯0š™“Œ‹ƒƒtri56AF·ËËÐÐïïôÿÿÿÿý¦#¯¯Ñ¤¡œ”’Œ‹„uti5§ÈøÇ£õܧîÿüööööôÄ;¯ìü«û曕•ˆ…e>¦Àîýô¦Ñ×PÊÿïÐÐáïôÂ;¯ìü¥ª¤>pffhhnxn;¦ÂÉôþÿî§P±òþÐËÐÐÐïÀ;Ñíüì£.husoc $?¨ÉüÿÿþúâÎòþò¸¸ËÐÐáµ,¯íöX*‚‡‡…ƒsmi >¥¬ìüÿÿÿúùùúò˸¸ËËÐ˧>¯ÖO1‰Ž”ŽŽ‡ƒtqi+¥«éüÿÿÿôòòáÐ˸¸¸ËËÊ?ѾM%”—™™–”Ž„tr>«éüÿÿÿòïïáÐËË˸¸¸±>ѺMG—Ÿ¡¡Ÿ™Žƒt,¥éíÿÿýôïïáÐÐË˸¸·CѽJvž¡åæå –އub >ìüÿÿýôôòïïÐÐË˸E?ѺKyžäæèå¡™“ƒ7$­üÿÿýôôôïïïÐÐ˱?ÑêÙ}™ åæå¡™“Œ„299=Æÿÿýýôôôïïáа?Ñ쬢ž¡¡¡Ÿ™’Œn3IST:¦Éôýôôôïáç¦Ñìé¯}™™™™“’h3ILNOOS:P»Â馦ßìéíÕ8zŠ˜“‰{/«Äľ¾]ZWVVJKR=$£ÑüüÿýñðìÑééìüüüüüööðÛÖ×Ò¾ZQ0.HÑüÿüì©©ÂêíüÿüþüüüüüüíöíðìëÕ鯥éíüíÈ@@?CDC§­ÈÉðóóíüöíüíííìì«Ñííí»CCCC¦DD§§P§´µÂÉíüüüüíé£éüüó]Y\\¹³²²°°§´°©µÃüþÿÿýý¯+ÑüüüÝ[^ÓÔÔÔÔÍÍÍÌÌÃöÉüýýýýþë.éÿÿÿÓ^ÓÔÔÔØØØØÚÚÚÚÚÚÚîôýýýþþ¥.íýñÔ^ÓÔÔÔØØØØÚØÚÚÚÚïÉÂôýýþÿÿí+éѼ[^ÓÔÔÔØØØØÚØÚÚÚïïïÄ¥êýþÿÿÿÿHļ¼½½¿¿×ØØØÚÚÚÚÚïÜ𤋮ýÿÿÿüö¬ÕÕÑÈÄÅÄÉÉÙïÙ¨ìëìéééÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿø¾ÿÿðÿÿÀÿÀ?ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€?ÿ€ÿ€ÿÿ€ÿÿ€ÿÿ€ÿÿ€ÿÿ€ÿÿ€ÿÿÿÿÿÿÿþÿÿ€ÿÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(0` €%   )2+  K • ¨ŒzucG% +84:1%#*..* !!!fOOOÐVjp÷<\l÷001åÏȵ˜tT@\ |QZ` rˆ š)Ÿ(ž” |Y: %%%vwwwᆇˆÿ2…§ÿ|Êõ4JiÿUUTÿPPOÿOONï655å###×À ½ÎDࣉ¥A,,ÄrPPߘooﱇ‡õ±‰‰õ§‚‚ôŒjjìeFFÝ?**Ùe5qqq!>>>Œ†††çÀÀÀÿy‡Šÿ%ŸÉÿˆØþOªñKMTÿgedÿ}|yÿzxvÿqomÿJHGÿFFLø%>rü#.òØ?**Ú~VVñ¬}}ÿÖ££ÿ븸ÿöËËÿöÑÑÿñÑÑÿèËËÿؽ½ÿµ““úvSSç8%%À‡HÁÁÁ [[[}ŸŸŸïÉÉÉþÅÅÅÿUu}ÿ²á÷“ÝþpÏþN©ö.EeÿUTUÿhebÿGKVÿ*?dÿE¹þ4øH;1ÿN86ÿvPPÿ°zzÿÝŸŸÿô¶¶ÿþÅÅÿÿÍÍÿÿÔÔÿÿÛÛÿÿááÿýææÿ÷ååÿàÏÏþ¢~~øS77Ö –CÊÊÊ€€€£ÀÀÀÿ»»»ÿ”””ÿZ™ÿÂëþáþ‡ØþmÌþY¹úOŽÿN‹ÿC›ñO½üE¶þ1aÿN71ÿzMLÿ§kkÿăƒÿè¡¡ÿø±±ÿÿ¾¾ÿÿÆÆÿÿÌÌÿÿÔÔÿÿÚÚÿÿááÿÿííÿÿÿÿÿ÷óóÿ¤¤ÿcEEà •GÊÊÊ‚‚‚£´´´ÿ±±±ÿ———ÿeµÂÿ*Ñïþ ²èÿ âÿ‹Ûþ}ÕþqÐþkÎþeÌþZÆþH´ý%-EÿgBAÿ‘XXÿ®kkÿ̓ƒÿîžžÿû®®ÿÿ··ÿÿ¿¿ÿÿÆÆÿÿÌÌÿÿÓÓÿÿÚÚÿÿôôÿÿÿÿÿÿÿÿÿöòòþÀ¡¡þQ55Õ…4ÊÊʃƒƒ£»»»þµµµþ‚‚ÿiËØÿ:×ñþÁíÿ ³èÿ¢äÿ—àÿ‰Üÿ~ØÿqÔÿaÊþE¨÷-*=ÿƒUUÿ–]]ÿ²llÿÑÿï™™ÿù¦¦ÿü¯¯ÿü¶¶ÿý¾¾ÿþÆÆþþÌÌþþØØþþýýþþþþþþþþþþþþþôîîþŸ||ö7%%¿dËËË„„„£ºººÿ¿¿¿ÿŠ‹‹ÿ~äòþHÛòþ ÏïÿÁíÿ³êÿªçÿäÿ’ßÿØÿlÎþD—ñA2<ÿŒ__ÿ™ccÿ´ooÿÒ~~ÿêÿðššÿð  ÿò¨¨ÿ÷²²ÿû¼¼ÿÿÆÆÿÿááÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿßÑÑþvSSç™;ËËË………£ÇÇÇÿ×××ÿ’““ÿ¤êõþZàóÿ,ÕñÿÌïÿ ¾íÿ´êÿ©èÿžäÿŒÝÿtÑþ GÿVAFÿŽddÿ˜ggÿ°qqÿÉ||ÿÚƒƒÿ܇‡ÿÜÿ☙ÿí¨­ÿ÷´¸ÿÿÁÁÿÿòòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷óóÿµ——ú?**Ä^Ëˡ‡‡£ÌÌÌÿÙÙÙÿ˜››ÿ¡éôþiãôÿ9Úòÿ!ÑðÿÅîÿ ¾íÿ³êÿªçÿ•àÿÖþK‰ÿbKMÿggÿ“ggÿ llÿ§llÿ®llÿµpqÿÀŽ˜ÿΩÆÿæ·âÿóÇïÿÿÜôÿÿ÷üÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÔÔÿsTTã Œ(ÌÌ̈ˆˆ£ÎÎÎÿÛÛÛÿ™››ÿ¬ëôþuåôÿ=Üòÿ$ÒðÿÈîÿ Áíÿ·ëÿ®èÿ›áÿˆÙþS”ÿ]KPÿ‡ffÿwWWÿfHHÿYBOÿfMaÿ—w{ÿº¤´ÿÌŸµÿÛ ¸ÿë·ÎÿýÝöÿÿíÿÿÿýÿÿþþþÿþþþÿýüüÿýûûÿüûûÿíääÿ¢‚‚ô'ª7ÌÌÌŠŠŠ£ÏÏÏÿÝÝÝÿšœœÿ²ìôþ}æôÿFÜñÿ*ÒïÿÆíÿÁëÿ ¸êÿ®çÿŸâÿÛþ`°ó?@Qÿ=>Pÿ)?iÿJ˜ÿ+?rÿ‚aaÿ©˜žÿ̨µÿ½|ÿ¶|zÿ¿ˆ‡ÿßÀÇÿûëúÿþúþÿûùøÿøôóÿ÷òñÿöñðÿöððÿòêéÿ½ŸŸü0 ¹FÍÍÍ‹‹‹£ÑÑÑÿÞÞÞÿ›ÿ¶ìôþ‚åóÿLÜðÿ-ÑíÿÅêÿ¿éÿ ¸çÿ­åÿŸàÿÚþvÌü\ ÿU±õM©ò@?RÿpRSÿ«ŠŠÿʼÃÿÖ¢ÿ›wxÿ¶»³ÿÍ©–ÿ´ŽŠÿíÞãÿýøüÿôïíÿðèæÿðçåÿðçåÿðçåÿðçåÿÊ®­ÿN77ÉTÍÍÍŒŒŒ£ÒÒÒÿàààÿœžžÿÅîôþ’æòÿYÜîÿ;Ñêÿ&ÇèÿÁçÿ¹æÿ±ãÿ ¤ßÿ ™Úþ€ÒþoÌþJ‚ÿPDMÿ‹nnÿ´ÿÒµµÿåØàÿà­¯ÿ–ŒŽÿÄäÛÿúضÿ¸‹€ÿáÇÇÿý÷ûÿðèæÿêÝÚÿéÝÙÿéÝÙÿéÝÙÿéÝÙÿ˯­ÿ\CCÏXÎÎÎŽŽŽ£ÔÔÔÿáááÿŸ  ÿÎíóý¥æðþtÝìþUÔèþ:Ëçþ0Æåþ'Áäþ ½ãþ´ßþ"·àþ—ÖþX˜ÿRDIÿ†kkÿ°ŒŒÿÉ  ÿ寯ÿôåîÿ÷ÖÜÿ¨ˆ‰ÿ¿Â¸ÿèÀ£ÿ¶ƒzÿ節ÿÿó÷ÿÿÆÆÿý³³ÿú¼»ÿúÃÂÿùÉÈÿöÏÍÿÒª©ÿ]CCÏWÎÎΣÕÕÕÿäääÿ–——ÿ†¡¥ÿ‰–’ÿ…}ÿc„ÿ0uŽÿ*nÿ$|œÿ"w”ÿ£ÿ$™¹ñ}©ÿEDNÿˆllÿ¦„„ÿÅ¡¡ÿß½½ÿõÞÞÿüï÷ÿÿíÿÿÞÇËÿºˆ…ÿ·€|ÿÏ‹ÿùÊÔÿÿíòÿÿ´´ÿÿ««ÿÿ±±ÿÿ··ÿÿ¿¿ÿÿÆÆÿÖ¢¢ÿ^AAÌ MÎÎΣ×××ÿèèèÿÎÎÎÿŒÿlsnÿ.}žÿ ÀòyÌürÈü`±õ K“ÿ0Sÿ2Kÿ28CÿjUUÿ—~~ÿ¬——ÿο¿ÿèááÿúùùÿþùþÿÿéÿÿýÞùÿñ¼Ñÿ鮾ÿúÅ×ÿÿèúÿÿÎÒÿÿŸŸÿÿ¤¤ÿÿ««ÿÿ±±ÿÿ¸¸ÿý¾¾ÿË––ÿG00¹:ÎÎΑ‘‘£ØØØÿëäÙÿÄ hÿZ{ÿŸÍÿ ¤Þþ ŸÛþ•Øþ‡ÔþpËþ`ÄþF£ö $PÿH9=ÿƒttÿ•ÿ¨¦¦ÿÍÍÍÿéééÿûûûÿÿþÿÿÿõÿÿÿÚüÿÿËúÿÿÑøÿÿÛøÿÿÏÜÿÿ§¨ÿÿššÿÿÿÿ¤¤ÿÿ««ÿÿ²²ÿö±±ÿ·‚‚ù.™'ÏÏÏ’’’£Ý˱ÿö¬>ÿŸiÿ&¨Êÿ»çþ¾çþ¼æÿ´äÿ ¦ßÿŒØÿwÐþ\ÄþAšñ%#4ÿnccÿ“““ÿ£££ÿÈÈÈÿæææÿúúúÿÿÿÿÿÿþÿÿÿÔÚÿÿÆÕÿÿÄÓÿÿ½Äÿÿ±²ÿÿ¥¥ÿÿžžÿÿššÿÿÿÿ¤¤ÿÿ««ÿ룣ÿ˜hhê$vÐÐЕ••£á¿ÿëš&ÿ`rRÿ!Éìþ2ÓïþAØðÿA×ðÿ1Òîÿ Æêÿ±åÿ”ÜÿwÒþbËþ.5UÿZFFÿ‡‚‚ÿŸŸŸÿÃÃÃÿâââÿùùùÿÿÿÿÿÿõõÿÿÌÌÿÿÉÉÿÿÂÂÿÿ»»ÿÿ´´ÿÿ­­ÿÿ¦¦ÿÿŸŸÿÿššÿÿœœÿü¢¢ÿÔŒŒýbAA¾ ?ÐÐЖ––£Þ¼ÿá’*ÿB‚yÿ3ÖñþRàóÿqåôÿräôÿWàòÿ9×ðÿÄëÿ ®åÿ‹ÛÿnÒþF{ÿY>9ÿtddÿœššÿÃÃÃÿâââÿùùùÿÿþþÿÿççÿÿÒÒÿÿÍÍÿÿÉÉÿÿÂÂÿÿ»»ÿÿ´´ÿÿ­­ÿÿ¦¦ÿÿžžÿþššÿð••ÿ iië4""|ÐÐЗ——£Û¹Žÿ؉*ÿ<ˆ†ÿFßóþvèõÿ¡íöÿ¦íöÿêõÿ`âóÿ/ÓïÿÀêÿŸâÿÛþPˆÿkM;ÿjLFÿ‰||ÿÈÈÈÿæææÿúúúÿÿûûÿÿããÿÿ××ÿÿÒÒÿÿÍÍÿÿÉÉÿÿÂÂÿÿººÿÿ´´ÿÿ­­ÿÿ¥¥ÿüÿÃzzùdBB± 2ÑÑј˜˜£Ù·ÿÒˆ7ÿL‹ŠÿKßòþ~éõþ¯ï÷ÿ·ð÷ÿžíöÿuæõÿ9ØñÿÆìÿ¨åþŠÝþ$OwÿxY7ÿ„aBÿtWOÿ²££ÿëëëÿûûûÿÿõõÿÿååÿÿÞÞÿÿ××ÿÿÒÒÿÿÍÍÿÿÉÉÿÿÁÁÿÿººÿÿ´´ÿü««ÿΆ†þTTÑG ÑÑÑ™™™£ÝÌ»ÿáκÿmƒ„ÿ<Ùðüfæôþ˜ìöÿ¥îöÿ”ëöÿqåôÿ;ÙñÿÈîÿ¬çþŽÝüFDAÿ†b5ÿ¤xBÿ¥zJÿ™pfÿë«ÿ÷óóÿÿóóÿÿééÿÿããÿÿÞÞÿÿ××ÿÿÒÒÿÿÌÌÿÿÈÈÿÿÁÁÿù¶¶ÿÌÿ•eeê0 H ÑÑÑ›››£ÍÍÍÿ®®®ÿ~ÿH¶ÅÿFàòþkæôþzèõþtæôÿWáóÿ/ÕñþÆîþ«çþt¡ÿhI!ÿŸp3ÿº„=ÿÑ•GÿÚRÿ±{\ÿµ‹‚ÿÙ¿¾ÿðÜÜÿøßßÿúÞÞÿûÚÚÿûÔÔÿùÌÌÿò¿¿ÿܨ¨ü¬xxíxPP­ ,###ÒÒÒœœœ£ÐÐÐÿÈÈÈÿ²²²ÿx~ÿL¦§ÿ6×ïü@Ýóþ=Ûòþ1ÖñþËïþºéü%~—ÿ[O2ÿ¥u1ÿ¿ˆ9ÿÔ”7ÿæž<ÿø¦6ÿõ¦<ÿØ”Iÿ»~Sÿ¾ŒuÿÊ¢—ÿÏ©¤ÿΩ©ÿˤ¤þ¼’’÷ŸssÝwRR´S77hÒÒÒ£ÐÐÐÿÄÄÄÿØØØÿÍÇ¿ÿ‘[ÿ^‹„ÿ:»ÑÿÉëùÅêú(­ÍÿDƒ”ÿlwzÿ£¢ ÿʍÿÍ» ÿÛ½‘ÿ侃ÿí»qÿò·bÿô³Uÿò«GÿäžDÿÙŒ2ÿЇ;ÿÉ…Cÿ–r]øI55Ì5%%ŠN)ÓÓÓŸŸŸ£áááÿñññÿøøøÿôïçÿôßÁÿß×ÍÿÌÌÌÿÃÄÄÿÁÁÁÿÃÃÃÿÏÐÐÿãããÿäääÿäääÿãããÿäääÿâââÿáàÞÿáÙÎÿáÔ¿ÿâΰÿâɤÿäÂÿç¼}ÿíµdÿ¯š{ù```Û777·)))œf#ÓÓÓ   £éééÿûûûÿêêêÿÑÉÈÿ¶•“þ¼˜˜ÿǪªÿØÄÄÿã××ÿíççÿóóóÿñññÿîîîÿìììÿêêêÿèèèÿæææÿãããÿáááÿÞÞÞÿÝÝÝÿÛÛÛÿØØ×ÿ×ÔÐÿ×ÐÇÿÎËÇþÄÄÄüµµµøåIII~ µµµžžž§ßßßÿÞÞÞÿÖÖÖÿij³ÿ£rrþ¢ooÿ¥rrÿ¨uuÿ«xxÿ­zzÿ´……ÿ¾••ÿͱ±ÿÓ»»ÿÝÎÎÿâØØÿãÜÜÿâÝÝÿáÞÞÿáààÿßßßÿÝÝÝÿÛÛÛÿØØØÿÖÖÖÿÔÔÔÿËËËþ’’’Ö999^ (((+¤¤¤¾ØØØÿÞÞÞÿÜØÖÿȦ—ÿ°zmþ®zrÿ¬yuÿ«xxÿ­zzÿ¯||ÿ²ÿ´ÿ·„„ÿ¹††ÿ»ˆˆÿ¾‹‹ÿÆ››ÿͧ§ÿÕ¼¼ÿáÞÞÿåååÿåååÿåååÿáááÿÝÝÝÿÅÅÅý{{{à+++R ÚÚÚMMMTÂÂÂëåååÿåååÿçÜÎÿí²pÿæ¨lþà§yÿÚ¦…ÿÕ¢‰ÿЉÿÌ™ŠÿÈ•ŠÿÄ‘ŠÿÀŠÿ½Š‰ÿ¾‹‹ÿÁŽŽÿÃÿÆ““ÿÏ©©ÿåßßÿòòòÿùùùÿúööÿ÷îîÿôèèÿ¹´´ü&&&´?XXXŒŒŒáááÿíííÿíííÿóØ´ÿþ¼iþþÀwþÿljÿÿË–ÿþË›ÿúÇœÿ÷ÄžÿóÀŸÿð½¡ÿíº¢ÿé¶£ÿæ³£ÿᮢÿÛ¨¡ÿÙ¦¡ÿÛ´²ÿðâáÿûêêÿþèèÿÿææÿÿççÿÿêêÿÚÏÏÿONNÑg'»»»ÛóóóÿôôôÿôôôÿûËÿþÀwþþƉþÿË–ÿÿËšÿÿËžÿÿË¡ÿÿË¥ÿÿ˧ÿÿ˪ÿÿË®ÿÿ˱ÿþ˳ÿüɶÿûÈ·ÿúǺÿòŽÿñÌÊÿþØØÿÿÜÜÿÿããÿÿééÿÿððÿúòòÿ”““óŠ0{{{aÞÞÞÿöîäÿüà½ÿýÏ—ÿÿÁzÿþÇ‹þþË—þÿË›ÿÿËžÿÿË¢ÿÿË¥ÿÿ˨ÿÿ˪ÿÿË®ÿÿ˱ÿÿË´ÿÿË·ÿÿ˺ÿÿ˾ÿÿËÁÿ໵ý¿­¬ûòÔÔýÿããÿÿêêÿÿòòÿÿøøÿÿýýÿ×××ÿ111¼Z————µµµÐÒ°„õý»hÿÿÀwÿÿÇ‹ÿþË—þþË›þÿËžÿÿË¡ÿÿË¥ÿÿ˨ÿÿ˪ÿÿË®ÿÿ˱ÿÿË´ÿÿË·ÿÿ˺ÿÿ˾ÿÿËÁÿýËÄÿȨ¥ò~{{ÑÔÃÃíýééÿÿòòÿÿùùÿÿýýÿÿÿÿÿ÷÷÷ÿsssßmÈÈÈ<±±±I©›‰«Å¦ÒȪ‰áÕµ”çÙ¸™þ༛þ從ÿêÁ¡ÿñŦÿöÇ©ÿÿË®ÿÿ˱ÿÿË´ÿÿË·ÿÿ˺ÿÿ˾ÿÿËÁÿÿËÄÿùÉÄÿ¨â888~’¼ôééüÿùùÿÿþþÿøøøÿëëëÿàààÿ›››×444Xóóó ÚÚÚ&hhh7000A950F;72U@93U…|ur£™‘ƒ¨œ“”® —¯´£šºº§žÒʯ¤ÙͲ©÷׸®ÿÜ»³ÿèÀºÿîÿÿéÀ¿ü‚tt½6fffeÊÇÇëÒÑÑñ¾¾¾Ñªªª®žžžNNNb222CSSSUUUäääëëë ëëëììì‚‚‚!) +_[ZFš””d™“’qœ––”][[S žžž ¥¥¥1(£££ØØØÿÿÿÿÿÿÿþÀÿÿÿüÿÿÿàÿÿÀ?ÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ?ÿ?ÿ?ÿÿÿþÿþÿþÿþÿþþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿpidgin-encryption-3.1/nsis/translations/0000777000175100017510000000000011365216007015524 500000000000000pidgin-encryption-3.1/nsis/translations/spanish.nsh0000644000175100017510000000514211365214574017630 00000000000000;; ;; spanish.nsh ;; ;; Spanish language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1252 ;; Author: Javier Fernández-Sanguino Peña ;; Version 1, sept 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_SPANISH} "Pidgin-Encryption necesita que Pidgin esté instalado. Debe instalar Pidgin antes de instalar Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_SPANISH} "Complemento de Cifrado de Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_SPANISH} "Versión incompatible.$\r$\n$\r$\nEsta versión del complemento de Cifrado de Pidgin se preparó para la versión ${PIDGIN_VERSION} de Pidgin. Parece que vd. tiene la versión de Pidgin" LangString BAD_PIDGIN_VERSION_2 ${LANG_SPANISH} "instalada.$\r$\n$\r$\nPara más información consulte http://pidgin-encrypt.sourceforge.net" LangString UNKNOWN_PIDGIN_VERSION ${LANG_SPANISH} "No puedo determinar la versión de Pidgin que tiene instalada. Asegúrese de que es la versión ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_SPANISH} "Instalador de Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION}" LangString WELCOME_TEXT ${LANG_SPANISH} "Aviso: Esta versión del complemento fue diseñada para la versión ${PIDGIN_VERSION} de Pidgin y no se podrá instalar ni funcionará con otras versiones.\r\n\r\nCuando actualice su versión de Pidgin debe desinstalar o actualizar este complemento.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_SPANISH} "Por favor, localice el directorio donde está instalado Pidgin" LangString DIR_INNERTEXT ${LANG_SPANISH} "Instalar en este directorio de Pidgin:" LangString FINISH_TITLE ${LANG_SPANISH} "Se ha completado la instalación de Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION}" LangString FINISH_TEXT ${LANG_SPANISH} "Deberá reiniciar Pidgin para que se cargue el complemento, después vaya a las preferencias de Pidgin y active el complemento de Cifrado de Pidgin." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_SPANISH} "Se va a borrar el complemento encrypt.dll de su directorio de complementos de Pidgin. ¿Desea continuar?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_SPANISH} "Complemento Pidgin-Encryption Plugin (sólo desinstalación)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_SPANISH} "El desinstalador no pudo encontrar las entradas de registro de Pidgin-Encryption.$\rEs posible que otro usuario haya instalado el complemento." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_SPANISH} "No tiene los permisos necesarios para desinstalar el complemento." pidgin-encryption-3.1/nsis/translations/dutch.nsh0000644000175100017510000000507411365214603017267 00000000000000;; ;; dutch.nsh ;; ;; Default language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1252 ;; Author: Menno Jonkers ;; Version 1, September 5, 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_DUTCH} "Pidgin-encryptie vereist dat Pidgin geïnstalleerd is. U moet Pidgin installeren voordat u Pidgin-encryptie installeert." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_DUTCH} "Pidgin-encryptie plugin voor Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_DUTCH} "Incompatibele versie.$\r$\n$\r$\nDeze versie van de Pidgin-encryptie plugin is gemaakt voor Pidgin versie ${PIDGIN_VERSION}. Het lijkt erop dat u Pidgin versie" LangString BAD_PIDGIN_VERSION_2 ${LANG_DUTCH} "geïnstalleerd heeft.$\r$\n$\r$\nZie http://pidgin-encrypt.sourceforge.net voor meer informatie." LangString UNKNOWN_PIDGIN_VERSION ${LANG_DUTCH} "Er kan niet worden vastgesteld welke versie van Pidgin u geïnstalleerd heeft. Controleert u dat dit versie ${PIDGIN_VERSION} is" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_DUTCH} "Pidgin-encryptie v${PIDGIN-ENCRYPTION_VERSION} Installatie" LangString WELCOME_TEXT ${LANG_DUTCH} "Let op: deze versie van de plugin is gemaakt voor Pidgin ${PIDGIN_VERSION} en zal niet installeren of werken met andere versies van Pidgin.\r\n\r\nWanneer u uw versie van Pidgin opwaardeert, dient u deze plugin ook te verwijderen of op te waarderen.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_DUTCH} "Blader naar de map waarin Pidgin is geïnstalleerd" LangString DIR_INNERTEXT ${LANG_DUTCH} "Installeer in deze Pidgin map:" LangString FINISH_TITLE ${LANG_DUTCH} "Pidgin-encryptie v${PIDGIN-ENCRYPTION_VERSION} Installatie Voltooid" LangString FINISH_TEXT ${LANG_DUTCH} "U dient Pidgin te herstarten om de plugin beschikbaar te maken. Ga dan in Pidgin naar Voorkeuren en stel bij Plugins in dat Pidgin-encryptie geladen wordt." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_DUTCH} "De encrypt.dll plugin staat op het punt verwijderd te worden uit uw Pidgin/plugins map. Doorgaan?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_DUTCH} "Pidgin-encryptie plugin (alleen verwijderen)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_DUTCH} "Het verwijderpogramma kon in het register geen onderdelen vinden van Pidgin-encryptie.$\rWaarschijnlijk is de plugin door een andere gebruiker geïnstalleerd." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_DUTCH} "U heeft niet de noodzakelijke rechten om de plugin te verwijderen." pidgin-encryption-3.1/nsis/translations/polish.nsh0000755000175100017510000000472611365214612017464 00000000000000;; ;; polish.nsh ;; ;; Polish language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1250 ;; Author: Marek Habersack ;; Version 1, sept 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_POLISH} "Pidgin-Encryption wymaga by Pidgin by³ zainstalowany. Nale¿y zainstalowaæ Pidgin przed instalacj¹ Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_POLISH} "Wtyczka Pidgin-Encryption dla Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_POLISH} "Nieodpowiednia wersja.$\r$\n$\r$\nTa wersja wtyczki Pidgin-Encryption zosta³a skompilowana dla wersji ${PIDGIN_VERSION} Pidgin. Wydaje siê, ¿e zainstalowana wersja Pidgin to" LangString BAD_PIDGIN_VERSION_2 ${LANG_POLISH} "$\r$\n$\r$\nOdwiedŸ http://pidgin-encrypt.sourceforge.net by uzyskaæ wiêcej informacji." LangString UNKNOWN_PIDGIN_VERSION ${LANG_POLISH} "Nie potrafiê okreœliæ wersji zainstalowanego Pidgin'a. Upewnij siê, ¿e jest to wersja ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_POLISH} "Instalator Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION}" LangString WELCOME_TEXT ${LANG_POLISH} "Uwaga: ta wersja wtyczki zosta³a zaprojektowana dla Pidgin ${PIDGIN_VERSION} i nie bêdzie dzia³a³a z innymi wersjami Pidgin.\r\n\r\nPrzy ka¿dej aktualizacji Pidgin nale¿y równie¿ zaktualizowaæ tê wtyczkê.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_POLISH} "Proszê wskazaæ katalog w którym zainstalowano Pidgin" LangString DIR_INNERTEXT ${LANG_POLISH} "Instaluj w poni¿szym katalogu Pidgin:" LangString FINISH_TITLE ${LANG_POLISH} "Instalacja Pidgin-Encryption v{PIDGIN_ENCRYPTION_VERSION} zakoñczona" LangString FINISH_TEXT ${LANG_POLISH} "Aby Pidgin móg³ u¿ywaæ nowej wtyczki nale¿y go zrestartowaæ a nastêpnie uaktywniæ wtyczkê w okienku konfiguracyjnym Pidgin." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_POLISH} "Wtyczka encrypt.dll zostanie usuniêta z katalogu wtyczek Pidgin. Kontynuowaæ?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_POLISH} "Wtyczka Pidgin-Encryption (tylko usuwanie)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_POLISH} "Skrypt deinstalacyjny nie móg³ usun¹æ wpisów w rejestrze dotycz¹cych wtyczki Pidgin-Encryption.$\rJest prawdopodobne, ¿e inny u¿ytkownik równie¿ zainstalowa³ wtyczkê." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_POLISH} "Nie posiadasz wystarczaj¹cych uprawnien aby zainstalowaæ wtyczkê." pidgin-encryption-3.1/nsis/translations/turkish.nsh0000644000175100017510000000474611365214620017655 00000000000000;; ;; turkish.nsh ;; ;; Turkish language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1254 ;; Author: Ekrem Erdem ;; Version 1, Dec 2005 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_TURKISH} "Pidgin-Þifreleme Pidgin'in kurulu olmasýný gerektiriyor. Pidgin-Þifrelemeyi kurmadan önce Pidgin'i kurmalýsýnýz." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_TURKISH} "Pidgin için Pidgin-Þifreleme eklentisi" LangString BAD_PIDGIN_VERSION_1 ${LANG_TURKISH} "Uyumsuz versiyon.$\r$\n$\r$\nPidgin-Þifrelemenin bu versiyonu Pidgin'in ${PIDGIN_VERSION} versiyonu için hazýrlanmýþtýr. Pidgin'in bu versiyonuna sahip görünüyorsunuz" LangString BAD_PIDGIN_VERSION_2 ${LANG_TURKISH} "kurulum tamamlandý.$\r$\n$\r$\nDaha fazla bilgi için http://pidgin-encrypt.sourceforge.net adresine bakýnýz." LangString UNKNOWN_PIDGIN_VERSION ${LANG_TURKISH} "Hangi Pidgin versiyonunun kurulu olduðunu söyleyemiyorum. Kurulu versiyonun ${PIDGIN_VERSION} olduðundan emin olun" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_TURKISH} "Pidgin-Þifreleme v${PIDGIN-ENCRYPTION_VERSION} Kurucusu" LangString WELCOME_TEXT ${LANG_TURKISH} "Not: Eklentinin bu versiyonu Pidgin ${PIDGIN_VERSION} için tasarlanmýþtýr, Pidgin'in diðer versiyonlarý için kurulmaz ve çalýþmaz.\r\n\r\nPidgin versiyonunu yükselttiðinizde bu eklentiyi kaldýrmalý ya da versiyonunu yükseltmelisiniz.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_TURKISH} "Lütfen Pidgin'in kurulu olduðu dizini belirtiniz" LangString DIR_INNERTEXT ${LANG_TURKISH} "Bu Pidgin dizinine kur:" LangString FINISH_TITLE ${LANG_TURKISH} "Pidgin-Þifreleme v${PIDGIN-ENCRYPTION_VERSION} Kurulumu Tamamlandý" LangString FINISH_TEXT ${LANG_TURKISH} "Eklentinin yüklenebilmesi için Pidgin'i yeniden baþlatmalýsýnýz. Daha sonra Pidgin tercihleri bölümünden Pidgin-Þifreleme eklentisini aktif hale getirmelisiniz." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_TURKISH} "encrypt.dll eklentisi Pidgin/plugins dizininizden silinmek üzere. Devam et?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_TURKISH} "Pidgin-Þifreleme Eklentisi (sadece silinebilir)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_TURKISH} "Kaldýrma aracý Pidgin-Þifreleme için registry girdisini bulamadý.$\rEklentiyi baþka bir kullanýcý kurmuþ olabilir." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_TURKISH} "Eklentiyi kaldýrmak için gerekli izinlere sahip deðilsiniz." pidgin-encryption-3.1/nsis/translations/english.nsh0000644000175100017510000000471711365214631017615 00000000000000;; ;; english.nsh ;; ;; English language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1252 ;; Author: Bill Tompkins ;; Version 1, Nov 2003 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_ENGLISH} "Pidgin-Encryption requires that Pidgin be installed. You must install Pidgin before installing Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_ENGLISH} "Pidgin-Encryption plugin for Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_ENGLISH} "Incompatible version.$\r$\n$\r$\nThis version of the Pidgin-Encryption plugin was built for Pidgin version ${PIDGIN_VERSION}. It appears that you have Pidgin version" LangString BAD_PIDGIN_VERSION_2 ${LANG_ENGLISH} "installed.$\r$\n$\r$\nSee http://pidgin-encrypt.sourceforge.net for more information." LangString UNKNOWN_PIDGIN_VERSION ${LANG_ENGLISH} "I can't tell what version of Pidgin is installed. Make sure that it is version ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_ENGLISH} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} Installer" LangString WELCOME_TEXT ${LANG_ENGLISH} "Note: This version of the plugin is designed for Pidgin ${PIDGIN_VERSION}, and will not install or function with other versions of Pidgin.\r\n\r\nWhen you upgrade your version of Pidgin, you must uninstall or upgrade this plugin as well.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_ENGLISH} "Please locate the directory where Pidgin is installed" LangString DIR_INNERTEXT ${LANG_ENGLISH} "Install in this Pidgin folder:" LangString FINISH_TITLE ${LANG_ENGLISH} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} Install Complete" LangString FINISH_TEXT ${LANG_ENGLISH} "You will need to restart Pidgin for the plugin to be loaded, then go the Pidgin preferences and enable the Pidgin-Encryption Plugin." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_ENGLISH} "The encrypt.dll plugin is about to be deleted from your Pidgin/plugins directory. Continue?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_ENGLISH} "Pidgin-Encryption Plugin (remove only)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_ENGLISH} "The uninstaller could not find registry entries for Pidgin-Encryption.$\rIt is likely that another user installed the plugin." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_ENGLISH} "You do not have the permissions necessary to uninstall the plugin." pidgin-encryption-3.1/nsis/translations/bulgarian.nsh0000644000175100017510000000512111365171052020115 00000000000000;; ;; bulgarian.nsh ;; ;; Bulgarian language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1251 ;; Author: Lachezar Dobrev ;; Version 1, Sep 2007 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_BULGARIAN} "Ïðèñòàâêàòà Pidgin-Encryption èçèñêâà äà èìàòå èíñòàëèðàí Pidgin. Òðÿáâà äà èíñòàëèðàòå Pidgin ïðåäè Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_BULGARIAN} "Pidgin-Encryption ïðèñòàâêà çà Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_BULGARIAN} "Íåñúâìåñòèìà âåðñèÿ.$\r$\n$\r$\nÒàçè âåðñèÿ íà ïðèñòàâêàòà Pidgin-Encryption å ñúçäàäåíà çà âåðñèÿ íà Pidgin ${PIDGIN_VERSION}. Èçãëåæäà èìàòå èíñòàëèðàí Pidgin âåðñèÿ" LangString BAD_PIDGIN_VERSION_2 ${LANG_BULGARIAN} ".$\r$\n$\r$\nÎòâîðåòå http://pidgin-encrypt.sourceforge.net/ çà äîïúëíèòåëíà èíôîðìàöèÿ." LangString UNKNOWN_PIDGIN_VERSION ${LANG_BULGARIAN} "Èíñòàëàòîðúò íå óñïÿ äà îòêðèå âåðñèÿòà íà èíñòàëèðàíèÿ Pidgin. Ìîëÿ óâåðåòå ñå, ÷å èìàòå èíñòàëèðàí Pidgin âåðñèÿ ${PIDGIN_VERSION}." ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_BULGARIAN} "Èíñòàëèðàíå íà Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION}" LangString WELCOME_TEXT ${LANG_BULGARIAN} "Çàáåëåæêà: Òàçè âåðñèÿ íà ïðèñòàâêàòà å ïëàíèðàíà çà Pidgin âåðñèÿ ${PIDGIN_VERSION} è íÿìà äà ñå èíñòàëèðà èëè ôóíêöèîíèðà ñ äðóãè âåðñèè íà Pidgin.\r\n\r\nÏðè îáíîâÿâàíå íà Pidgin, ñå íàëàãà äà ïðåìàõíåòå èëè îáíîâèòå è ïðèñòàâêàòà.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_BULGARIAN} "Ìîëÿ óêàæåòå ïàïêàòà, êúäåòî ñå íàìèðà Pidgin" LangString DIR_INNERTEXT ${LANG_BULGARIAN} "Èíñòàëèðàíå â Pidgin ïàïêàòà:" LangString FINISH_TITLE ${LANG_BULGARIAN} "Èíñòàëàöèÿòà íà Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} ïðèêëþ÷è" LangString FINISH_TEXT ${LANG_BULGARIAN} "Íàëàãà ñå äà ðåñòàðòèðàòå Pidgin çà äà ñå çàðåäè ïðèñòàâêàòà, ñëåä òîâà îòâîðåòå ñïèñúêà ñ ïðèñòàâêè íà Pidgin è âêëþ÷åòå ïðèñòàâêàòà Pidgin-Encryption." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_BULGARIAN} "Ïðèñòàâêàòà Pidgin-Encryption (encrypt.dll) ùå áúäå èçòðèòà îò Pidgin/plugins ïàïêàòà. Ñèãóðíè ëè ñòå?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_BULGARIAN} "Pidgin-Encryption Ïðèñòàâêà çà Pidgin (ñàìî ïðåìàõâàíå)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_BULGARIAN} "Äå-Èíñòàëàòîðà íå óñïÿ äà îòêðèå ðåãèñòúðà çà èíñòàëèðàíå íà Pidgin-Encryption.$\rÂåðîÿòíî èíñòàëàöèÿòà å áèëà ïðîâåäåíà îò äðóã ïîòðåáèòåë." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_BULGARIAN} "Íÿìàòå ïðàâà, äîñòàòú÷íè çà ïðåìàõâàíå íà ïðèñòàâêàòà." pidgin-encryption-3.1/nsis/translations/german.nsh0000755000175100017510000000523111365214651017432 00000000000000;; ;; german.nsh ;; ;; German language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1252 ;; Author: Björn Voigt ;; Karim Malhas ;; Version 1, sept 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_GERMAN} "Pidgin-Encryption benötigt eine installierte Pidgin-Version. Sie müssen Pidgin installieren bevor sie Pidgin-Encryption installieren." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_GERMAN} "Pidgin-Encryption Plugin für Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_GERMAN} "Inkompatible Version.$\r$\n$\r$\nDiese Pidgin-Encryption Plugin-Version wurde für Pidgin Version ${PIDGIN_VERSION} erstellt. Sie scheinen Pidgin Version" LangString BAD_PIDGIN_VERSION_2 ${LANG_GERMAN} "installiert zu haben.$\r$\n$\r$\nBesuchen sie http://pidgin-encrypt.sourceforge.net für weitere Informationen." LangString UNKNOWN_PIDGIN_VERSION ${LANG_GERMAN} "Ich kann nicht feststellen, welche Pidgin-Version installiert ist. Vergewissern sie sich das es Version ${PIDGIN_VERSION} ist." ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_GERMAN} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} Installationsprogramm" LangString WELCOME_TEXT ${LANG_GERMAN} "Anmerkung: Diese Version des Plugins wurde für Pidgin Version ${PIDGIN_VERSION} erstellt, und wird mit anderen Versionen von Pidgin weder installierbar sein noch funktionieren.\r\n\r\nWenn sie Pidgin upgraden, müssen sie dieses Plugin entweder deinstallieren oder auch upgraden.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_GERMAN} "Bitte wählen sie das Verzeichnis aus in dem Pidgin installiert ist" LangString DIR_INNERTEXT ${LANG_GERMAN} "Pidgin in diesem Ordner installieren:" LangString FINISH_TITLE ${LANG_GERMAN} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} Installation abgeschlossen" LangString FINISH_TEXT ${LANG_GERMAN} "Sie müssen Pidgin neu starten damit das Plugin geladen wird. Dann können sie das Plugin in den Pidgin-Einstellungen aktivieren." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_GERMAN} "Das encrypt.dll Plugin wird jetzt aus ihrem Pidgin/Plugin Verzeichnis gelöscht. Fortfahren?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_GERMAN} "Pidgin-Encryption Plugin (nur entfernen)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_GERMAN} "Das Deinstallationsprogram konnte keine Registry Einträge für Pidgin-Encryption finden.$\rWarscheinlich hat ein anderer Benutzer das Plugin installiert." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_GERMAN} "Sie haben nicht die nötigen Rechte um das Plugin zu deinstallieren." pidgin-encryption-3.1/nsis/translations/romanian.nsh0000644000175100017510000000500211365214657017764 00000000000000;; ;; romanian.nsh ;; ;; English language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1250 ;; Author: Miºu Moldovan ;; Version 1, Nov 2003 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_ROMANIAN} "Modulul de criptare Pidgin necesitã programul Pidgin. Instalaþi Pidgin înainte sã instalaþi criptarea Pidgin." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_ROMANIAN} "Modul de criptare a discuþiilor Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_ROMANIAN} "Versiune incompatibilã.$\r$\n$\r$\nAceastã versiune a modulului de criptare Pidgin a fost compilatã pentru Pidgin versiunea ${PIDGIN_VERSION}. Se pare cã aveþi Pidgin versiunea" LangString BAD_PIDGIN_VERSION_2 ${LANG_ROMANIAN} "instalatã.$\r$\n$\r$\nVizitaþi http://pidgin-encrypt.sourceforge.net pentru detalii." LangString UNKNOWN_PIDGIN_VERSION ${LANG_ROMANIAN} "Nu se poate detecta versiunea Pidgin instalatã. Asiguraþi-vã cã este versiunea ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_ROMANIAN} "Instalare Criptare Pidgin v${PIDGIN-ENCRYPTION_VERSION}" LangString WELCOME_TEXT ${LANG_ROMANIAN} "Notã: Aceastã versiune a modulului de criptare Pidgin este compilatã pentru Pidgin ${PIDGIN_VERSION} ºi nu va funcþiona corect cu alte versiuni Pidgin.\r\n\r\nCând veþi instala o altã versiune Pidgin va trebui sã dezinstalaþi ori sã actualizaþi acest modul.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_ROMANIAN} "Localizaþi directorul în care e instalat Pidgin" LangString DIR_INNERTEXT ${LANG_ROMANIAN} "Instalare în directorul Pidgin:" LangString FINISH_TITLE ${LANG_ROMANIAN} "Instalarea modulului de criptare Pidgin v${PIDGIN-ENCRYPTION_VERSION} s-a terminat" LangString FINISH_TEXT ${LANG_ROMANIAN} "Pentru încãrcarea modulului nou instalat va trebui sã reporniþi Pidgin ºi sã activaþi modulul „Criptare Pidgin” în preferinþele Pidgin." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_ROMANIAN} "Fiºierul encrypt.dlleste pe cale sã fie ºters din directorul cu module Pidgin. Continuaþi?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_ROMANIAN} "Modul de criptare Pidgin (doar dezinstalare)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_ROMANIAN} "Nu s-au gãsit în regiºtri intrãri specifice modulului de criptare Pidgin.$\rProbabil un alt utilizator a instalat acest modul." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_ROMANIAN} "Nu aveþi drepturile necesare pentru a dezinstala acest modul." pidgin-encryption-3.1/nsis/translations/russian.nsh0000644000175100017510000000465711365214664017661 00000000000000;; ;; russian.nsh ;; ;; Russian language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1251 ;; Author: Roman Sosenko ;; Version 1, Dec 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_RUSSIAN} "Ïåðåä óñòàíîâêîé Pidgin encryption íåîáõîäèìî óñòàíîâèòü Pidgin. Óñòàíîâèòå Pidgin." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_RUSSIAN} "Ìîäóëü Pidgin-Encryption äëÿ Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_RUSSIAN} "Íåñîâìåñòèìàÿ âåðñèÿ.$\r$\n$\r$\nÝòà âåðñèÿ ìîäóëÿ Pidgin-Encryption áûëà ñîçäàíà äëÿ âåðñèè Pidgin ${PIDGIN_VERSION}. Íà Âàøåì êîìïüþòåðå óñòàíîâëåíà âåðñèÿ Pidgin" LangString BAD_PIDGIN_VERSION_2 ${LANG_RUSSIAN} "óñòàíîâëåíî.$\r$\n$\r$\nÑìîòðèòå http://pidgin-encrypt.sourceforge.net äëÿ áîëåå ïîäðîáíîé èíôîðìàöèè." LangString UNKNOWN_PIDGIN_VERSION ${LANG_RUSSIAN} "Íàì íåèçâåñòíî, êàêàÿ âåðñèÿ Pidgin óñòàíîâëåíà íà Âàøåì êîìïüþòåðå. Óáåäèòåñü, ÷òî ýòî âåðñèÿ ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_RUSSIAN} "Èíñòàëëÿòîð Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} " LangString WELCOME_TEXT ${LANG_RUSSIAN} "Âíèìàíèå: Íàñòîÿùàÿ âåðñèÿ ìîäóëÿ ñîçäàíà äëÿ Pidgin ${PIDGIN_VERSION}, è íå ìîæåò áûòü óñòàíîâëåíà è ôóíêöèîíèðîâàòü ñ äðóãèìè âåðñèÿìè Pidgin.\r\n\r\n ñëó÷àå îáíîâëåíèÿ âåðñèè Pidgin Âàì íåîáõîäèìî äåçèíñòàëëèðîâàòü èëè îáíîâèòü òàêæå è ìîäóëü.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_RUSSIAN} "Ïîæàëóéñòà, íàéäèòå êàòàëîã, â êîòîðîì óñòàíîâëåí Pidgin" LangString DIR_INNERTEXT ${LANG_RUSSIAN} "Óñòàíîâèòü â ýòó ïàïêó Pidgin:" LangString FINISH_TITLE ${LANG_RUSSIAN} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} Óñòàíîâêà çàâåðøåíà" LangString FINISH_TEXT ${LANG_RUSSIAN} "Äëÿ çàãðóçêè ìîäóëÿ Âàì áóäåò íåîáõîäèìî çàïóñòèòü Pidgin çàíîâî, çàòåì â îïöèÿõ Pidgin àêòèâèðîâàòü ìîäóëü Pidgin-Encryption." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_RUSSIAN} "Ìîäóëü encrypt.dll áóäåò óäàë¸í ñ Âàøåãî êàòàëîãà Pidgin/ìîäóëü. Ïðîäîëæèòü?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_RUSSIAN} "Ìîäóëü Pidgin-Encryption (òîëüêî óäàëåíèå)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_RUSSIAN} "Äåèíñòàëëÿòîð íå ìîæåò íàéòè ýëåìåíòû ðååñòðà Pidgin-Encryption.$\rÂåðîÿòíî, ìîäóëü áûë óñòàíîâëåí äðóãèì ïîëüçîâàòåëåì." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_RUSSIAN} "Ó Âàñ íåò ïðàâ äëÿ äåèíñòàëëÿöèè ìîäóëÿ." pidgin-encryption-3.1/nsis/translations/trad-chinese.nsh0000644000175100017510000000410211365214673020524 00000000000000;; ;; trad-chinese.nsh ;; ;; Traditional Chinese language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 950 ;; Author: Tim Hsu ;; Version 1, Dec 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_TRADCHINESE} "Pidgin-Encryption »Ý­n Pidgin. ½Ð¦b¦w¸Ë Pidgin-Encryption «e¥ý¦w¸Ë Pidgin." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_TRADCHINESE} "Pidgin-Encryption ¥[±K¼Ò²Õ" LangString BAD_PIDGIN_VERSION_1 ${LANG_TRADCHINESE} "¤£¬Û®eªºª©¥».$\r$\n$\r$\n¦¹ª©¥»ªº Pidgin-Encryption ¼Ò²Õ©M Pidgin ª©¥» ${PIDGIN_VERSION} µLªk¬Û®e." LangString BAD_PIDGIN_VERSION_2 ${LANG_TRADCHINESE} "¤w¦w¸Ë.$\r$\n$\r$\n·Q¤F¸Ñ§ó¦hªº¸ê°T½Ð³s¦Ü http://pidgin-encrypt.sourceforge.net" LangString UNKNOWN_PIDGIN_VERSION ${LANG_TRADCHINESE} "µLªk¤À¿ë Pidgin ªºª©¥». ½Ð½T©w Pidgin ª©¥»¬° ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_TRADCHINESE} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} ¦w¸Ëµ{¦¡" LangString WELCOME_TEXT ${LANG_TRADCHINESE} "ª`·N: ¦¹ª©¼Ò²Õ¬O°w¹ï Pidgin ${PIDGIN_VERSION} ©Ò³]­p, ¨ä¥¦ª©¥»ªº Pidgin ±NµLªk¥¿±`¨Ï¥Î.\r\n\r\n·í§A­n¤É¯Å·sªº Pidgin ®É, §A¥²¶·¥ý²¾°£©Î¤§«á¦A­«·s¤É¯Å¦¹¼Ò²Õ\r\n\r\n" LangString DIR_SUBTITLE ${LANG_TRADCHINESE} "½Ð«ü¥X Pidgin ©Ò¦w¸Ëªº¥Ø¿ý¸ô®|" LangString DIR_INNERTEXT ${LANG_TRADCHINESE} "¦w¸Ë¦Ü¦¹ Pidgin ¥Ø¿ý:" LangString FINISH_TITLE ${LANG_TRADCHINESE} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} ¦w¸Ë§¹¦¨" LangString FINISH_TEXT ${LANG_TRADCHINESE} "½Ð­«·s±Ò°Ê Pidgin ¥H¸ü¤J¥»¼Ò²Õ, °O±o¦b°¾¦n³]©w¸Ì±Ò°Ê Pidgin-Encryption ¼Ò²Õ." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_TRADCHINESE} "¦¹°Ê§@±N±q Pidgin/plugins ¥Ø¿ý¸Ì²¾°£ encrypt.dll ¼Ò²Õ. ¬O§_½T©w­nÄ~Äò?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_TRADCHINESE} "Pidgin-Encryption ¼Ò²Õ (²¾°£)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_TRADCHINESE} "²¾°£µ{¦¡§ä¤£¨ì Pidgin-Encryption.$\r¤]³\¬O¨ä¥¦¨Ï¥ÎªÌ¦w¸Ë¤F¦¹¼Ò²Õ." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_TRADCHINESE} "Åv­­¤£¨¬, µLªk²¾°£¦¹¼Ò²Õ" pidgin-encryption-3.1/nsis/translations/portuguese.nsh0000644000175100017510000000506011365171052020355 00000000000000;; ;; portuguese.nsh ;; ;; Portuguese language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1252 ;; Author: Pedro Pinto ;; Version 21, aug 2007 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_PORTUGUESE} "O Pidgin-Encryption requer que o Pidgin esteja instalado. Deve instalar o Pidgin antes de instalar o Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_PORTUGUESE} "Plugin Pidgin-Encryption para o Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_PORTUGUESE} "Versão incompatível.$\r$\n$\r$\nEsta versão do plugin do Pidgin-Encryption foi gerada para o Pidgin versão ${PIDGIN_VERSION}. Aparentemente, tem o Pidgin versão" LangString BAD_PIDGIN_VERSION_2 ${LANG_PORTUGUESE} "instalado.$\r$\n$\r$\nVá a http://pidgin-encrypt.sourceforge.net para mais informações." LangString UNKNOWN_PIDGIN_VERSION ${LANG_PORTUGUESE} "Não foi possível determinar a versão do Pidgin que está instalada. Verifique se é a versão ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_PORTUGUESE} "Instalador do Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION}" LangString WELCOME_TEXT ${LANG_PORTUGUESE} "Nota: Esta versão do plugin foi feita para o Pidgin ${PIDGIN_VERSION}, e não irá instalar ou funcionar com outras versões do Pidgin.\r\n\r\nQuando actualizar a sua versão do Pidgin, deve desinstalar ou actualizar também este plugin.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_PORTUGUESE} "Por favor, indique o directório onde o Pidgin está instalado" LangString DIR_INNERTEXT ${LANG_PORTUGUESE} "Instalar nesta pasta do Pidgin:" LangString FINISH_TITLE ${LANG_PORTUGUESE} "Instalação do Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} Completa" LangString FINISH_TEXT ${LANG_PORTUGUESE} "É necessário reiniciar o Pidgin para que o plugin seja carregado, depois vá às preferências do Pidgin e active o plugin do Pidgin-Encryption." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_PORTUGUESE} "O plugin encrypt.dll vai ser apagado do seu directório Pidgin/plugins. Continuar?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_PORTUGUESE} "Pidgin-Encryption Plugin (apenas remover)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_PORTUGUESE} "O desinstalador não conseguiu encontrar as entradas de registo para o Pidgin-Encryption.$\rÉ possível que outro utilizador tenha instalado o plugin." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_PORTUGUESE} "Não tem as permissões necessárias para desinstalar o plugin." pidgin-encryption-3.1/nsis/translations/italian.nsh0000644000175100017510000000510411365214701017572 00000000000000;; ;; italian.nsh ;; ;; Italian language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1252 ;; Author: Giacomo Succi ;; Version 1, Sep 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_ITALIAN} "Pidgin-Encryption richiede che Pidgin sia installato. Dovete installare Pidgin prima di installare Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_ITALIAN} "Pidgin-Encryption, plugin per Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_ITALIAN} "Versione incompatibile.$\r$\n$\r$\nLa presente versione di Pidgin-Encryption e' stata compilata per la versione di Pidgin ${PIDGIN_VERSION}. Sembra che avete una versione di Pidgin incompatibile" LangString BAD_PIDGIN_VERSION_2 ${LANG_ITALIAN} "installata.$\r$\n$\r$\nVisitate http://pidgin-encrypt.sourceforge.net per maggiori informazioni." LangString UNKNOWN_PIDGIN_VERSION ${LANG_ITALIAN} "Non posso determinare quale versione di Pidgin sia installata. Siate certi che la versione sia la ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_ITALIAN} "Installatore di Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION}" LangString WELCOME_TEXT ${LANG_ITALIAN} "Nota: Questo plugin e' stato pensato per Pidgin ${PIDGIN_VERSION}, e non si installera' o funzionera' con altre versioni di Pidgin.\r\n\r\nQuando aggiornerete la vostra versione di Pidgin, dovete rimuovere o aggiornare questo plugin di conseguenza.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_ITALIAN} "Perfavore indicate la cartella dove Pidgin e' installato" LangString DIR_INNERTEXT ${LANG_ITALIAN} "Installa in questa cartella di Pidgin:" LangString FINISH_TITLE ${LANG_ITALIAN} "Installazione completata di Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION}" LangString FINISH_TEXT ${LANG_ITALIAN} "Dovete chiudere e riavviare Pidgin per far caricare il plugin, dopo di che andate nelle preferenze di Pidgin e abilitate Pidgin-Encryption Plugin." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_ITALIAN} "Il plugin encrypt.dll sta per essere rimosso dalla cartella Pidgin/plugins. Continuare?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_ITALIAN} "Pidgin-Encryption Plugin (soltanto rimozione)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_ITALIAN} "L'uninstallatore non puo' trovare le entry nel registro per Pidgin-Encryption.$\rE' probabile che un'altro utente abbia installato il plugin." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_ITALIAN} "Non avete i diritti necessari per rimuovere il plugin." pidgin-encryption-3.1/nsis/translations/hungarian.nsh0000644000175100017510000000474711365214710020141 00000000000000;; ;; hungarian.nsh ;; ;; Hungarian language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1250 ;; Author: Peter Tutervai ;; Version 1, nov 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_HUNGARIAN} "A Pidgin-Encryption telepítéséhez szükség van a Pidginra. Fel kell telepítened a Pidgin-ot a Pidgin-Encryption telepítése elõtt." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_HUNGARIAN} "Pidgin-Encryption plugin a Pidginhoz" LangString BAD_PIDGIN_VERSION_1 ${LANG_HUNGARIAN} "Nem kompatibilis verzió.$\r$\n$\r$\nA Pidgin-Encryption plugin ezen verziója a Pidgin ${PIDGIN_VERSION} verziójához lett lefordítva. Neked a " LangString BAD_PIDGIN_VERSION_2 ${LANG_HUNGARIAN} "verziójú Pidgin van feltelepítve.$\r$\n$\r$\nNézd meg a http://pidgin-encrypt.sourceforge.net webhelyet további információkért." LangString UNKNOWN_PIDGIN_VERSION ${LANG_HUNGARIAN} "A feltelepített Pidgin verziója ismeretlen. Bizonyosodjon meg róla, hogy a verziója ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_HUNGARIAN} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} Telepítõ" LangString WELCOME_TEXT ${LANG_HUNGARIAN} "Fontos: A plugin ezen verziója a Pidgin ${PIDGIN_VERSION} verziójához lett lefordítva, és nem lesz telepítve vagy nem fog futni a Pidgin más verzióival.\r\n\r\nHa frissíti a Pidginot, törölje vagy frissítse a plugint is.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_HUNGARIAN} "Kérlek, add meg a Pidgin helyét" LangString DIR_INNERTEXT ${LANG_HUNGARIAN} "Telepítés ebbe a Pidgin könyvtárba:" LangString FINISH_TITLE ${LANG_HUNGARIAN} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} Telepítése befejezõdött" LangString FINISH_TEXT ${LANG_HUNGARIAN} "Újra kell indítanod a Pidginot, hogy betöltsön a plugin, majd a Pidgin beállításokban be kell kapcsolnod Pidgin-Encryption Plugint." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_HUNGARIAN} "Az encrypt.dll plugin törölve lesz a Pidgin/plugins könyvtárból. Folytassam?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_HUNGARIAN} "Pidgin-Encryption Plugin (csak törölhetõ)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_HUNGARIAN} "Az uninstaller nem talált bejegyzéseket a registryben a Pidgin-Encryptionhöz.$\rValószínüleg másik felhasználó telepítette a Pidgin-Encryptiont." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_HUNGARIAN} "Nincs jogod a Pidgin-Encryption törléséhez." pidgin-encryption-3.1/nsis/translations/portugueseBR.nsh0000644000175100017510000000512111365214723020602 00000000000000;; ;; portugueseBR.nsh ;; ;; Portuguese language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1252 ;; Author: Aury Fink Filho ;; Version 1, oct 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_PORTUGUESEBR} "Pidgin-Encryption requer que o Pidgin esteja instalado. Você deve instalar o Pidgin antes de instalar o Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_PORTUGUESEBR} "Pidgin-Encryption plugin para Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_PORTUGUESEBR} "Versão incompatível.$\r$\n$\r$\nEsta versão do plugin do Pidgin-Encryption foi gerada para o Pidgin versão ${PIDGIN_VERSION}. Aparentemente, você tem o Pidgin versão" LangString BAD_PIDGIN_VERSION_2 ${LANG_PORTUGUESEBR} "instalado.$\r$\n$\r$\nVeja http://pidgin-encrypt.sourceforge.net para mais informações." LangString UNKNOWN_PIDGIN_VERSION ${LANG_PORTUGUESEBR} "Eu não posso dizer qual versão do Pidgin está instalada. Verifique se é a versão ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_PORTUGUESEBR} "Instalador do Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION}" LangString WELCOME_TEXT ${LANG_PORTUGUESEBR} "Nota: Essa versão do plugin foi feita para o Pidgin ${PIDGIN_VERSION}, e não irá instalar ou funcionar com outras versões do Pidgin.\r\n\r\nQuando você atualizar sua versão do Pidgin, você deve desinstalar ou atualizar esse plugin também.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_PORTUGUESEBR} "Por favor, localize o diretório aonde o Pidgin está instalado" LangString DIR_INNERTEXT ${LANG_PORTUGUESEBR} "Instale nessa pasta do Pidgin:" LangString FINISH_TITLE ${LANG_PORTUGUESEBR} "Instalação do Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} Finalizada" LangString FINISH_TEXT ${LANG_PORTUGUESEBR} "Você necessita reiniciar o Pidgin para o plugin ser carregado, então vá para as preferências do Pidgin e habilite o plugin do Pidgin-Encryption." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_PORTUGUESEBR} "O plugin encrypt.dll está para ser deletado de seu diretório Pidgin/plugins. Continuar?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_PORTUGUESEBR} "Pidgin-Encryption Plugin (apenas remover)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_PORTUGUESEBR} "O desintalador não pode encontrar as entradas no registro para o Pidgin-Encryption.$\rAparentemente, outro usuário instalou o plugin." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_PORTUGUESEBR} "Você não tem as permissões necessárias para desinstalar o plugin." pidgin-encryption-3.1/nsis/translations/lithuanian.nsh0000644000175100017510000000466411365214730020321 00000000000000;; ;; lithuanian.nsh ;; ;; Lithuanian language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1257 ;; Author: Andrius Ðtikonas ;; Version 1, Feb 2006 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_LITHUANIAN} "Pidgin-Encryption reikia ádiegto Pidgin. Jûs privalote ádiegti Pidgin prieð instaliuodami Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_LITHUANIAN} "Pidgin-Encryption áskiepis Pidgin programai" LangString BAD_PIDGIN_VERSION_1 ${LANG_LITHUANIAN} "Nesuderinama versija.$\r$\n$\r$\nÐi Pidgin-Encryption áskiepio versija buvo sukurta Pidgin versijai ${PIDGIN_VERSION}. Atrodo, kad jûs turite instaliuotà Pidgin" LangString BAD_PIDGIN_VERSION_2 ${LANG_LITHUANIAN} "versijà.$\r$\n$\r$\nPlaèiau þiûrëti http://pidgin-encrypt.sourceforge.net." LangString UNKNOWN_PIDGIN_VERSION ${LANG_LITHUANIAN} "Að negaliu pasakyti, kuri Pidgin versija ádiegta. Ásitikinkite, kad tai {PIDGIN_VERSION} versija" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_LITHUANIAN} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} diegimo programa" LangString WELCOME_TEXT ${LANG_LITHUANIAN} "Pastaba: ði áskiepio versija sukurta Pidgin ${PIDGIN_VERSION}, ir negali bûti instaliuota ar funkcionuoti su kitomis Pidgin versijomis.\r\n\r\nKai atnaujinate Pidgin, taip pat turite iðinstaliuoti arba atnaujinti ðá áskiepá.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_LITHUANIAN} "Nurodykite katalogà, kuriame ádiegtas Pidgin" LangString DIR_INNERTEXT ${LANG_LITHUANIAN} "Ádiegti á ðá Pidgin katalogà:" LangString FINISH_TITLE ${LANG_LITHUANIAN} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} diegimas baigtas" LangString FINISH_TEXT ${LANG_LITHUANIAN} "Jûs turite perkrauti Pidgin tam, kad áskiepis bûtø pakrautas, tada eikite á pidgin nustatymus ir ágalinkite Pidgin-Encryption áskiepá." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_LITHUANIAN} "encrypt.dll áskiepis bus iðtrintas ið Pidgin/plugins katalogo. Tæsti?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_LITHUANIAN} "Pidgin-Encryption áskiepis (tik paðalinti)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_LITHUANIAN} "Ðalinimo vedlys negali rasti Pidgin-Encryption registro áraðø .$\rMatyt kitas vartotojas áskiepá jau iðtrynë." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_LITHUANIAN} "Jûs neturite teisiø, bûtinø áskiepio paðalinimui." pidgin-encryption-3.1/nsis/translations/japanese.nsh0000755000175100017510000000533311365214747017760 00000000000000;; ;; japanese.nsh ;; ;; Default language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 932 ;; ;; Author: Takeshi AIHANA ;; Version 1, sept 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_JAPANESE} "Pidgin-Encryption ‚ð—˜—p‚·‚é‚É‚Í Pidgin ‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚é•K—v‚ª‚ ‚è‚Ü‚·BPidgin-Encryption ‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚é‘O‚É Pidgin ‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚ĉº‚³‚¢B" LangString PIDGIN-ENCRYPTION_TITLE ${LANG_JAPANESE} "Pidgin Œü‚¯‚Ì Pidgin-Encryption ƒvƒ‰ƒOƒCƒ“" LangString BAD_PIDGIN_VERSION_1 ${LANG_JAPANESE} "ƒo[ƒWƒ‡ƒ“‚ª‡‚Á‚Ä‚¢‚Ü‚¹‚ñB$\r$\n$\r$\n‚±‚̃o[ƒWƒ‡ƒ“‚Ì Pidgin-Encryption ƒvƒ‰ƒOƒCƒ“‚Í Pidgin ƒo[ƒWƒ‡ƒ“ ${PIDGIN_VERSION} Œü‚¯‚ÉŠJ”­‚³‚ꂽ‚à‚̂ł·BŽŸ‚Ì Pidgin ƒo[ƒWƒ‡ƒ“‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ä‚¢‚邯•\ަ‚³‚ê‚Ü‚·:" LangString BAD_PIDGIN_VERSION_2 ${LANG_JAPANESE} "$\r$\n$\r$\n‚³‚ç‚ÉÚׂÈî•ñ‚Èî•ñ‚ɂ‚¢‚Ä‚Í http://pidgin-encrypt.sourceforge.net ‚ð‚²——‰º‚³‚¢B" LangString UNKNOWN_PIDGIN_VERSION ${LANG_JAPANESE} "ƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚é Pidgin ‚̃o[ƒWƒ‡ƒ“‚ðŽæ“¾‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½Bƒo[ƒWƒ‡ƒ“ ${PIDGIN_VERSION} ‚Å‚ ‚邱‚Æ‚ðŠm”F‚µ‚ĉº‚³‚¢B" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_JAPANESE} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} ƒCƒ“ƒXƒg[ƒ‰" LangString WELCOME_TEXT ${LANG_JAPANESE} "’ˆÓ: ‚±‚̃o[ƒWƒ‡ƒ“‚̃vƒ‰ƒOƒCƒ“‚ÍAPidgin ƒo[ƒWƒ‡ƒ“ ${PIDGIN_VERSION} Œü‚¯‚ÉÝŒv‚³‚ꂽ‚à‚Ì‚ÅA‚»‚êˆÈŠO‚̃o[ƒWƒ‡ƒ“‚ł̓Cƒ“ƒXƒg[ƒ‹A‚Ü‚½‚Í“®ì‚µ‚È‚¢‚©‚à‚µ‚ê‚Ü‚¹‚ñB\r\n\r\n‚¨Žg‚¢‚Ì Pidgin ‚ðƒAƒbƒvƒOƒŒ[ƒh‚·‚éÛ‚Í“¯—l‚ÉA‚±‚̃vƒ‰ƒOƒCƒ“‚àƒAƒ“ƒCƒ“ƒXƒg[ƒ‹A‚Ü‚½‚̓AƒbƒvƒOƒŒ[ƒh‚µ‚ĉº‚³‚¢B\r\n\r\n" LangString DIR_SUBTITLE ${LANG_JAPANESE} "Pidgin ‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚éƒtƒHƒ‹ƒ_‚ðŽw’肵‚ĉº‚³‚¢" LangString DIR_INNERTEXT ${LANG_JAPANESE} "‚±‚Ì Pidgin ƒtƒHƒ‹ƒ_‚Ì’†‚ɃCƒ“ƒXƒg[ƒ‹‚·‚é:" LangString FINISH_TITLE ${LANG_JAPANESE} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} ‚̃Cƒ“ƒXƒg[ƒ‹‚ªŠ®—¹‚µ‚Ü‚µ‚½" LangString FINISH_TEXT ${LANG_JAPANESE} "ƒvƒ‰ƒOƒCƒ“‚ð“ǂݞ‚Þ‚½‚ß‚É Pidgin ‚ðÄ‹N“®‚µAPidgin ‚ÌÝ’èƒ_ƒCƒAƒƒO‚©‚ç Pidgin-Encryption ƒvƒ‰ƒOƒCƒ“‚ð—LŒø‚É‚µ‚ĉº‚³‚¢B" ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_JAPANESE} "‚¨Žg‚¢‚Ì Pidgin/ƒvƒ‰ƒOƒCƒ“EƒtƒHƒ‹ƒ_‚©‚çƒtƒ@ƒCƒ‹ encrypt.dll ‚ð휂µ‚Ü‚·B‘±s‚µ‚Ä‚à‚æ‚낵‚¢‚Å‚·‚©?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_JAPANESE} "Pidgin-Encryption ƒvƒ‰ƒOƒCƒ“ (íœê—p)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_JAPANESE} "ƒAƒ“ƒCƒ“ƒXƒg[ƒ‰‚Í Pidgin-Encryption ‚ɑ΂·‚郌ƒWƒXƒgƒŠ‚̃Gƒ“ƒgƒŠ‚ðŒ©‚Â‚¯‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B$\r‚¨‚»‚ç‚­’N‚©‘¼‚̃†[ƒU‚ªƒvƒ‰ƒOƒCƒ“‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚½‚ÆŽv‚í‚ê‚Ü‚·B" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_JAPANESE} "‚±‚̃vƒ‰ƒOƒCƒ“‚ðƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚·‚é‚̂ɕK—v‚ÈŒ ŒÀ‚ª‚ ‚è‚Ü‚¹‚ñB" pidgin-encryption-3.1/nsis/translations/slovenian.nsh0000644000175100017510000000470111365214757020164 00000000000000;; ;; slovenian.nsh ;; ;; Slovenian language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1250 ;; Author: Martin Srebotnjak ;; Version 2, Dec 2005 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_SLOVENIAN} "Šifriranje Pidgin zahteva namešèeni Pidgin. Pred namestitvijo Šifriranja Pidgin morate namestiti Pidgin." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_SLOVENIAN} "Vstavek Šifriranje Pidgin za Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_SLOVENIAN} "Nekompatibilna razlièica.$\r$\n$\r$\nTa razlièica vstavka Šifriranja Pidgin je prirejena za Pidgin razlièice ${PIDGIN_VERSION}. Kot kaže, imate namešèeno Pidgin razlièice " LangString BAD_PIDGIN_VERSION_2 ${LANG_SLOVENIAN} ".$\r$\n$\r$\nZa veè informacij si poglejte stran http://pidgin-encrypt.sourceforge.net." LangString UNKNOWN_PIDGIN_VERSION ${LANG_SLOVENIAN} "Ni mogoèe ugotoviti, katera razlièica Pidgina je namešèena. Preprièajte se, da je to razlièica ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_SLOVENIAN} "Namestitev Šifriranja Pidgin v${PIDGIN-ENCRYPTION_VERSION}" LangString WELCOME_TEXT ${LANG_SLOVENIAN} "Opomba: Ta razlièica vstavka je prirejena za Pidgin ${PIDGIN_VERSION} in ne bo namešèena ali delovala z drugimi razlièicami Pidgina.\r\n\r\nKo nadgradite razlièico Pidgina, ga morate odstraniti ali prav tako nadgraditi ta vstavek.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_SLOVENIAN} "Prosimo, poišèite mapo, kjer je namešèen Pidgin" LangString DIR_INNERTEXT ${LANG_SLOVENIAN} "Namesti v to mapo Pidgin:" LangString FINISH_TITLE ${LANG_SLOVENIAN} "Namestitev Šifriranja Pidgin v${PIDGIN-ENCRYPTION_VERSION} dokonèana" LangString FINISH_TEXT ${LANG_SLOVENIAN} "Za nalaganje vstavka morate ponovno zagnati Pidgin ter v Možnostih Pidgina omogoèiti vstavek Šifriranje Pidgin." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_SLOVENIAN} "Datoteka encrypt.dll bo zbrisana iz mape Pidgin/plugins. Želite nadaljevati?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_SLOVENIAN} "Vstavek Šifriranje Pidgin (samo odstrani)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_SLOVENIAN} "Program za odstranitev programa v registru ne najde vnosov za Šifriranje Pidgin.$\rVerjetno je vstavek namestil drug uporabnik." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_SLOVENIAN} "Nimate potrebnih pravic za odstranitev vstavka." pidgin-encryption-3.1/nsis/translations/norwegian.nsh0000644000175100017510000000510311365214765020153 00000000000000;; ;; norwegian_nynorsk.nsh ;; ;; Norwegian (Nynorsk) language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1252 ;; Author: Y J Landro ;; Version 1, 2006-02 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_NORWEGIAN} "Pidgin-Encryption nyttar Pidgin. Installer Pidgin før du installerer Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_NORWEGIAN} "Pidgin-Encryption: programtillegg for Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_NORWEGIAN} "Ikkje-kompatibel versjon.$\r$\n$\r$\nDenne versjonen av programtillegget Pidgin-Encryption blei laga for Pidgin versjon ${PIDGIN_VERSION}. Det ser ut til at du har Pidgin versjon" LangString BAD_PIDGIN_VERSION_2 ${LANG_NORWEGIAN} "installert.$\r$\n$\r$\nSida http://pidgin-encrypt.sourceforge.net gjev deg meir informasjon." LangString UNKNOWN_PIDGIN_VERSION ${LANG_NORWEGIAN} "Eg kan ikkje sjå kva for versjon av Pidgin som er installert. Sjå til at det er versjon ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_NORWEGIAN} "Installasjonsprogram for Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION}" LangString WELCOME_TEXT ${LANG_NORWEGIAN} "Hugs: denne versjonen av programtillegget er laga for Pidgin ${PIDGIN_VERSION} og vil ikkje kunne installerast eller fungera med andre versjonar.\r\n\r\nNår du oppdaterer Pidgin-versjonen din, må du anten av-installera eller oppgradera dette programtillegget òg.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_NORWEGIAN} "Finn programkatalogen til Pidgin" LangString DIR_INNERTEXT ${LANG_NORWEGIAN} "Installer i denne Pidgin-mappa:" LangString FINISH_TITLE ${LANG_NORWEGIAN} "Installasjonen av Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} er ferdig." LangString FINISH_TEXT ${LANG_NORWEGIAN} "Du må starta om Pidgin for at programtillegget skal fungera. Deretter må du gå til innstillingane og aktivera Pidgin-Encryption." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_NORWEGIAN} "Programtillegget encrypt.dll vil bli sletta frå Pidgin sin programtilleggskatalog. Vil du fortsetja?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_NORWEGIAN} "Programtilleggget Pidgin-Encryption (berre fjerna)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_NORWEGIAN} "Avinstallasjonsprogrammet fann ingen registerpostar for Pidgin-Encryption.$\rEin annan brukar kan ha installert programtillegget." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_NORWEGIAN} "Du har ikkje dei nødvendige rettane til å avinstallera programtillegget." pidgin-encryption-3.1/nsis/translations/ukrainian.nsh0000644000175100017510000000470311365214772020146 00000000000000;; ;; ukrainian.nsh ;; ;; Ukrainian language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1251 ;; Author: Roman Sosenko ;; Version 1, Jan 2005 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_UKRAINIAN} "Ïåðåä âñòàíîâëåííÿì Pidgin encryption íåîáõ³äíî âñòàíîâèòè Pidgin. Âñòàíîâ³òü Pidgin." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_UKRAINIAN} "Ìîäóëü Pidgin-Encryption äëÿ Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_UKRAINIAN} "Íåñóì³ñíà âåðñ³ÿ.$\r$\n$\r$\nÖÿ âåðñ³ÿ ìîäóëÿ Pidgin-Encryption áóëà ñòâîðåíà äëÿ âåðñ³¿ Pidgin ${PIDGIN_VERSION}. Íà Âàøîìó êîìï'þòåð³ âñòàíîâëåíà âåðñ³ÿ Pidgin" LangString BAD_PIDGIN_VERSION_2 ${LANG_UKRAINIAN} "Âñòàíîâëåíî.$\r$\n$\r$\nÄèâ³òüñÿ http://pidgin-encrypt.sourceforge.net äëÿ á³ëüø äåòàëüíî¿ ³íôîðìàö³¿." LangString UNKNOWN_PIDGIN_VERSION ${LANG_UKRAINIAN} "Íàì íåâ³äîìî, ÿêà âåðñ³ÿ Pidgin âñòàíîâëåíà íà Âàøîìó êîìï'þòåð³. Ïåðåêîíàéòåñÿ, ùî öå âåðñ³ÿ ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_UKRAINIAN} "²íñòàëÿòîð Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} " LangString WELCOME_TEXT ${LANG_UKRAINIAN} "Óâàãà: Öÿ âåðñ³ÿ ìîäóëÿ ñòâîðåíà äëÿ Pidgin ${PIDGIN_VERSION}, ³ íå ìîæå áóòè âñòàíîâëåíîþ ³ ïðàöþâàòè ç ³íøèìè âåðñ³ÿìè Pidgin.\r\n\r\nÓ âèïàäêó îíîâëåííÿ âåðñ³¿ Pidgin Âàì íåîáõ³äíî äåç³íñòàëþâàòè ÷è îáíîâèòè òàêîæ ³ ìîäóëü.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_UKRAINIAN} "Áóäü ëàñêà, çíàéä³òü êàòàëîã, ó ÿêîìó âñòàíîâëåíî Pidgin" LangString DIR_INNERTEXT ${LANG_UKRAINIAN} "Âñòàíîâèòè ó öá ïàïêó Pidgin:" LangString FINISH_TITLE ${LANG_UKRAINIAN} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} Âñòàíîâëåííÿ çàâåðøåíî" LangString FINISH_TEXT ${LANG_UKRAINIAN} "Äëÿ çàâàíòàæåííÿ ìîäóëÿ Âàì áóäå íåîáõ³äíî çàïóñòèòè Pidgin ïîâòîðíî, ï³ñëÿ ÷îãî â îïö³ÿõ Pidgin àêòèâóâàòè ìîäóëü Pidgin-Encryption." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_UKRAINIAN} "Ìîäóëü encrypt.dll áóäå âèäàëåíèé ç Âàøîãî êàòàëîãà Pidgin/ìîäóëü. Ïðîäîâæèòè?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_UKRAINIAN} "Ìîäóëü Pidgin-Encryption (ëèøå âèäàëåííÿ)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_UKRAINIAN} "Äå³íñòàëÿòîð íå ìîæå çíàéòè åëåìåíòè ðåºñòðà Pidgin-Encryption.$\rÉìîâ³ðíî, ìîäóëü áóâ óñòàíîâëåíèé ³íøèì êîðèñòóâà÷åì." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_UKRAINIAN} "Ó Âàñ íåìຠïðàâ äëÿ äå³íñòàëÿö³¿ ìîäóëÿ." pidgin-encryption-3.1/nsis/translations/french.nsh0000755000175100017510000000530311365215001017414 00000000000000;; ;; french.nsh ;; ;; French language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1252 ;; Author: Davy Defaud ;; Version 1, sept 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_FRENCH} "Pidgin-Encryption est un greffon (plugin) pour Pidgin. Vous devez d'abord installer Pidgin avant d'installer Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_FRENCH} "Pidgin-Encryption, greffon de chiffrement pour Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_FRENCH} "Version incompatible.$\r$\n$\r$\nCette version du greffon Pidgin-Encryption a été compilée pour la version ${PIDGIN_VERSION} de Pidgin. Vous semblez posséder la version" LangString BAD_PIDGIN_VERSION_2 ${LANG_FRENCH} "de Pidgin.$\r$\n$\r$\nPour plus d'information, veuillez consulter le site internet http://pidgin-encrypt.sourceforge.net." LangString UNKNOWN_PIDGIN_VERSION ${LANG_FRENCH} "Impossible de détecter la version de Pidgin installée. Veuillez vous assurer qu'il s'agit de la version ${PIDGIN_VERSION}." ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_FRENCH} "Installateur de Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} " LangString WELCOME_TEXT ${LANG_FRENCH} "Note: Cette version de Pidgin-Encryption est conçue pour Pidgin ${PIDGIN_VERSION}, elle ne s'installera et ne fonctionnera pas avec d'autres versions de Pidgin.\r\n\r\nQuand vous mettez à jour votre version de Pidgin, vous devez désinstaller ou mettre également à jour Pidgin-Encryption.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_FRENCH} "Veuillez indiquer le répertoire d'installation de Pidgin." LangString DIR_INNERTEXT ${LANG_FRENCH} "Installer dans ce dossier Pidgin:" LangString FINISH_TITLE ${LANG_FRENCH} "Installation de Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} terminée." LangString FINISH_TEXT ${LANG_FRENCH} "Vous devez redémarrer Pidgin pour charger le greffon, ensuite vous rendre dans les préférences de Pidgin et activer le greffon (plugin) Pidgin-Encryption." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_FRENCH} "Le fichier encrypt.dll est sur le point d'être effacé de votre sous-répertoire Pidgin/plugins. Voulez-vous continuer?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_FRENCH} "Désinstallation de Pidgin-Encryption" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_FRENCH} "Le désinstallateur ne peut trouver les entrées de la base de registres concernant Pidgin-Encryption.$\rIl semble qu'un autre utilisateur a installé le greffon." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_FRENCH} "Vous ne possédez pas les privilèges nécessaires pour désinstaller Pidgin-Encryption." pidgin-encryption-3.1/nsis/translations/danish.nsh0000644000175100017510000000472311365215006017424 00000000000000;; ;; danish.nsh ;; ;; Danish language strings for the Windows Pidgin-Encryption NSIS installer. ;; Windows Code page: 1252 ;; Author: Morten Brix Pedersen ;; Version 1, sept 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_DANISH} "Pidgin-Encryption kræver at Pidgin er installeret. Du skal installere Pidgin før du installerer Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_DANISH} "Pidgin-Encryption (krypterings) modul til Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_DANISh} "Inkompatibel version.$\r$\n$\r$\nDenne version af Pidgin-Encryption var bygget til Pidgin version ${PIDGIN_VERSION}. Det ser ud til at du har Pidgin version" LangString BAD_PIDGIN_VERSION_2 ${LANG_DANISH} "installeret.$\r$\n$\r$\nSe http://pidgin-encrypt.sourceforge.net for flere oplysninger." LangString UNKNOWN_PIDGIN_VERSION ${LANG_DANISH} "Jeg kan ikke se hvilken Pidgin version der er installeret. Sørg for at det er version ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_DANISH} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} installationsprogram" LangString WELCOME_TEXT ${LANG_DANISH} "Bemærk: Denne version af modulet er lavet til Pidgin ${PIDGIN_VERSION}, og vil ikke installere eller virke med andre versioner af Pidgin.\r\n\r\nNår du opgraderer din version af Pidgin, skal du sørge for at fjerne eller opgradere dette modul også.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_DANISH} "Vis mappen hvor Pidgin er installeret" LangString DIR_INNERTEXT ${LANG_DANISH} "Installér i denne Pidgin mappe:" LangString FINISH_TITLE ${LANG_DANISH} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} installation færdig" LangString FINISH_TEXT ${LANG_DANISH} "Du skal genstarte Pidgin før modulet indlæses, derefter gå til indstillinger i Pidgin og slå Pidgin-Encryption modulet til." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_DANISH} "encrypt.dll modulet er ved at blive fjernet fra din Pidgin/plugins mappe. Fortsæt?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_DANISH} "Pidgin-Encryption modul (fjern kun)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_DANISH} "Af-installeringsprogrammet kunne ikke finde Pidgin-Encryption i registreringsdatabasen.$\rDet kan muligt at en anden bruger har installeret modulet." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_DANISH} "Du har ikke de nødvendige rettigheder til at installere modulet." pidgin-encryption-3.1/nsis/translations/simp-chinese.nsh0000644000175100017510000000445711365215015020546 00000000000000;; ;; simp-chinese.nsh ;; ;; Simplified Chinese language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 936 ;; Author: Strong Chen ;; Version 1, Aug 2007 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_SIMPCHINESE} "Pidgin-Encryption éœ€è¦ Pidgin 支æŒ. è¯·åœ¨å®‰è£ Pidgin-Encryption å‰, å…ˆå®‰è£ Pidgin." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_SIMPCHINESE} "Pidgin-Encryption 加密æ’ä»¶" LangString BAD_PIDGIN_VERSION_1 ${LANG_SIMPCHINESE} "ä¸å…¼å®¹çš„版本.$\r$\n$\r$\n此版本的 Pidgin-Encryption æ’件与 Pidgin 版本 ${PIDGIN_VERSION} 无法兼容." LangString BAD_PIDGIN_VERSION_2 ${LANG_SIMPCHINESE} "已安è£.$\r$\n$\r$\n想了解更多的信æ¯è¯·é“¾æŽ¥åˆ° http://pidgin-encrypt.sourceforge.net" LangString UNKNOWN_PIDGIN_VERSION ${LANG_SIMPCHINESE} "无法识别 Pidgin 的版本. 请确认 Pidgin 版本为 ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_SIMPCHINESE} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} 安è£ç¨‹åº" LangString WELCOME_TEXT ${LANG_SIMPCHINESE} "注æ„: 此版本æ’件是针对 Pidgin ${PIDGIN_VERSION} 设计, 其它版本的 Pidgin 将无法正常使用.\r\n\r\n当您è¦å‡çº§ Pidgin 版本时, æ‚¨é‡æ–°å®‰è£…æˆ–è€…åŒæ—¶å‡çº§è¯¥æ’ä»¶.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_SIMPCHINESE} "请指定 Pidgin 所安è£çš„目录路径" LangString DIR_INNERTEXT ${LANG_SIMPCHINESE} "å®‰è£ Pidgin 到此目录:" LangString FINISH_TITLE ${LANG_SIMPCHINESE} "Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} 安è£å®Œæˆ" LangString FINISH_TEXT ${LANG_SIMPCHINESE} "è¯·é‡æ–°å¯åЍ Pidgin 以载入本æ’ä»¶, 请在 Pidgin æ’件设置(Plugins)中å¯ç”¨ Pidgin-Encryption æ’ä»¶." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_SIMPCHINESE} "将从 Pidgin/plugins 目录中删除 encrypt.dll 模å—. 是å¦ç¡®å®šè¦ç»§ç»­?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_SIMPCHINESE} "Pidgin-Encryption æ’件(删除程åºï¼‰" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_SIMPCHINESE} "åˆ é™¤ç¨‹åºæ‰¾ä¸åˆ° Pidgin-Encryption.$\rå¯èƒ½æ˜¯å…¶å®ƒä½¿ç”¨è€…安è£äº†æ­¤æ’ä»¶." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_SIMPCHINESE} "æƒé™ä¸è¶³, 无法删除此æ’ä»¶" pidgin-encryption-3.1/nsis/translations/czech.nsh0000644000175100017510000000474311365215022017252 00000000000000;; ;; czech.nsh ;; ;; Czech language strings for the Windows Pidgin-encryption NSIS installer. ;; Windows Code page: 1250 ;; Author: Luboš Stanìk ;; Version 1, Nov 2004 ;; ; Startup Pidgin check LangString PIDGIN_NEEDED ${LANG_CZECH} "Doplnìk Pidgin-Encryption vyžaduje nainstalovaný Pidgin. Musíte nainstalovat Pidgin pøed instalací doplòku Pidgin-Encryption." LangString PIDGIN-ENCRYPTION_TITLE ${LANG_CZECH} "Doplnìk Pidgin-Encryption pro Pidgin" LangString BAD_PIDGIN_VERSION_1 ${LANG_CZECH} "Nekompatibilní verze.$\r$\n$\r$\nTato verze doplòku Pidgin-Encryption byla vytvoøena pro Pidgin ve verzi ${PIDGIN_VERSION}. Zdá se, že máte nainstalovánu verzi" LangString BAD_PIDGIN_VERSION_2 ${LANG_CZECH} "programu Pidgin.$\r$\n$\r$\nVíce informací získáte návštìvou http://pidgin-encrypt.sourceforge.net." LangString UNKNOWN_PIDGIN_VERSION ${LANG_CZECH} "Nelze zjistit, jaká verze programu Pidgin je nainstalována. Ujistìte se, že je to verze ${PIDGIN_VERSION}" ; Overrides for default text in windows: LangString WELCOME_TITLE ${LANG_CZECH} "Instalace doplòku Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION}" LangString WELCOME_TEXT ${LANG_CZECH} "Poznámka: Tato verze doplòku je navržena pro Pidgin ${PIDGIN_VERSION}, nenainstaluje se ani nebude fungovat s jinými verzemi programu Pidgin.\r\n\r\nKdyž aktualizujete svou verzi programu Pidgin, musíte odinstalovat nebo aktualizovat také tento doplnìk.\r\n\r\n" LangString DIR_SUBTITLE ${LANG_CZECH} "Lokalizujte prosím složku, kam je nainstalován program Pidgin" LangString DIR_INNERTEXT ${LANG_CZECH} "Instalovat do této složky programu Pidgin:" LangString FINISH_TITLE ${LANG_CZECH} "Instalace doplòku Pidgin-Encryption v${PIDGIN-ENCRYPTION_VERSION} je dokonèena" LangString FINISH_TEXT ${LANG_CZECH} "Je tøeba restartovat Pidgin, aby se doplnìk naèetl. Pak jdìte do nastavení programu Pidgin a povolte doplnìk Pidgin-Encryption." ; during install uninstaller LangString PIDGIN_ENCRYPTION_PROMPT_WIPEOUT ${LANG_CZECH} "Doplnìk encrypt.dll má být vymazán z vaší složky doplòkù programu Pidgin. Pokraèovat?" ; for windows uninstall LangString PIDGIN_ENCRYPTION_UNINSTALL_DESC ${LANG_CZECH} "Pidgin-Encryption doplnìk (pouze odebrat)" LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_1 ${LANG_CZECH} "Odinstalátor nemùže najít položky registru pro Pidgin-Encryption.$\rNejspíše instaloval doplnìk jiný uživatel." LangString un.PIDGIN_ENCRYPTION_UNINSTALL_ERROR_2 ${LANG_CZECH} "Nemáte dostateèná oprávnìní pro odinstalaci doplòku." pidgin-encryption-3.1/keys.c0000755000175100017510000007445211365171052013101 00000000000000/* Protocol-independent Key structures */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #include "internal.h" #include #if GLIB_CHECK_VERSION(2,6,0) # include #else # define g_freopen freopen # define g_fopen fopen # define g_rmdir rmdir # define g_remove remove # define g_unlink unlink # define g_lstat lstat # define g_stat stat # define g_mkdir mkdir # define g_rename rename # define g_open open #endif #include #include #include #include #include #include #include #ifndef _WIN32 #include #endif #include #include #include #include #include #include #include #include #include #include "keys.h" #include "cryptutil.h" #include "prefs.h" #include "encrypt.h" #include "keys_ui.h" #include "pe_ui.h" #include "nls.h" #ifdef _WIN32 #include "win32dep.h" #endif /* List of all the keys we know about */ key_ring *PE_buddy_ring = 0, *PE_saved_buddy_ring = 0, *PE_my_priv_ring = 0, *PE_my_pub_ring = 0; typedef enum {KEY_MATCH, KEY_NOT_THERE, KEY_CONFLICT} KeyCheckVal; static KeyCheckVal PE_check_known_key(const char *filename, key_ring_data* key); crypt_key * PE_find_key_by_name(key_ring *ring, const char *name, PurpleAccount *acct) { key_ring *i = PE_find_key_node_by_name(ring, name, acct); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "find key by name: %s\n", name); return (i == NULL) ? NULL : ((key_ring_data *)i->data)->key; } crypt_key * PE_find_own_key_by_name(key_ring **ring, char *name, PurpleAccount *acct, PurpleConversation *conv) { crypt_key *key = PE_find_key_by_name(*ring, name, acct); if (key) return key; /* Can't find the key, but it's ours, so we'll make one */ purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error! Can't find own key for %s\n", name); purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Dumping public keyring:\n"); PE_debug_dump_keyring(PE_my_pub_ring); if (conv != 0) { purple_conversation_write(conv, "Encryption Manager", _("Making new key pair..."), PURPLE_MESSAGE_SYSTEM, time((time_t)NULL)); } PE_make_private_pair((crypt_proto *)crypt_proto_list->data, name, conv->account, 1024); key = PE_find_key_by_name(*ring, name, conv->account); if (key) return key; /* Still no key: something is seriously wrong. Probably having trouble saving the */ /* key to the key file, or some such. */ purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error! Can't make new key for %s\n", name); if (conv != 0) { purple_conversation_write(conv, "Encryption Manager", _("Error trying to make key."), PURPLE_MESSAGE_SYSTEM, time((time_t)NULL)); } return 0; } key_ring * PE_find_key_node_by_name(key_ring *ring, const char *name, PurpleAccount* acct) { key_ring *i = 0; for( i = ring; i != NULL; i = i->next ) { if( (strncmp(name, ((key_ring_data *)i->data)->name, sizeof(((key_ring_data*)i->data)->name)) == 0 ) && (acct == ((key_ring_data*)i->data)->account)) break; } return (i == NULL) ? NULL : i; } void PE_debug_dump_keyring(key_ring * ring) { key_ring *i = 0; for( i = ring; i != NULL; i = i->next ) { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Key ring::%*s::%p\n", (unsigned)sizeof(((key_ring_data *)i->data)->name), ((key_ring_data *)i->data)->name, ((key_ring_data *)i->data)->account); } } /* add_key_to_ring will ensure that there is only one key on a ring that matches a given name. So your buddy switches computers (and keys), we will discard his old key when he sends us his new one. */ key_ring* PE_add_key_to_ring(key_ring* ring, key_ring_data* key) { key_ring* old_key = PE_find_key_node_by_name(ring, key->name, key->account); if (old_key != NULL) { ring = g_slist_remove_link(ring, old_key); } ring = g_slist_prepend(ring, key); return ring; } key_ring* PE_del_key_from_ring(key_ring* ring, const char* name, PurpleAccount* acct) { key_ring* old_key = PE_find_key_node_by_name(ring, name, acct); if (old_key != NULL) { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Removing key for %s\n", name); ring = g_slist_remove_link(ring, old_key); } return ring; } key_ring* PE_clear_ring(key_ring* ring) { crypt_key* key; key_ring *iter = ring; while (iter != NULL) { key = ((key_ring_data *)(iter->data))->key; PE_free_key(key); g_free(iter->data); iter = iter->next; } g_slist_free(ring); return NULL; } void PE_received_key(char *key_msg, char *name, PurpleAccount* acct, PurpleConversation* conv, char** orig_msg) { GSList *protoiter; crypt_proto* proto=0; char* key_len_msg=0; unsigned int length; int realstart = 0; gchar** after_key; gchar* resend_msg_id = 0; key_ring_data *new_key; KeyCheckVal keycheck_return; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "received_key\n"); if (strncmp(key_msg, ": Prot ", sizeof(": Prot ") - 1) != 0) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error in received key\n"); return; } key_msg += sizeof(": Prot ") - 1; protoiter = crypt_proto_list; while (protoiter != 0 && proto == 0) { if( (key_len_msg = ((crypt_proto *)protoiter->data)->parseable(key_msg)) != 0 ) { proto = ((crypt_proto *) protoiter->data); } protoiter = protoiter->next; } if (proto == 0) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Unknown protocol type: %10s\n", key_msg); return; } if ( (sscanf(key_len_msg, ": Len %u:%n", &length, &realstart) < 1) || (realstart == 0) ) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error in key header\n"); return; } key_len_msg += realstart; if (strlen(key_len_msg) < length) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Length doesn't match in add_key\n"); return; } purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "After key:%s\n", key_len_msg+length); after_key = g_strsplit(key_len_msg+length, ":", 3); if (after_key[0] && (strcmp(after_key[0], "Resend") == 0)) { if (after_key[1]) { resend_msg_id = g_strdup(after_key[1]); } } g_strfreev(after_key); key_len_msg[length] = 0; /* Make a new node for the linked list */ new_key = g_malloc(sizeof(key_ring_data)); new_key->account = acct; new_key->key = proto->parse_sent_key(key_len_msg); if (new_key->key == 0) { g_free(new_key); if (resend_msg_id) { g_free(resend_msg_id); } purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Invalid key received\n"); return; } strncpy(new_key->name, name, sizeof(new_key->name)); keycheck_return = PE_check_known_key(Buddy_key_file, new_key); /* Now that we've pulled the key out of the original message, we can free it */ /* so that (maybe) a stored message can be returned in it */ (*orig_msg)[0] = 0; g_free(*orig_msg); *orig_msg = 0; switch(keycheck_return) { case KEY_NOT_THERE: PE_choose_accept_unknown_key(new_key, resend_msg_id, conv); break; case KEY_MATCH: PE_buddy_ring = PE_add_key_to_ring(PE_buddy_ring, new_key); PE_send_stored_msgs(new_key->account, new_key->name); PE_show_stored_msgs(new_key->account, new_key->name); if (resend_msg_id) { PE_resend_msg(new_key->account, new_key->name, resend_msg_id); } break; case KEY_CONFLICT: if (conv) { purple_conversation_write(conv, "Encryption Manager", _("Conflicting Key Received!"), PURPLE_MESSAGE_SYSTEM, time((time_t)NULL)); } PE_choose_accept_conflict_key(new_key, resend_msg_id, conv); break; } if (resend_msg_id) { g_free(resend_msg_id); resend_msg_id = 0; } } static const char * get_base_key_path() { const char * basepath = purple_prefs_get_string("/plugins/gtk/encrypt/key_path"); const char * displayedpath = purple_prefs_get_string("/plugins/gtk/encrypt/key_path_displayed"); // migration help: if the base key path is equal to purple_user_dir, blank the pref (ie default) if (strcmp(basepath, purple_user_dir()) == 0) { purple_prefs_set_string("/plugins/gtk/encrypt/key_path", ""); basepath = 0; } else { // see if the basepath matches purple_user_dir with .purple -> .gaim. If so, migrate it gchar ** splitPath = g_strsplit(purple_user_dir(), ".purple", 5); gchar * legacyPath = g_strjoinv(".gaim", splitPath); if (strcmp(basepath, legacyPath) == 0) { purple_prefs_set_string("/plugins/gtk/encrypt/key_path", ""); basepath = 0; } g_strfreev(splitPath); g_free(legacyPath); } if (!basepath || *basepath == 0) { basepath = purple_user_dir(); if (!displayedpath || strcmp(basepath, displayedpath) != 0) { purple_prefs_set_string("/plugins/gtk/encrypt/key_path_displayed", basepath); } } return basepath; } gboolean PE_check_base_key_path() { char path[4096]; struct stat fs; g_snprintf(path, sizeof(path), "%s%s%s", get_base_key_path(), G_DIR_SEPARATOR_S, Private_key_file); if (!g_path_is_absolute(path)) { return FALSE; } if (stat(path, &fs) == -1) { /* file does not exist */ return FALSE; } else { return TRUE; } } static KeyCheckVal PE_check_known_key(const char* filename, key_ring_data* key) { char line[MAX_KEY_STORLEN]; GString *line_str, *key_str, *name_str; char path[4096]; struct stat fs; FILE* fp; int fd; int found_name = 0; g_snprintf(path, sizeof(path), "%s%s%s", get_base_key_path(), G_DIR_SEPARATOR_S, filename); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Checking key file %s for name %s\n", path, key->name); /* check file permissions */ if (stat(path, &fs) == -1) { /* file doesn't exist, so make it */ fd = g_open(path, O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { /* Ok, maybe something else strange is going on... */ purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error trying to create a known key file\n"); return KEY_NOT_THERE; } fstat(fd, &fs); fchmod(fd, fs.st_mode & S_IRWXU); /* zero out non-owner permissions */ close(fd); } else { #ifdef S_IWGRP /* WIN32 doesn't have user-based file permissions, so skips this */ if (fs.st_mode & (S_IWGRP | S_IWOTH)) { fd = g_open(path, O_WRONLY, 0); if (fd == -1) { /* Ok, maybe something else strange is going on... */ purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error trying to modify permissions on known key file\n"); return KEY_NOT_THERE; } fstat(fd, &fs); fchmod(fd, fs.st_mode & S_IRWXU); /* zero out non-owner permissions */ close(fd); purple_debug(PURPLE_DEBUG_WARNING, "pidgin-encryption", "Changed file permissions on %s\n", path); } #endif } /* build string from key */ name_str = g_string_new(key->name); PE_escape_name(name_str); if (key->account) { g_string_append_printf(name_str, ",%s", purple_account_get_protocol_id(key->account)); } else { g_string_append(name_str, ","); } line_str = g_string_new(name_str->str); g_string_append_printf(line_str, " %s ", key->key->proto->name); key_str = PE_key_to_gstr(key->key); g_string_append(line_str, key_str->str); /* purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "built line '%s'\n", line_str->str); */ /* look for key in file */ if( (fp = g_fopen(path, "r")) != NULL ) { while (!feof(fp)) { fgets(line, sizeof(line), fp); /* purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "checking line '%s'\n", line); */ if ( (strchr(line, ' ') == line + name_str->len) && (strncmp(line_str->str, line, name_str->len) == 0) ) { purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Got Name\n"); found_name = 1; if (strncmp(line_str->str, line, line_str->len) == 0) { purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Got Match\n"); fclose(fp); g_string_free(line_str, TRUE); g_string_free(key_str, TRUE); g_string_free(name_str, TRUE); return KEY_MATCH; } } } fclose(fp); } g_string_free(line_str, TRUE); g_string_free(key_str, TRUE); g_string_free(name_str, TRUE); if (found_name) return KEY_CONFLICT; return KEY_NOT_THERE; } /* For now, we'll make all key files privately owned, even though the id.pub and known_keys files could be public. */ void PE_add_key_to_file(const char *filename, key_ring_data* key) { GString *line_str, *key_str; char path[4096]; char errbuf[500]; FILE* fp; int fd; char c; struct stat fdstat; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Saving key to file:%s:%p\n", key->name, key->account); g_snprintf(path, sizeof(path), "%s%s%s", get_base_key_path(), G_DIR_SEPARATOR_S, filename); fd = g_open(path, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); if (fd == -1) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error opening key file %s for write\n", path); /* WIN32 doesn't have user-based file permissions, so skips this */ #ifdef S_IRWXG if (chmod(path, S_IRUSR | S_IWUSR) == -1) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Unable to change file mode, aborting\n"); g_snprintf(errbuf, sizeof(errbuf), _("Error changing access mode for file: %s\nCannot save key."), filename); PE_ui_error(errbuf); return; } #endif fd = g_open(path, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); if (fd == -1) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Changed mode, but still wonky. Aborting.\n"); g_snprintf(errbuf, sizeof(errbuf), _("Error (2) changing access mode for file: %s\nCannot save key."), filename); PE_ui_error(errbuf); return; } else { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Key file '%s' no longer read-only.\n", path); } } fstat(fd, &fdstat); #ifdef S_IRWXG /* WIN32 doesn't have user-based file permissions, so skips this */ if (fdstat.st_mode & (S_IRWXG | S_IRWXO)) { fchmod(fd, fdstat.st_mode & S_IRWXU); /* zero out non-owner permissions */ purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Bad permissions on key file. Changed: %s\n", path); g_snprintf(errbuf, sizeof(errbuf), _("Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file."), filename); PE_ui_error(errbuf); } #endif line_str = g_string_new(key->name); PE_escape_name(line_str); if (key->account) { g_string_append_printf(line_str, ",%s", purple_account_get_protocol_id(key->account)); } else { g_string_append(line_str, ","); } g_string_append_printf(line_str, " %s ", key->key->proto->name); key_str = PE_key_to_gstr(key->key); g_string_append(line_str, key_str->str); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "here\n"); /* To be nice to users... we'll allow the last key in the file to not */ /* have a trailing \n, so they can cut-n-paste with abandon. */ fp = fdopen(fd, "r"); fseek(fp, -1, SEEK_END); c = fgetc(fp); if (feof(fp)) c = '\n'; /*if file is empty, we don't need to write a \n */ fclose(fp); fd = g_open(path, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); fp = fdopen(fd, "a+"); fseek(fp, 0, SEEK_END); /* should be unnecessary, but needed for WIN32 */ if (c != '\n') fputc('\n', fp); fputs(line_str->str, fp); fclose(fp); g_string_free(key_str, TRUE); g_string_free(line_str, TRUE); } void PE_del_one_key_from_file(const char *filename, int key_num, const char *name) { char line[MAX_KEY_STORLEN]; char path[4096], tmp_path[4096]; int foundit = 0; FILE *fp, *tmp_fp; int fd; int line_num; GString *line_start, *old_style_start, *normalized_start; line_start = g_string_new(name); PE_escape_name(line_start); g_string_append_printf(line_start, ","); old_style_start = g_string_new(name); PE_escape_name(old_style_start); g_string_append_printf(old_style_start, " "); normalized_start = g_string_new(name); PE_escape_name(normalized_start); g_string_append_printf(normalized_start, " "); g_snprintf(path, sizeof(path), "%s%s%s", get_base_key_path(), G_DIR_SEPARATOR_S, filename); /* Look for name in the file. If it's not there, we're done */ fp = g_fopen(path, "r"); if (fp == NULL) { g_string_free(line_start, TRUE); g_string_free(old_style_start, TRUE); g_string_free(normalized_start, TRUE); return; } for (line_num = 0; line_num <= key_num; ++line_num) { fgets(line, sizeof(line), fp); } if ( (strncmp(line, line_start->str, line_start->len) == 0) || (strncmp(line, old_style_start->str, old_style_start->len) == 0) || (strncmp(line, normalized_start->str, normalized_start->len) == 0) ) { foundit = 1; } fclose(fp); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Delete one key: found(%d)\n", foundit); if (!foundit) { g_string_free(line_start, TRUE); g_string_free(old_style_start, TRUE); g_string_free(normalized_start, TRUE); return; } /* It's there. Move file to a temporary, and copy the other lines */ g_snprintf(tmp_path, sizeof(tmp_path), "%s.tmp", path); rename(path, tmp_path); fd = g_open(path, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); if (fd == -1) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error opening key file %s\n", path); perror("Error opening key file"); g_string_free(line_start, TRUE); g_string_free(old_style_start, TRUE); g_string_free(normalized_start, TRUE); return; } fp = fdopen(fd, "a+"); tmp_fp = g_fopen(tmp_path, "r"); if (tmp_fp == NULL) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Wah! I moved a file and now it is gone\n"); fclose(fp); g_string_free(line_start, TRUE); g_string_free(old_style_start, TRUE); g_string_free(normalized_start, TRUE); return; } line_num = 0; while (fgets(line, sizeof(line), tmp_fp)) { if (line_num != key_num) { fputs(line, fp); } else { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Skipping line %d\n", line_num); } ++line_num; } fclose(fp); fclose(tmp_fp); unlink(tmp_path); g_string_free(line_start, TRUE); } void PE_del_key_from_file(const char *filename, const char *name, PurpleAccount *acct) { char line[MAX_KEY_STORLEN]; char path[4096], tmp_path[4096]; int foundit = 0; FILE *fp, *tmp_fp; int fd; GString *line_start, *old_style_start, *normalized_start; line_start = g_string_new(name); PE_escape_name(line_start); if (acct != 0) { g_string_append_printf(line_start, ",%s", purple_account_get_protocol_id(acct)); } else { g_string_append_printf(line_start, ","); } old_style_start = g_string_new(name); PE_escape_name(old_style_start); g_string_append_printf(old_style_start, " "); normalized_start = g_string_new(name); PE_escape_name(normalized_start); g_string_append_printf(normalized_start, " "); g_snprintf(path, sizeof(path), "%s%s%s", get_base_key_path(), G_DIR_SEPARATOR_S, filename); /* Look for name in the file. If it's not there, we're done */ fp = g_fopen(path, "r"); if (fp == NULL) { g_string_free(line_start, TRUE); g_string_free(old_style_start, TRUE); g_string_free(normalized_start, TRUE); return; } while (fgets(line, sizeof(line), fp)) { if ( (strncmp(line, line_start->str, line_start->len) == 0) || (strncmp(line, old_style_start->str, old_style_start->len) == 0) || (strncmp(line, normalized_start->str, normalized_start->len) == 0) ) { foundit = 1; } } fclose(fp); if (!foundit) { g_string_free(line_start, TRUE); g_string_free(old_style_start, TRUE); g_string_free(normalized_start, TRUE); return; } /* It's there. Move file to a temporary, and copy the lines */ /* that don't match. */ g_snprintf(tmp_path, sizeof(tmp_path), "%s.tmp", path); rename(path, tmp_path); fd = g_open(path, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); if (fd == -1) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error opening key file %s\n", path); perror("Error opening key file"); g_string_free(line_start, TRUE); g_string_free(old_style_start, TRUE); g_string_free(normalized_start, TRUE); return; } fp = fdopen(fd, "a+"); tmp_fp = g_fopen(tmp_path, "r"); if (tmp_fp == NULL) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Wah! I moved a file and now it is gone\n"); fclose(fp); g_string_free(line_start, TRUE); g_string_free(old_style_start, TRUE); g_string_free(normalized_start, TRUE); return; } while (fgets(line, sizeof(line), tmp_fp)) { if ( (strncmp(line, line_start->str, line_start->len) != 0) && (strncmp(line, old_style_start->str, old_style_start->len) != 0) && (strncmp(line, normalized_start->str, normalized_start->len) != 0) ) { fputs(line, fp); } } fclose(fp); fclose(tmp_fp); unlink(tmp_path); g_string_free(line_start, TRUE); } key_ring * PE_load_keys(const char *filename) { FILE* fp; char name[64], nameacct[164], proto[20], proto_name[10], proto_ver[10], key_str_buf[MAX_KEY_STORLEN]; char path[4096]; int rv; key_ring *new_ring = 0; key_ring_data *new_key; GSList* proto_node; gchar **nameaccount_split; PurpleAccount* account; g_snprintf(path, sizeof(path), "%s%s%s", get_base_key_path(), G_DIR_SEPARATOR_S, filename); /* Check permissions on file before use */ #ifdef S_IRWXG /* WIN32 doesn't have user-based file permissions, so skips this */ { char errbuf[500]; struct stat fdstat; int fd = g_open(path, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); if (fd != -1) { fstat(fd, &fdstat); if (fdstat.st_mode & (S_IRWXG | S_IRWXO)) { fchmod(fd, fdstat.st_mode & S_IRWXU); /* zero out non-owner permissions */ purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Bad permissions on key file. Changed: %s\n", path); g_snprintf(errbuf, sizeof(errbuf), _("Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file."), filename); PE_ui_error(errbuf); } close(fd); } } #endif if( (fp = g_fopen(path, "r")) != NULL ) { do { /* 7999 = MAX_KEY_STORLEN - 1 */ rv = fscanf(fp, "%163s %9s %9s %7999s\n", nameacct, proto_name, proto_ver, key_str_buf); if( rv == 4 ) { if (strlen(key_str_buf) > MAX_KEY_STORLEN - 2) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Problem in key file. Increase key buffer size.\n"); continue; } nameaccount_split = g_strsplit(nameacct, ",", 2); strncpy(name, nameaccount_split[0], sizeof(name)); name[sizeof(name)-1] = 0; PE_unescape_name(name); /* This will do the right thing: if no account, it will match any */ account = purple_accounts_find(name, nameaccount_split[1]); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "load_keys: name(%s), protocol (%s): %p\n", nameaccount_split[0], ((nameaccount_split[1]) ? nameaccount_split[1] : "none"), account); g_strfreev(nameaccount_split); /* purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "load_keys() %i: Read: %s:%s %s %s\n", __LINE__, filename, name, proto_name, proto_ver); */ /* find the make_key_from_str for this protocol */ g_snprintf(proto, sizeof(proto), "%s %s", proto_name, proto_ver); proto_node = crypt_proto_list; while (proto_node != NULL) { if (strcmp(((crypt_proto *)proto_node->data)->name, proto) == 0) break; proto_node = proto_node->next; } if (proto_node == NULL) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "load_keys() %i: invalid protocol: %s\n", __LINE__, proto); continue; } new_key = g_malloc(sizeof(key_ring_data)); new_key->key = ((crypt_proto *)proto_node->data)->make_key_from_str(key_str_buf); new_key->account = account; strncpy(new_key->name, name, sizeof(new_key->name)); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "load_keys() %i: Added: %*s %s %s\n", __LINE__, (unsigned)sizeof(new_key->name), new_key->name, proto_name, proto_ver); new_ring = g_slist_append(new_ring, new_key); } else if (rv > 0) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Bad key (%s) in file: %s\n", name, path); } } while( rv != EOF ); fclose(fp); } else { if (errno != ENOENT) { purple_debug(PURPLE_DEBUG_WARNING, "pidgin-encryption", "Couldn't open file:%s\n", path); perror("Error opening file"); } else { purple_debug(PURPLE_DEBUG_WARNING, "pidgin-encryption", "File %s doesn't exist (yet). A new one will be created.\n", path); } } return new_ring; } void PE_key_rings_init() { GSList *proto_node; GList *cur_sn; crypt_key *pub_key = 0, *priv_key = 0; key_ring_data *new_key; char *name; PurpleAccount *acct; /* Clear any rings that have data from a previous init */ if (PE_my_pub_ring) PE_clear_ring(PE_my_pub_ring); if (PE_my_priv_ring) PE_clear_ring(PE_my_priv_ring); if (PE_saved_buddy_ring) PE_clear_ring(PE_saved_buddy_ring); /* Load the keys */ PE_my_pub_ring = PE_load_keys(Public_key_file); PE_my_priv_ring = PE_load_keys(Private_key_file); PE_saved_buddy_ring = PE_load_keys(Buddy_key_file); /* Create a key for each screen name if we don't already have one */ for (cur_sn = purple_accounts_get_all(); cur_sn != NULL; cur_sn = cur_sn->next) { acct = (PurpleAccount *)cur_sn->data; name = acct->username; priv_key = PE_find_key_by_name(PE_my_priv_ring, name, acct); pub_key = PE_find_key_by_name(PE_my_pub_ring, name, acct); if (priv_key == NULL) { /* No key for this username. Make one. */ proto_node = crypt_proto_list; /* make a pair using the first protocol that comes to mind. */ /* user can override using the config tool */ PE_make_private_pair((crypt_proto *)proto_node->data, name, (PurpleAccount*)(cur_sn->data), 1024); } else { /* There is a private key */ if (pub_key == NULL) { /* but no public key */ purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "No public key found for %s\n", name); purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", " Making one from private key and saving...\n"); pub_key = priv_key->proto->make_pub_from_priv(priv_key); new_key = g_malloc(sizeof(key_ring_data)); new_key->key = pub_key; new_key->account = acct; strncpy(new_key->name, name, sizeof(new_key->name)); PE_my_pub_ring = g_slist_append(PE_my_pub_ring, new_key); PE_add_key_to_file(Public_key_file, new_key); } } } } void PE_make_private_pair(crypt_proto* proto, const char* name, PurpleAccount* acct, int keylength) { crypt_key *pub_key, *priv_key; key_ring_data *new_key; proto->gen_key_pair(&pub_key, &priv_key, name, keylength); new_key = g_malloc(sizeof(key_ring_data)); new_key->key = pub_key; new_key->account = acct; strncpy(new_key->name, name, sizeof(new_key->name)); PE_my_pub_ring = PE_add_key_to_ring(PE_my_pub_ring, new_key); PE_del_key_from_file(Public_key_file, name, acct); PE_add_key_to_file(Public_key_file, new_key); new_key = g_malloc(sizeof(key_ring_data)); new_key->key = priv_key; new_key->account = acct; strncpy(new_key->name, name, sizeof(new_key->name)); PE_my_priv_ring = PE_add_key_to_ring(PE_my_priv_ring, new_key); PE_del_key_from_file(Private_key_file, name, acct); PE_add_key_to_file(Private_key_file, new_key); } pidgin-encryption-3.1/pe_blist.c0000644000175100017510000000516111365171052013713 00000000000000#include "internal.h" // #defines needed for Gaim headers #include #include #include #include "pe_blist.h" #include "state.h" #include "nls.h" gboolean PE_get_buddy_default_autoencrypt(const PurpleAccount* account, const char* buddyname) { PurpleBuddy *buddy; gboolean retval; purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "get_buddy_default_autoencrypt for %p:%s\n", account, buddyname); if (!account) return FALSE; buddy = purple_find_buddy((PurpleAccount*)account, buddyname); if (buddy) { if (!buddy->node.settings) { /* Some users have been getting a crash because buddy->node.settings is/was null. I can't replicate the problem on my system... So we sanity check until the bug in Gaim is found/fixed */ purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Bad buddy settings for %s\n", buddyname); return FALSE; } retval = purple_blist_node_get_bool(&buddy->node, "PE_Auto_Encrypt"); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Found buddy:%s:%d\n", buddyname, retval); return retval; } purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "No setting found for buddy:%s\n", buddyname); return FALSE; } static void buddy_autoencrypt_callback(PurpleBuddy* buddy, gpointer data) { gboolean setting; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "encrypt callback hit (%p) %s\n", buddy, buddy->name); setting = purple_blist_node_get_bool(&buddy->node, "PE_Auto_Encrypt"); purple_blist_node_set_bool(&buddy->node, "PE_Auto_Encrypt", !setting); /* could iterate through conversations to set encryption status */ /* PE_set_tx_encryption(buddy->account, buddy->name, !setting); */ } void PE_buddy_menu_cb(PurpleBlistNode* node, GList **menu, void* data) { PurpleMenuAction *action; PurpleBuddy* buddy; gboolean setting; if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) return; /* else upcast to the buddy that we know it is: */ buddy = (PurpleBuddy*) node; setting = purple_blist_node_get_bool(node, "PE_Auto_Encrypt"); if (setting) { action = purple_menu_action_new(_("Turn Auto-Encrypt Off"), /* it is now turned on */ PURPLE_CALLBACK(buddy_autoencrypt_callback), buddy->account->gc, 0); } else { action = purple_menu_action_new(_("Turn Auto-Encrypt On"), /* it is now turned off */ PURPLE_CALLBACK(buddy_autoencrypt_callback), buddy->account->gc, 0); } *menu = g_list_append(*menu, action); } pidgin-encryption-3.1/pe_ui.c0000644000175100017510000000146611365171052013217 00000000000000#include "internal.h" #include #include #include #include "pe_ui.h" void PE_ui_error(const char* err) { GtkWidget *dialog, *label; /* Create the widgets */ dialog = gtk_dialog_new_with_buttons ("Pidgin-Encryption Error", 0, 0, GTK_STOCK_OK, GTK_RESPONSE_NONE, NULL); label = gtk_label_new (err); g_signal_connect_swapped (GTK_OBJECT (dialog), "response", G_CALLBACK (gtk_widget_destroy), GTK_OBJECT (dialog)); gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), label); gtk_widget_show_all (dialog); } pidgin-encryption-3.1/prefs.h0000644000175100017510000000245211365171052013236 00000000000000/* Pidgin-Encryption Preferences file interface */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #ifndef PREFS_H #define PREFS_H #include #include #include void PE_prefs_changed_cb(const char* name, PurplePrefType type, gconstpointer val, gpointer data); void PE_convert_legacy_prefs(void); #endif pidgin-encryption-3.1/config_ui.c0000644000175100017510000006260111365171052014056 00000000000000/* Configure dialog UI */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #include "internal.h" #include #include #include #include #include #include #include #include #include #include #include "nls.h" #include "cryptproto.h" #include "keys.h" #include "config_ui.h" #ifdef _WIN32 #include "win32dep.h" #endif /*Static vars for the config dialog: */ static GtkWidget *key_size_entry, *proto_combo; /* static GtkListStore *key_list_store = NULL; */ /* static GtkWidget *key_list_view = NULL; */ static GtkWidget *regen_err_label; static GtkWidget *regen_window = NULL; /* regenerate key popup */ static GtkWidget* config_vbox = NULL; /* Our main config pane */ static GtkWidget* Local_keylist_view = NULL; static GtkWidget* Saved_keylist_view = NULL; static GtkWidget* InMem_keylist_view = NULL; static GtkWidget* Invalid_path_label = NULL; static GtkWidget* Invalid_path_button = NULL; static void create_key_files_cb(); /* Callbacks for the Regenerate popup dialog */ static void config_cancel_regen() { if (regen_window) { gtk_widget_destroy(regen_window); } regen_window = NULL; } static void config_do_regen(GtkWidget* hitbutton, GtkWidget *key_list_view) { GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(key_list_view)); GtkListStore *key_list_store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(key_list_view))); const gchar* bits_string = gtk_entry_get_text(GTK_ENTRY(key_size_entry)); const gchar* proto_string = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(proto_combo)->entry)); // should NOT be freed int bits = 0; GSList *proto = crypt_proto_list; gchar *name; PurpleAccount *acct; gchar key_len[15]; GString *key_buf; GtkTreeIter list_store_iter; sscanf(bits_string, "%d", &bits); if (bits == 0) { gtk_label_set_text(GTK_LABEL(regen_err_label), _("Bad key size")); return; } if (bits < 512) { gtk_label_set_text(GTK_LABEL(regen_err_label), _("Keys < 512 bits are VERY insecure")); return; } if (bits > 4096) { gtk_label_set_text(GTK_LABEL(regen_err_label), _("Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission")); return; } while (proto != NULL && strcmp(proto_string, ((crypt_proto*)proto->data)->name) != 0) { proto = proto->next; } if (proto == NULL) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Can't find protocol in list! Aigh!\n"); return; } if (gtk_tree_selection_get_selected(selection, NULL, &list_store_iter)) { crypt_key * regenerated_key; gtk_tree_model_get(GTK_TREE_MODEL(key_list_store), &list_store_iter, 0, &name, 4, &acct, -1); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "regen for name: '%s', acct: %p\n", name, acct); PE_make_private_pair((crypt_proto*)proto->data, name, acct, bits); snprintf(key_len, sizeof(key_len), "%d", bits); regenerated_key = PE_find_key_by_name(PE_my_pub_ring, name, acct); if (regenerated_key) { key_buf = g_string_new_len(regenerated_key->fingerprint, KEY_FINGERPRINT_LENGTH); } else { key_buf = g_string_new("--error--"); } gtk_list_store_set(key_list_store, &list_store_iter, 1, key_len, 2, key_buf->str, 3, proto_string, -1); g_string_free(key_buf, TRUE); g_free(name); } config_cancel_regen(); hitbutton = hitbutton; /* unused */ } /* Display the Regenerate Key popup, and set up the above callbacks */ /* (used as a callback from the main Config dialog, below) */ static void config_regen_key(GtkWidget* hitbutton, GtkWidget* key_list_view) { GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(key_list_view)); GtkWidget *vbox, *hbox, *label, *table, *button; GList *proto_list = NULL; key_ring* iter; if (regen_window != NULL) return; PIDGIN_DIALOG(regen_window); gtk_widget_set_size_request(regen_window, 300, 150); gtk_window_set_title(GTK_WINDOW(regen_window), _("Generate Keys")); g_signal_connect(G_OBJECT(regen_window), "destroy", GTK_SIGNAL_FUNC(config_cancel_regen), NULL); vbox = gtk_vbox_new(0, 2); gtk_container_set_border_width(GTK_CONTAINER(vbox), 4); gtk_container_add(GTK_CONTAINER(regen_window), vbox); gtk_widget_show (vbox); if (!gtk_tree_selection_get_selected(selection, NULL, NULL)) { label = gtk_label_new(_("No key selected to re-generate!")); gtk_box_pack_start(GTK_BOX(vbox), label, 0, 0, 0); gtk_widget_show(label); hbox = gtk_hbox_new(FALSE, 2); gtk_box_pack_end(GTK_BOX(vbox), hbox, 0, 0, 0); gtk_widget_show(hbox); button = gtk_button_new_with_label(_("OK")); g_signal_connect(G_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(config_cancel_regen), NULL); gtk_box_pack_end(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_set_size_request(button, 100, -1); gtk_widget_show(button); gtk_widget_show(regen_window); return; } /* Start 2 x 2 table */ table = gtk_table_new(2, 2, FALSE); gtk_box_pack_start(GTK_BOX(vbox), table, 0, 0, 0); gtk_widget_show(table); /* First column */ label = gtk_label_new(_("Encryption protocol:")); gtk_widget_set_size_request(label, 150, -1); gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, 0, 0, 0, 0); gtk_widget_show(label); label = gtk_label_new(_("Key size:")); gtk_widget_set_size_request(label, 150, -1); gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, 0, 0, 0, 0); gtk_widget_show(label); /* Second column: */ proto_combo = gtk_combo_new(); gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(proto_combo)->entry), ((crypt_proto*)crypt_proto_list->data)->name); gtk_editable_set_editable(GTK_EDITABLE(GTK_COMBO(proto_combo)->entry), FALSE); for( iter = crypt_proto_list; iter != NULL; iter = iter->next ) { proto_list = g_list_append(proto_list, ((crypt_proto *)iter->data)->name); } gtk_combo_set_popdown_strings(GTK_COMBO (proto_combo), proto_list); g_list_free(proto_list); gtk_table_attach(GTK_TABLE(table), proto_combo, 1, 2, 0, 1, 0, 0, 0, 0); gtk_widget_set_size_request(proto_combo, 85, -1); gtk_widget_show(proto_combo); key_size_entry = gtk_entry_new(); gtk_entry_set_max_length(GTK_ENTRY(key_size_entry), 5); gtk_entry_set_text(GTK_ENTRY(key_size_entry), "1024"); gtk_table_attach(GTK_TABLE(table), key_size_entry, 1, 2, 1, 2, 0, 0, 0, 0); gtk_widget_set_size_request(key_size_entry, 85, -1); gtk_widget_show(key_size_entry); /* End of 2x2 table */ regen_err_label = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(vbox), regen_err_label, 0, 0, 0); gtk_widget_show(regen_err_label); hbox = gtk_hbox_new(FALSE, 2); gtk_box_pack_end(GTK_BOX(vbox), hbox, 0, 0, 0); gtk_widget_show(hbox); button = gtk_button_new_with_label(_("Cancel")); g_signal_connect(G_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(config_cancel_regen), NULL); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_set_size_request(button, 100, -1); gtk_widget_show(button); button = gtk_button_new_with_label(_("Ok")); g_signal_connect(G_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(config_do_regen), key_list_view); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_set_size_request(button, 100, -1); gtk_widget_show(button); gtk_widget_show(regen_window); hitbutton = hitbutton; /* unused */ } /* button handler: */ static void delete_local_key(GtkWidget* hitbutton, GtkWidget* key_list_view) { GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(key_list_view)); GtkListStore *key_list_store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(key_list_view))); GtkTreeIter list_store_iter; gchar *name; PurpleAccount *acct; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "delete local key\n"); if (regen_window != NULL) return; if (gtk_tree_selection_get_selected(selection, NULL, &list_store_iter)) { gtk_tree_model_get(GTK_TREE_MODEL(key_list_store), &list_store_iter, 0, &name, 4, &acct, -1); { GtkWidget * confirm_dialog = gtk_message_dialog_new(0, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, "%s : %s", _("Delete Key"), name); gint confirm_response = gtk_dialog_run( GTK_DIALOG(confirm_dialog) ); gtk_widget_destroy(confirm_dialog); if (confirm_response != GTK_RESPONSE_OK) return; } purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "deleting '%s' : %p\n", name, acct); PE_del_key_from_file(Public_key_file, name, acct); PE_del_key_from_file(Private_key_file, name, acct); PE_del_key_from_ring(PE_my_pub_ring, name, acct); PE_del_key_from_ring(PE_my_priv_ring, name, acct); gtk_list_store_remove(key_list_store, &list_store_iter); } hitbutton = hitbutton; /* unused */ } /* button handler: */ static void delete_buddy_key(GtkWidget* hitbutton, GtkWidget* key_list_view) { GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(key_list_view)); GtkListStore *key_list_store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(key_list_view))); GtkTreeIter list_store_iter; gchar *name; PurpleAccount *acct; gint num; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "delete buddy key\n"); if (regen_window != NULL) return; if (gtk_tree_selection_get_selected(selection, NULL, &list_store_iter)) { gtk_tree_model_get(GTK_TREE_MODEL(key_list_store), &list_store_iter, 0, &name, 4, &acct, 5, &num, -1); { GtkWidget * confirm_dialog = gtk_message_dialog_new(0, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, "%s %s", _("Delete Key"), name); gint confirm_response = gtk_dialog_run( GTK_DIALOG(confirm_dialog) ); gtk_widget_destroy(confirm_dialog); if (confirm_response != GTK_RESPONSE_OK) return; } /* purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "From file: %d : %s\n", num, name); */ PE_del_one_key_from_file(Buddy_key_file, num, name); PE_del_key_from_ring(PE_buddy_ring, name, acct); gtk_list_store_remove(key_list_store, &list_store_iter); } hitbutton = hitbutton; /* unused */ } /* button handler: */ static void copy_fp_to_clipboard(GtkWidget* hitbutton, GtkWidget* key_list_view) { GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(key_list_view)); GtkListStore *key_list_store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(key_list_view))); GtkTreeIter list_store_iter; gchar *fptext; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "copy to clipboard\n"); if (regen_window != NULL) return; if (gtk_tree_selection_get_selected(selection, NULL, &list_store_iter)) { gtk_tree_model_get(GTK_TREE_MODEL(key_list_store), &list_store_iter, 2, &fptext, -1); /* purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "copy :%s:\n", fptext); */ gtk_clipboard_set_text( gtk_clipboard_get (GDK_SELECTION_PRIMARY), fptext, strlen(fptext) ); gtk_clipboard_set_text( gtk_clipboard_get (GDK_SELECTION_CLIPBOARD), fptext, strlen(fptext) ); g_free(fptext); } hitbutton = hitbutton; /* unused */ } void PE_populate_key_list_view(key_ring *ring, gboolean local, GtkTreeView* key_list_view) { GtkListStore *store; GtkTreeIter store_iter; GtkCellRenderer *renderer; GtkTreeViewColumn *col; key_ring* iter; GString* key_buf; gint num; /* make a list store as a 'model' for the tree view, to store the data in */ store = gtk_list_store_new (6, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_INT, -1); gtk_tree_view_set_model(key_list_view, GTK_TREE_MODEL(store)); g_object_unref (G_OBJECT(store)); /* erase any columns that are in the view from previous populations */ while (0 != (col = gtk_tree_view_get_column(key_list_view, 0))) { gtk_tree_view_remove_column(key_list_view, col); } renderer = gtk_cell_renderer_text_new(); if (local) { col = gtk_tree_view_column_new_with_attributes(_("Account"), renderer, "text", 0, NULL); } else { col = gtk_tree_view_column_new_with_attributes(_("Name"), renderer, "text", 0, NULL); } gtk_tree_view_append_column(key_list_view, col); col = gtk_tree_view_column_new_with_attributes(_("Bits"), renderer, "text", 1, NULL); gtk_tree_view_append_column(key_list_view, col); col = gtk_tree_view_column_new_with_attributes(_("Key Fingerprint"), renderer, "text", 2, NULL); gtk_tree_view_append_column(key_list_view, col); num = 0; for( iter = ring; iter != NULL; iter = iter->next ) { key_ring_data * key_iter = (key_ring_data*)(iter->data); gtk_list_store_append(store, &store_iter); if (key_iter && key_iter->key && key_iter->key->fingerprint) { key_buf = g_string_new_len(key_iter->key->fingerprint, KEY_FINGERPRINT_LENGTH); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Set List Item: name: '%s', acct: %p, num: %d\n", key_iter->name, key_iter->account, num); } else { key_buf = g_string_new("--error--"); purple_debug(PURPLE_DEBUG_WARNING, "pidgin-encryption", "Error Setting List Item %p %p\n", key_iter->key , key_iter->key->fingerprint); } gtk_list_store_set(store, &store_iter, 0, ((key_ring_data *)iter->data)->name, 1, ((key_ring_data *)iter->data)->key->length, 2, key_buf->str, 3, ((key_ring_data *)iter->data)->key->proto->name, 4, ((key_ring_data *)iter->data)->account, 5, num, -1); g_string_free(key_buf, TRUE); ++num; } } GtkWidget* PE_create_key_vbox(GtkWidget** key_list_view) { GtkWidget *keybox = gtk_vbox_new(FALSE, 10); GtkWidget *keywin = gtk_scrolled_window_new(0, 0); gtk_widget_show(keybox); gtk_box_pack_start(GTK_BOX(keybox), keywin, 0, 0, 0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (keywin), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_widget_set_size_request (keywin, -1, 250); gtk_widget_show(keywin); *key_list_view = gtk_tree_view_new(); gtk_container_add(GTK_CONTAINER(keywin), *key_list_view); gtk_widget_show(*key_list_view); gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(*key_list_view), TRUE); return keybox; } /* Todo: */ /* - Make sure we aren't leaking memory on loose widget references */ /* Called when Purple wants us to show our config dialog */ GtkWidget* PE_get_config_frame(PurplePlugin *plugin) { GtkWidget *hbox; GtkWidget *keybox; GtkWidget *button; GtkWidget *notebook; GtkWidget *checkbox_vbox; config_vbox = gtk_vbox_new(FALSE, 2); gtk_container_set_border_width (GTK_CONTAINER (config_vbox), 12); gtk_widget_show (config_vbox); g_signal_connect(G_OBJECT(config_vbox), "destroy", GTK_SIGNAL_FUNC(config_cancel_regen), NULL); notebook = gtk_notebook_new(); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_TOP); gtk_box_pack_start(GTK_BOX(config_vbox), notebook, 0, 0, 0); gtk_widget_show(notebook); /* Notebook page 1: Config */ checkbox_vbox = gtk_vbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(checkbox_vbox), 2); gtk_widget_show(checkbox_vbox); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), checkbox_vbox, gtk_label_new(_("Config"))); pidgin_prefs_checkbox(_("Accept key automatically if no key on file"), "/plugins/gtk/encrypt/accept_unknown_key", checkbox_vbox); pidgin_prefs_checkbox(_("Accept conflicting keys automatically (security risk)"), "/plugins/gtk/encrypt/accept_conflicting_key", checkbox_vbox); pidgin_prefs_checkbox(_("Automatically encrypt if sent an encrypted message"), "/plugins/gtk/encrypt/encrypt_response", checkbox_vbox); pidgin_prefs_checkbox(_("Broadcast encryption capability"), "/plugins/gtk/encrypt/broadcast_notify", checkbox_vbox); pidgin_prefs_checkbox(_("Automatically encrypt if buddy has plugin"), "/plugins/gtk/encrypt/encrypt_if_notified", checkbox_vbox); pidgin_prefs_checkbox(_("Show lock icon for each line of chat"), "/plugins/gtk/encrypt/show_inline_icons", checkbox_vbox); pidgin_prefs_labeled_entry(checkbox_vbox, _("Keyfile location"), "/plugins/gtk/encrypt/key_path_displayed", 0); /* sometime box with message and button for when keyfile location is wrong */ hbox = gtk_hbox_new(FALSE, 2); Invalid_path_label = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(hbox), Invalid_path_label, 0, 0, 0); Invalid_path_button = gtk_button_new_with_label(_("Create key files")); g_signal_connect(G_OBJECT(Invalid_path_button), "clicked", GTK_SIGNAL_FUNC(create_key_files_cb), 0); gtk_box_pack_start(GTK_BOX(hbox), Invalid_path_button, 0, 0, 0); gtk_box_pack_start(GTK_BOX(checkbox_vbox), hbox, 0, 0, 0); gtk_widget_show(hbox); gtk_widget_hide(Invalid_path_button); gtk_widget_set_no_show_all(Invalid_path_button, TRUE); /* Notebook page 2: Local keys */ /* if this assert fails, then the "add_weak_pointer" calls below are gonna cause trouble */ assert(Local_keylist_view == NULL); keybox = PE_create_key_vbox(&Local_keylist_view); PE_populate_key_list_view(PE_my_priv_ring, TRUE, GTK_TREE_VIEW(Local_keylist_view)); hbox = gtk_hbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); gtk_box_pack_start(GTK_BOX(keybox), hbox, 0, 0, 0); gtk_widget_show(hbox); button = gtk_button_new_with_label(_("Delete Key")); g_signal_connect(G_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(delete_local_key), Local_keylist_view); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_show(button); button = gtk_button_new_with_label(_("Regenerate Key")); g_signal_connect(G_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(config_regen_key), Local_keylist_view); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_show(button); button = gtk_button_new_with_label(_("Copy Fingerprint to Clipboard")); g_signal_connect(G_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(copy_fp_to_clipboard), Local_keylist_view); gtk_box_pack_end(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_show(button); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), keybox, gtk_label_new(_("Local Keys"))); /* Notebook page 3: Saved Buddy Keys */ keybox = PE_create_key_vbox(&Saved_keylist_view); PE_populate_key_list_view(PE_saved_buddy_ring, FALSE, GTK_TREE_VIEW(Saved_keylist_view)); hbox = gtk_hbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); gtk_box_pack_start(GTK_BOX(keybox), hbox, 0, 0, 0); gtk_widget_show(hbox); button = gtk_button_new_with_label(_("Delete Key")); g_signal_connect(G_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(delete_buddy_key), Saved_keylist_view); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_show(button); button = gtk_button_new_with_label(_("Copy Fingerprint to Clipboard")); g_signal_connect(G_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(copy_fp_to_clipboard), Saved_keylist_view); gtk_box_pack_end(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_show(button); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), keybox, gtk_label_new(_("Trusted Buddy Keys"))); /* Notebook page 4: In-Memory Buddy Keys */ keybox = PE_create_key_vbox(&InMem_keylist_view); PE_populate_key_list_view(PE_buddy_ring, FALSE, GTK_TREE_VIEW(InMem_keylist_view)); hbox = gtk_hbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); gtk_box_pack_start(GTK_BOX(keybox), hbox, 0, 0, 0); gtk_widget_show(hbox); button = gtk_button_new_with_label(_("Delete Key")); g_signal_connect(G_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(delete_buddy_key), InMem_keylist_view); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_show(button); button = gtk_button_new_with_label(_("Copy Fingerprint to Clipboard")); g_signal_connect(G_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(copy_fp_to_clipboard), InMem_keylist_view); gtk_box_pack_end(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_show(button); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), keybox, gtk_label_new(_("Recent Buddy Keys"))); /* make it so that when the config_vbox object is finalized, our pointer to it is nulled out */ g_object_add_weak_pointer(G_OBJECT(config_vbox), (gpointer*) &config_vbox); g_object_add_weak_pointer(G_OBJECT(Local_keylist_view), (gpointer*) &Local_keylist_view); g_object_add_weak_pointer(G_OBJECT(Saved_keylist_view), (gpointer*) &Saved_keylist_view); g_object_add_weak_pointer(G_OBJECT(InMem_keylist_view), (gpointer*) &InMem_keylist_view); g_object_add_weak_pointer(G_OBJECT(Invalid_path_label), (gpointer*) &Invalid_path_label); g_object_add_weak_pointer(G_OBJECT(Invalid_path_button), (gpointer*) &Invalid_path_button); return config_vbox; } void PE_config_update() { if (!Local_keylist_view) return; PE_populate_key_list_view(PE_my_priv_ring, TRUE, GTK_TREE_VIEW(Local_keylist_view)); PE_populate_key_list_view(PE_saved_buddy_ring, FALSE, GTK_TREE_VIEW(Saved_keylist_view)); PE_populate_key_list_view(PE_buddy_ring, FALSE, GTK_TREE_VIEW(InMem_keylist_view)); if (!Invalid_path_label) return; gtk_widget_hide(Invalid_path_label); gtk_widget_hide(Invalid_path_button); } void PE_config_show_invalid_keypath() { if (!Invalid_path_label) return; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Showing invalid keypath\n"); gtk_label_set(GTK_LABEL(Invalid_path_label), _("No key files found at path")); gtk_widget_show(Invalid_path_label); gtk_widget_show(Invalid_path_button); } void PE_config_show_nonabsolute_keypath() { if (!Invalid_path_label) return; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Showing non-absolute keypath\n"); gtk_label_set(GTK_LABEL(Invalid_path_label), _("Absolute path required")); gtk_widget_show(Invalid_path_label); gtk_widget_hide(Invalid_path_button); } static void create_key_files_cb( ) { purple_prefs_trigger_callback("/plugins/gtk/encrypt/key_path_displayed"); if (PE_check_base_key_path()) { gtk_widget_hide(Invalid_path_label); gtk_widget_hide(Invalid_path_button); } else { gtk_label_set(GTK_LABEL(Invalid_path_label), _("Unable to create key files")); gtk_widget_hide(Invalid_path_button); } } void PE_config_unload() { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "PE_config_unload: %p\n", config_vbox); if (config_vbox) { /* We don't want our internal static functions getting called after the plugin */ /* has been unloaded, so disconnect the callback that kills the key regen window */ /* For good measure, kill the key regen window too */ g_signal_handlers_disconnect_by_func(GTK_OBJECT(config_vbox), GTK_SIGNAL_FUNC(config_cancel_regen), NULL); config_cancel_regen(); config_vbox = NULL; } } pidgin-encryption-3.1/INSTALL0000644000175100017510000000307211365171052012776 00000000000000==================== Release version: ==================== First, unpack the plugin, and cd to its directory. Running ./configure: If you have Gaim installed in a system directory, you should be able to just run ./configure If you have Gaim installed in /usr/local, you may need to add /usr/local/lib/pkgconfig to your PKG_CONFIG_PATH environment variable first. So run it like PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):/usr/local/lib/pkgconfig ./configure If your NSS/NSPR libraries are installed somewhere random, you may need to add something else to your PKG_CONFIG_PATH for them, or use one of the configure options: --with-nspr-includes=PATH Specify the location of the Mozilla NSPR include files. Make sure that they're installed (the Redhat package used to be mozilla-nspr-devel, and is now seamonkey-nss-devel, for example). PATH should be where the nspr.h header file was installed to. --with-nss-includes=PATH Ditto, but the Mozilla NSS include files. Redhat package is seamonkey-nss-devel. Look for nssbase.h --with-nspr-libs=PATH Specify the location of the NSPR runtime libraries (libnspr4.so or libnspr4.a) --with-nss-libs=PATH Specify the location of the NSS runtime libraries (libnss3.so or libnss3.a) If you specified a --prefix when compiling Gaim, you should specify it for the plugin as well. NOTE: If you update Gaim, you should re-compile and re-install the plugin, otherwise you will probably see some strange behavior. ============== CVS version: ============== First run ./autogen.sh Then follow the above instructions. pidgin-encryption-3.1/icon_out_unlock.xpm0000644000175100017510000000701111365171052015662 00000000000000/* XPM */ static char * icon_out_unlock_xpm[] = { "48 48 69 1", " c None", ". c #555555", "+ c #565656", "@ c #626262", "# c #5D5D5D", "$ c #5C5C5C", "% c #818181", "& c #919191", "* c #999999", "= c #787878", "- c #737373", "; c #666666", "> c #757575", ", c #8D8D8D", "' c #868686", ") c #5A5A5A", "! c #696969", "~ c #616161", "{ c #646464", "] c #6B6B6B", "^ c #6E6E6E", "/ c #5E5E5E", "( c #7D7D7D", "_ c #5B5B5B", ": c #6F6F6F", "< c #7E7E7E", "[ c #595959", "} c #585858", "| c #8B8B8B", "1 c #606060", "2 c #575757", "3 c #777777", "4 c #505050", "5 c #BDBDBD", "6 c #B3B3B3", "7 c #ADADAD", "8 c #A6A6A6", "9 c #A1A1A1", "0 c #9C9C9C", "a c #9B9B9B", "b c #979797", "c c #939393", "d c #909090", "e c #8A8A8A", "f c #838383", "g c #C5C5C5", "h c #ABABAB", "i c #808080", "j c #7F7F7F", "k c #797979", "l c #6A6A6A", "m c #676767", "n c #C1C1C1", "o c #878787", "p c #767676", "q c #747474", "r c #727272", "s c #6C6C6C", "t c #A3A3A3", "u c #636363", "v c #9E9E9E", "w c #000000", "x c #9F9F9F", "y c #8E8E8E", "z c #7C7C7C", "A c #717171", "B c #6D6D6D", "C c #707070", "D c #515151", " ", " ", " ", " ", " .... ", " ...+@#+... ", " ..$%&*=-;+.. ", " ..>*,'=---;).. ", " ..'*%>!~{]-^/).. ", " ..'*(]_..._-:]#_.. ", " ..-*<;+.....+^-;_). ", " .)*%;+. .+]:~[+. ", " .%&^#.. .+=^#). ", " +&(#.. .]%@}.. ", " .@&!#.. .|][+. ", " .-&1#. .'-#2. ", " .=,1). .<=#}. ", " .!%1}. .3>1}. ", " 444+/4444444444444411+4444 444444 ", " 4355678990aaaaa0000abc&def[4 ", " 4gh8*,%ij>-qqqqqq-s!!m{$+4 ", " 4n8tc,%ij(kp333kkkk=:l{{u$+4 ", " 459vdoi<=p---qqqqqq-]l!;{$+4 w ", " 4n99&,%ij<==kkkk3k3p^l!{~$+4 ww ", " 459xyoi-qqqqqqqrl!{u/_+4 www ", " 4n99d,%i c #064B00", ", c #086700", "' c #81DF79", ") c #9FFF97", "! c #63C15A", "~ c #42A03A", "{ c #25821D", " ", " $@++++@@ ", " $@.++++@@& ", " $$@@##%%..&& ", " %@@## %..&& ", " %%** ++== ", " %%** ++== ", " ;;** >>== ", " ;;** >>== ", " ,,,,,,,,,,,,,,,, ", " ,,,,,,,,,,,,,,,, ", " ,,''))''!!!!~~,, ", " ,,''))''!!!!~~,, ", " ,,~~!!~~~!{{,,,, ", " ,,~~!!~~~!{{,,,, ", " ,,''))''!!!!~~,, ", " ,,''))''!!!!~~,, ", " ,,~~!!~~!!{{,,,, ", " ,,~~!!~~!!{{,,,, ", " ,,''))''!!!!~~,, ", " ,,''))''!!!!~~,, ", " ,,,,,,,,,,,,,,,, ", " ,,,,,,,,,,,,,,,, ", " "}; pidgin-encryption-3.1/nss_oaep.h0000644000175100017510000000233011365171052013721 00000000000000/* * Pidgin-Encryption OAEP padding routines * * Copyright (C) 2003 William Tompkins * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #ifndef NSS_OAEP_H #define NSS_OAEP_H int oaep_pad_block(unsigned char* padded_data, unsigned int padded_len, const unsigned char* data, unsigned int data_len); int oaep_unpad_block(unsigned char* unpadded_data_start, unsigned int * unpadded_len, unsigned char* padded_data, unsigned padded_len); unsigned int oaep_max_unpadded_len(unsigned int padded_len); void oaep_test(); #endif pidgin-encryption-3.1/m4/0000777000175100017510000000000011365171220012344 500000000000000pidgin-encryption-3.1/m4/gettext.m40000644000175100017510000003437511365171217014230 00000000000000# Macro to add for using GNU gettext. # Ulrich Drepper , 1995. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License or the GNU Library General Public License but which still want # to provide support for the GNU gettext functionality. # Please note that the actual code of the GNU gettext library is covered # by the GNU Library General Public License, and the rest of the GNU # gettext package package is covered by the GNU General Public License. # They are *not* in the public domain. # serial 10 dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]). dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). Otherwise, a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. dnl LIBDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_WITH_NLS], [AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no INTLLIBS= dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. CATOBJEXT=NONE dnl Add a version number to the cache macros. define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc]) define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl]) AC_CHECK_HEADER(libintl.h, [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, [AC_TRY_LINK([#include extern int _nl_msg_cat_cntr;], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no)]) if test "$gt_cv_func_gnugettext_libc" != "yes"; then AC_CACHE_CHECK([for GNU gettext in libintl], gt_cv_func_gnugettext_libintl, [gt_save_LIBS="$LIBS" LIBS="$LIBS -lintl $LIBICONV" AC_TRY_LINK([#include extern int _nl_msg_cat_cntr;], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr], gt_cv_func_gnugettext_libintl=yes, gt_cv_func_gnugettext_libintl=no) LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if test "$gt_cv_func_gnugettext_libc" = "yes" \ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ && test "$PACKAGE" != gettext; }; then AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) if test "$gt_cv_func_gnugettext_libintl" = "yes"; then dnl If iconv() is in a separate libiconv library, then anyone dnl linking with libintl{.a,.so} also needs to link with dnl libiconv. INTLLIBS="-lintl $LIBICONV" fi gt_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) LIBS="$gt_save_LIBS" dnl Search for GNU msgfmt in the PATH. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Search for GNU xgettext in the PATH. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :) CATOBJEXT=.gmo fi ]) if test "$CATOBJEXT" = "NONE"; then dnl GNU gettext is not found in the C library. dnl Fall back on GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. INTLOBJS="\$(GETTOBJS)" AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :) AC_SUBST(MSGFMT) BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes CATOBJEXT=.gmo INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU msgfmt. if test "$GMSGFMT" != ":"; then dnl If it is no GNU msgfmt we define it as : so that the dnl Makefiles still can work. if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then : ; else AC_MSG_RESULT( [found msgfmt program is not GNU msgfmt; ignore it]) GMSGFMT=":" fi fi dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is no GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi dnl We need to process the po/ directory. POSUB=po fi AC_OUTPUT_COMMANDS( [for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" fi ;; esac done]) dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext; then BUILD_INCLUDED_LIBINTL=yes fi dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl because plural.y uses bison specific features. It requires at least dnl bison-1.26 because earlier versions generate a plural.c that doesn't dnl compile. dnl bison is only needed for the maintainer (who touches plural.y). But in dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put dnl the rule in general Makefile. Now, some people carelessly touch the dnl files or have a broken "make" program, hence the plural.c rule will dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not dnl present or too old. AC_CHECK_PROGS([INTLBISON], [bison]) if test -z "$INTLBISON"; then ac_verc_fail=yes else dnl Found it, now check the version. AC_MSG_CHECKING([version of bison]) changequote(<<,>>)dnl ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) changequote([,])dnl ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac AC_MSG_RESULT([$ac_prog_version]) fi if test $ac_verc_fail = yes; then INTLBISON=: fi dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.in. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(GMOFILES) AC_SUBST(INTLLIBS) AC_SUBST(INTLOBJS) AC_SUBST(POFILES) AC_SUBST(POSUB) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) ]) dnl Usage: Just like AM_WITH_NLS, which see. AC_DEFUN([AM_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([jm_GLIBC21])dnl AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h]) AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \ getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) AM_ICONV AM_LANGINFO_CODESET AM_LC_MESSAGES AM_WITH_NLS([$1],[$2],[$3]) if test "x$CATOBJEXT" != "x"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but $(top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], []) AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) pidgin-encryption-3.1/m4/lt~obsolete.m40000644000175100017510000001311311365171220015073 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) pidgin-encryption-3.1/m4/ltsugar.m40000644000175100017510000001042411365171220014204 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) pidgin-encryption-3.1/m4/iconv.m40000644000175100017510000000436211365171217013653 00000000000000#serial AM2 dnl From Bruno Haible. AC_DEFUN([AM_ICONV], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_ARG_WITH([libiconv-prefix], [ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [ for dir in `echo "$withval" | tr : ' '`; do if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi done ]) AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_func_iconv=yes) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS -liconv" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_lib_iconv=yes am_cv_func_iconv=yes) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi LIBICONV= if test "$am_cv_lib_iconv" = yes; then LIBICONV="-liconv" fi AC_SUBST(LIBICONV) ]) pidgin-encryption-3.1/m4/ltoptions.m40000644000175100017510000002724211365171220014564 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) pidgin-encryption-3.1/m4/progtest.m40000644000175100017510000000323411365171217014401 00000000000000# Search path for a program which passes the given test. # Ulrich Drepper , 1996. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License or the GNU Library General Public License but which still want # to provide support for the GNU gettext functionality. # Please note that the actual code of the GNU gettext library is covered # by the GNU Library General Public License, and the rest of the GNU # gettext package package is covered by the GNU General Public License. # They are *not* in the public domain. # serial 2 dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) pidgin-encryption-3.1/m4/isc-posix.m40000644000175100017510000000113411365171217014445 00000000000000#serial 1 # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) pidgin-encryption-3.1/m4/libtool.m40000644000175100017510000077437411365171220014214 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_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_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_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. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$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_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # 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. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_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_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_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. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_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 <<_LT_EOF [$]* _LT_EOF exit 0 fi # 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 if test -z "$lt_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 && { 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. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "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*|s390*-*tpf*|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*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test 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* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in 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_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # 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 m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "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 m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; 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 # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$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 <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #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 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 ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "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* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) 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_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_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__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_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_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 _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_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_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; 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 _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) 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]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux 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*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$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' ;; esac ;; 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* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # 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}${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 # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) 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 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 shlibpath_overrides_runpath=yes 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' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux 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 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 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_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])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 ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; 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=pass_all ;; 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; 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 _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file 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 : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [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_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_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 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' 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_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_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_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_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_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$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 ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` 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_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&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. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $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' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 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 ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$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_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_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_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' 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_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no 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 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_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_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_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*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_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_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_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_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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_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_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_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_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "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_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We 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_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_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_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [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]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report 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]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) 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 else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_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_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$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_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' 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_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$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 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_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_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_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_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $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) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "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 "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='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_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "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 "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_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" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='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_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -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_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We 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_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&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_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_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$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_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$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_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $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]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) pidgin-encryption-3.1/m4/ltversion.m40000644000175100017510000000127511365171220014554 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3012 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6]) m4_define([LT_PACKAGE_REVISION], [1.3012]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6' macro_revision='1.3012' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) pidgin-encryption-3.1/m4/lcmessage.m40000644000175100017510000000205211365171217014472 00000000000000# Check whether LC_MESSAGES is available in . # Ulrich Drepper , 1995. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License or the GNU Library General Public License but which still want # to provide support for the GNU gettext functionality. # Please note that the actual code of the GNU gettext library is covered # by the GNU Library General Public License, and the rest of the GNU # gettext package package is covered by the GNU General Public License. # They are *not* in the public domain. # serial 2 AC_DEFUN([AM_LC_MESSAGES], [if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) pidgin-encryption-3.1/m4/glibc21.m40000644000175100017510000000102611365171217013752 00000000000000#serial 2 # Test for the GNU C Library, version 2.1 or newer. # From Bruno Haible. AC_DEFUN([jm_GLIBC21], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, ac_cv_gnu_library_2_1, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2_1=yes, ac_cv_gnu_library_2_1=no) ] ) AC_SUBST(GLIBC21) GLIBC21="$ac_cv_gnu_library_2_1" ] ) pidgin-encryption-3.1/m4/codeset.m40000644000175100017510000000071611365171217014162 00000000000000#serial AM1 dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, [AC_TRY_LINK([#include ], [char* cs = nl_langinfo(CODESET);], am_cv_langinfo_codeset=yes, am_cv_langinfo_codeset=no) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE(HAVE_LANGINFO_CODESET, 1, [Define if you have and nl_langinfo(CODESET).]) fi ]) pidgin-encryption-3.1/icon_in_lock.xpm0000644000175100017510000001555411365171052015131 00000000000000/* XPM */ static char * icon_in_lock_xpm[] = { "48 48 135 2", " c None", ". c #000000", "+ c #000F00", "@ c #046304", "# c #024502", "$ c #000900", "% c #023602", "& c #3BA43B", "* c #57B457", "= c #64BC64", "- c #2A992A", "; c #1E901E", "> c #057905", ", c #000200", "' c #229322", ") c #51B151", "! c #45AA45", "~ c #012A01", "{ c #000100", "] c #000600", "^ c #0A7F0A", "/ c #035B03", "( c #047304", "_ c #108410", ": c #158815", "< c #034B03", "[ c #012E01", "} c #329E32", "| c #023202", "1 c #000400", "2 c #013401", "3 c #168916", "4 c #024202", "5 c #35A035", "6 c #000C00", "7 c #000800", "8 c #012301", "9 c #000A00", "0 c #023C02", "a c #001400", "b c #001100", "c c #011E01", "d c #4CAE4C", "e c #012501", "f c #035903", "g c #011801", "h c #035403", "i c #011B01", "j c #269626", "k c #011C01", "l c #002400", "m c #004500", "n c #006500", "o c #005100", "p c #005300", "q c #006B00", "r c #006900", "s c #159215", "t c #95D895", "u c #83D083", "v c #76CA76", "w c #6DC66D", "x c #6BC56B", "y c #67C367", "z c #61C061", "A c #59BC59", "B c #55BA55", "C c #4FB74F", "D c #4BB54B", "E c #46B246", "F c #3DAD3D", "G c #35A835", "H c #28A028", "I c #9FDC9F", "J c #71C871", "K c #3CAC3C", "L c #38AA38", "M c #2EA42E", "N c #2BA22B", "O c #279F27", "P c #229C22", "Q c #209A20", "R c #1E991E", "S c #179417", "T c #169316", "U c #139113", "V c #108E10", "W c #0C8B0C", "X c #098809", "Y c #038303", "Z c #007800", "` c #005B00", " . c #004200", ".. c #9DDB9D", "+. c #42B042", "@. c #30A530", "#. c #2AA12A", "$. c #129012", "%. c #0B8A0B", "&. c #058505", "*. c #028202", "=. c #48B348", "-. c #199519", ";. c #0D8C0D", ">. c #007E00", ",. c #007400", "'. c #005600", "). c #004000", "!. c #0E8D0E", "~. c #078707", "{. c #63C163", "]. c #44B144", "^. c #33A733", "/. c #1A961A", "(. c #007600", "_. c #007000", ":. c #005900", "<. c #5BBD5B", "[. c #048404", "}. c #007A00", "|. c #006D00", "1. c #005800", "2. c #006200", "3. c #006400", "4. c #003E00", "5. c #57BB57", "6. c #018101", "7. c #3AAB3A", "8. c #51B851", "9. c #005E00", "0. c #005400", "a. c #004E00", "b. c #004C00", "c. c #002C00", "d. c #002300", " ", " ", " ", " ", " . . . . ", " . . . + @ # $ . . . ", " . . % & * = - ; > + . . ", " . , ' = ) ! - ; ; ; > ~ { . ", " . ] ! = & ' ^ / ( _ ; : < [ , . ", " . , ! = } _ | . . 1 2 ; 3 _ 4 | { . ", " . . ; = 5 > 6 . . . . . + : ; > | ~ . ", " . [ = & > 7 . . $ _ 3 / 8 9 . ", " . & * : 0 . . . a - : 0 ~ . ", " b * } # ] . . _ & @ c 1 . ", " . @ * ^ 0 . . ] d _ e b . ", " . ; * f 0 . . ! ; 0 g . ", " . - ) h ~ . . 5 - # c . ", " . ^ & h i . . j ' h k . ", " l l l m n n o l l l l l l l l l l l l p q r l l l l ", " l s t t u v w w x y z z A B B A A B B B C D E F G H p l ", " l I J x C K L M N O P Q R S S S S T U V W X Y Z q ` .l ", " l ..y z +.@.#.O P P R T U V $.$.$.V V %.X &.*.Z q ` .l ", " l I x y =.G M O P Q -.T $.$.$.$.;.V W X X &.>.,.n '.).l ", " l ..x z +.#.O P R S s V !.%.%.%.~.X X &.*.X &.>.,.` m l ", " l ..y {.].G ^.Q /.S U $.V V V $.;.V %.%.X &.*.(._.:. .l ", " . l t z <.F #.O O P Q -.T $.$.$.$.;.V W X X X [.}.,.` .l ", " . . l ..z z +.M N P R S s V !.%.%.%.~.X X &.*.&.[.Z |.` .l ", " . . . l t z <.F N O Q /.S U $.V V V $.;.V %.%.X *.}._.n 1.).l ", " . . . . l ..z z F #.O O P Q -.T $.$.$.$.;.V W X X Y >.,.q :.).l ", " . . . . . . . . . . . l I x {.].G ^.P R S s V !.%.%.%.~.X X &.*.[.>._.q :. .l ", " . . . . . . . . . . . l t {.<.K O Q Q /.S U $.V V V $.;.V %.%.X [.*.,.|.2.).l ", " . . . . l ..{.z F N O O P Q -.T $.$.$.$.;.V W X X >.}.q 3.2.4.l ", " . . . l I x {.E G M P R S s V !.%.%.%.~.X X &.*.*.>._.n >.).l ", " . . l t z B K O O Q /.S U $.V V V $.;.V %.%.X Y >._.q &.).l ", " . l t z B ^.O Q O P Q -.T $.$.$.$.;.V W X X *.}._.r &.4.l ", " l t <.B G O P P R S s V !.%.%.%.~.X X &.*.}.(.|.3.s 4.l ", " l t z 5.K O P Q /.S U $.V V V $.;.V %.%.X Y >.,.q -.).l ", " l ..z <.F #.O O P Q -.T $.$.$.$.;.V W X X *.>.Z }./.).l ", " l t z <.K O Q P R S s V !.%.%.%.~.X X &.*.>.}.Z 6./.).l ", " l t A B 7.P P Q /.S U $.V V V $.;.V %.%.X [.*.V [.U ).l ", " l t 5.8.^.Q Q R T U V W %.X !.$.$.R R /./.O O P [.r 4.l ", " l q U V [.Z Z _._.q q n n 3.n n 9.3.9.` :.'.0.a.b.m c.d. ", " d.l l l l l l l l l l l l l l l l l l l l l l l l d. ", " ", " ", " ", " ", " "}; pidgin-encryption-3.1/VERSION0000644000175100017510000000000411365171052013005 000000000000003.1 pidgin-encryption-3.1/nss_pss.c0000644000175100017510000001440211365171052013600 00000000000000/* * Pidgin-Encryption PSS signature routines, from PKCS#1 v2.1 * * Copyright (C) 2003 William Tompkins * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #include "pk11func.h" #include "keyhi.h" /* for g_assert; PORT_Assert seems disabled... */ #include #include #include "nss_mgf1.h" #include "nss_pss.h" static const SECOidTag Hash_OID = SEC_OID_SHA1; static const unsigned int hlen = 20; /* SHA1 hash length */ /* Generate a signature block (not including the msg) in the specified space */ /* salt_len is typically = hlen, or 0 */ int pss_generate_sig(unsigned char* sig, unsigned int sig_len, const unsigned char* msg, unsigned int msg_len, int salt_len) { /* see PKCS#1 v2.1 for a pretty picture. We construct the signature */ /* left to right, in a very straightforward way. */ /* Since the (variably sized) padding is on the left, we first figure */ /* out where everything is, going right to left. */ unsigned char* bc_pos = sig + sig_len - 1; unsigned char* final_hash_pos = bc_pos - hlen; unsigned char* salt_pos = final_hash_pos - salt_len; int padding2_size = (salt_pos - sig); unsigned char* m_prime; SECStatus rv; /* assuming a modulus size that is a multiple of 8 bits, PS must have at */ /* least one 0 starting off, plus the 1 that denotes the end of PS */ if (padding2_size <= 1) return 0; /* Construct PS */ PORT_Memset(sig, 0, padding2_size - 1); sig[padding2_size - 1] = 1; /* Construct Salt */ rv = PK11_GenerateRandom(salt_pos, salt_len); g_assert(rv == SECSuccess); /* Construct M': */ /* If we were clever and had an easy way to incrementally hash things, */ /* we could avoid actually making M' and just use the pieces parts */ /* where they lie. Oh well. */ m_prime = PORT_Alloc(8 + hlen + salt_len); g_assert(m_prime != 0); /* Padding1 inside M' */ PORT_Memset(m_prime, 0, 8); /* mHash inside M' */ rv = PK11_HashBuf(Hash_OID, m_prime + 8, (unsigned char*)msg, msg_len); g_assert(rv == SECSuccess); /* salt inside M' */ PORT_Memcpy(m_prime + 8 + hlen, salt_pos, salt_len); /* Hash M' into final_hash_pos */ rv = PK11_HashBuf(Hash_OID, final_hash_pos, m_prime, 8 + hlen + salt_len); g_assert(rv == SECSuccess); PORT_Free(m_prime); /* Why 0xbc? One of the great mysteries...*/ *bc_pos = 0xbc; /* Almost done: mask everything before the hash with the hash */ mgf1(sig, final_hash_pos - sig, final_hash_pos, hlen); /* Mask probably screwed up our starting zero byte, zero it */ sig[0] = 0; return 1; } /* Destructively verify that the the signature block corresponds to */ /* the given message */ int pss_check_sig(unsigned char* sig, unsigned int sig_len, const unsigned char* msg, unsigned int msg_len) { unsigned char* bc_pos = sig + sig_len - 1; unsigned char* final_hash_pos = bc_pos - hlen; unsigned char* salt_pos; int salt_len; unsigned char* m_prime; unsigned char* check_hash; int hashcmp; SECStatus rv; if (sig[sig_len - 1] != 0xbc) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "No 0xBC in sig\n"); return 0; } if (sig[0] != 0) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "First byte of sig nonzero\n"); return 0; } mgf1(sig, final_hash_pos - sig, final_hash_pos, hlen); /* Walk down the padding looking for the 01 that marks the salt */ salt_pos = sig+1; while ((salt_pos < final_hash_pos) && (*salt_pos == 0)) { ++salt_pos; } if (salt_pos == final_hash_pos) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "no 0x01 for salt\n"); return 0; } if (*salt_pos != 1) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "no 0x01 for salt (2)\n"); return 0; } ++salt_pos; salt_len = final_hash_pos - salt_pos; /* Construct M' using the salt we just regained */ m_prime = PORT_Alloc(8 + hlen + salt_len); g_assert(m_prime != 0); /* Padding1 inside M' */ PORT_Memset(m_prime, 0, 8); /* mHash inside M' */ rv = PK11_HashBuf(Hash_OID, m_prime + 8, (unsigned char*)msg, msg_len); g_assert(rv == SECSuccess); /* salt inside M' */ PORT_Memcpy(m_prime + 8 + hlen, salt_pos, salt_len); /* Hash M' into check_hash */ check_hash = PORT_Alloc(hlen); g_assert(m_prime != 0); rv = PK11_HashBuf(Hash_OID, check_hash, m_prime, 8 + hlen + salt_len); g_assert(rv == SECSuccess); PORT_Free(m_prime); hashcmp = memcmp(check_hash, final_hash_pos, hlen); PORT_Free(check_hash); if (hashcmp != 0) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "bad hash in sig\n"); return 0; } return 1; } void pss_test() { int mod_size = 512/8; unsigned char data[4096/8]; unsigned char sig[4096/8]; int data_size; SECStatus rv; /* overkill, but what the hey. */ while (mod_size <= 4096/8) { rv = PK11_GenerateRandom(data, sizeof(data)); g_assert(rv == SECSuccess); for (data_size = 0; data_size <= 1000; ++data_size) { g_assert( pss_generate_sig(sig, mod_size, data, data_size, hlen) ); g_assert( pss_check_sig(sig, mod_size, data, data_size) ); g_assert( pss_generate_sig(sig, mod_size, data, data_size, 0) ); g_assert( pss_check_sig(sig, mod_size, data, data_size) ); } mod_size *= 2; } } pidgin-encryption-3.1/state.c0000644000175100017510000001165711365171052013241 00000000000000#include "internal.h" #include #include #include #include #include #include #include #include #include "pe_blist.h" #include "state_ui.h" #include "state.h" GHashTable *encryption_state_table; /* name -> EncryptionState */ /* Helper function: */ static void reset_state_struct(const PurpleAccount* account, const gchar* name, EncryptionState* state); void PE_state_init() { encryption_state_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); } void PE_state_delete() { g_hash_table_destroy(encryption_state_table); } EncryptionState* PE_get_state(PurpleConversation* conv) { if (conv == NULL) return NULL; EncryptionState *state = purple_conversation_get_data(conv, "PE_state"); if (state == NULL) { state = g_malloc(sizeof(EncryptionState)); purple_conversation_set_data(conv, "PE_state", state); // should probably change this to use some prefs info rather than our buddy list stuff state->outgoing_encrypted = PE_get_buddy_default_autoencrypt(purple_conversation_get_account(conv), purple_conversation_get_name(conv)); if (conv == NULL) { return NULL; } state->has_been_notified = PE_get_default_notified(purple_conversation_get_account(conv), purple_conversation_get_name(conv)); state->incoming_encrypted = FALSE; state->is_capable = FALSE; } return state; } void PE_reset_state(PurpleConversation* conv) { EncryptionState *state; if (conv == NULL) return; state = PE_get_state(conv); reset_state_struct(purple_conversation_get_account(conv), purple_conversation_get_name(conv), state); } void PE_free_state(PurpleConversation* conv) { EncryptionState *state; if (conv == NULL) return; state = PE_get_state(conv); if (state) { g_free(state); } } static void reset_state_struct(const PurpleAccount* account, const gchar* name, EncryptionState* state) { state->outgoing_encrypted = PE_get_buddy_default_autoencrypt(account, name); state->has_been_notified = PE_get_default_notified(account, name); state->incoming_encrypted = FALSE; state->is_capable = FALSE; } void PE_set_tx_encryption(PurpleConversation* conv, gboolean do_encrypt) { EncryptionState *state; if (conv == NULL) return; state = PE_get_state(conv); if (state->outgoing_encrypted != do_encrypt) { state->outgoing_encrypted = do_encrypt; PE_sync_state(conv); } } void PE_set_capable(PurpleConversation* conv, gboolean cap) { EncryptionState *state; if (conv == NULL) return; state = PE_get_state(conv); if (state->is_capable != cap) { state->is_capable = cap; if (state->outgoing_encrypted == FALSE) { PE_sync_state(conv); } } } void PE_set_rx_encryption(PurpleConversation *conv, gboolean incoming_encrypted) { EncryptionState *state; if (conv == NULL) return; state = PE_get_state(conv); if (state->incoming_encrypted != incoming_encrypted) { state->incoming_encrypted = incoming_encrypted; PE_set_rx_encryption_icon(conv, incoming_encrypted); } } gboolean PE_get_tx_encryption(PurpleConversation *conv) { EncryptionState *state = PE_get_state(conv); if (state == NULL) return FALSE; return state->outgoing_encrypted; } void PE_sync_state(PurpleConversation *conv) { EncryptionState *state; if (conv == NULL) return; state = PE_get_state(conv); PE_set_rx_encryption_icon(conv, state->incoming_encrypted); PE_set_tx_encryption_icon(conv, state->outgoing_encrypted, state->is_capable); } gboolean PE_has_been_notified(PurpleConversation *conv) { EncryptionState *state = PE_get_state(conv); if (state == NULL) return TRUE; return state->has_been_notified; } void PE_set_notified(PurpleConversation *conv, gboolean new_state) { EncryptionState *state; if (conv == NULL) return; state = PE_get_state(conv); state->has_been_notified = new_state; } gboolean PE_get_default_notified(const PurpleAccount *account, const gchar* name) { /* Most protocols no longer have a notify message, since they don't do HTML */ /* The only special case here is Oscar/TOC: If the other user's name is all */ /* digits, then they're ICQ, so we pretend that we already notified them */ const char* protocol_id = purple_account_get_protocol_id(account); if (strcmp(protocol_id, "prpl-toc") == 0 || strcmp(protocol_id, "prpl-oscar") == 0) { while(*name != 0) { if (!isdigit(*name++)) { /* not ICQ */ return FALSE; } } /* Hrm. must be ICQ */ return TRUE; } /* default to notifying next time, if protocol allows it */ return FALSE; } pidgin-encryption-3.1/keys_ui.c0000644000175100017510000002662511365171052013572 00000000000000/* Key acceptance UI bits */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #include "internal.h" #include #include #include #include #include #include #include #include "encrypt.h" #include "keys.h" #include "prefs.h" #include "keys_ui.h" #include "nls.h" #ifdef _WIN32 #include "win32dep.h" #endif typedef struct accept_key_ui { GtkWidget *window; key_ring_data *ring_data; gchar* resend_msg_id; } accept_key_ui; static void destroy_callback(GtkWidget* widget, gpointer ginstance) { accept_key_ui *instance = (accept_key_ui*)ginstance; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "enter destroy_callback\n"); g_free(instance->resend_msg_id); gtk_widget_destroy(instance->window); g_free(instance); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "leaving destroy_callback\n"); } static void reject_key_callback(GtkWidget* widget, gpointer ginstance) { accept_key_ui *instance = (accept_key_ui*)ginstance; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "enter reject_callback\n"); gtk_widget_destroy(instance->window); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "leaving reject_callback\n"); } static void accept_key_callback(GtkWidget* widget, gpointer ginstance) { accept_key_ui *instance = (accept_key_ui*)ginstance; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "enter accept_callback\n"); PE_buddy_ring = PE_add_key_to_ring(PE_buddy_ring, instance->ring_data); PE_send_stored_msgs(instance->ring_data->account, instance->ring_data->name); PE_show_stored_msgs(instance->ring_data->account, instance->ring_data->name); if (instance->resend_msg_id) { PE_resend_msg(instance->ring_data->account, instance->ring_data->name, instance->resend_msg_id); } instance->ring_data = 0; gtk_widget_destroy(instance->window); /* reject_key_callback will now be called since we called destroy on the window */ purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "exit accept_callback\n"); } static void save_key_callback(GtkWidget* widget, gpointer ginstance) { accept_key_ui *instance = (accept_key_ui*)ginstance; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "enter save_callback\n"); PE_add_key_to_file(Buddy_key_file, instance->ring_data); accept_key_callback(widget, ginstance); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "exit save_callback\n"); } void PE_choose_accept_unknown_key(key_ring_data* newkey, gchar* resend_msg_id, PurpleConversation *conv) { GtkWidget *win; GtkWidget *vbox, *hbox; GtkWidget *button; GtkWidget *label; char strbuf[4096]; accept_key_ui *this_instance; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "enter choose_accept_unknown\n"); /* First look at the prefs... */ if (purple_prefs_get_bool("/plugins/gtk/encrypt/accept_unknown_key")) { PE_add_key_to_file(Buddy_key_file, newkey); PE_buddy_ring = PE_add_key_to_ring(PE_buddy_ring, newkey); PE_send_stored_msgs(newkey->account, newkey->name); PE_show_stored_msgs(newkey->account, newkey->name); if (resend_msg_id) { PE_resend_msg(newkey->account, newkey->name, resend_msg_id); } return; } /* Need to ask the user... */ if (conv) { purple_sound_play_event(PURPLE_SOUND_RECEIVE, purple_conversation_get_account(conv)); } this_instance = g_malloc(sizeof(accept_key_ui)); PIDGIN_DIALOG(win); this_instance->window = win; this_instance->ring_data = newkey; this_instance->resend_msg_id = g_strdup(resend_msg_id); gtk_window_set_title(GTK_WINDOW(win), _("Pidgin-Encryption Key Received")); g_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(destroy_callback), (gpointer)this_instance); vbox = gtk_vbox_new(0, 2); gtk_container_set_border_width(GTK_CONTAINER(vbox), 4); gtk_container_add(GTK_CONTAINER(win), vbox); gtk_widget_show (vbox); g_snprintf(strbuf, sizeof(strbuf), _("%s key received for '%s'"), newkey->key->proto->name, newkey->name); label = gtk_label_new(strbuf); gtk_box_pack_start(GTK_BOX(vbox), label, 0, 0, 0); gtk_widget_set_size_request(label, -1, 30); gtk_widget_show(label); g_snprintf(strbuf, sizeof(strbuf), _("Key Fingerprint:%*s"), KEY_FINGERPRINT_LENGTH, newkey->key->fingerprint); label = gtk_label_new(strbuf); gtk_box_pack_start(GTK_BOX(vbox), label, 0, 0, 0); gtk_widget_set_size_request(label, -1, 30); gtk_widget_show(label); g_snprintf(strbuf, sizeof(strbuf), _("Do you want to accept this key?")); label = gtk_label_new(strbuf); gtk_box_pack_start(GTK_BOX(vbox), label, 0, 0, 0); gtk_widget_set_size_request(label, -1, 30); gtk_widget_show(label); hbox = gtk_hbox_new(FALSE, 2); gtk_box_pack_end(GTK_BOX(vbox), hbox, 0, 0, 0); gtk_widget_show(hbox); button = gtk_button_new_with_label(_("No")); g_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(reject_key_callback), (gpointer)this_instance); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_set_size_request(button, 100, -1); gtk_widget_show(button); button = gtk_button_new_with_label(_("Accept and Save")); g_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(save_key_callback), (gpointer)this_instance); gtk_box_pack_end(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_set_size_request(button, 120, -1); gtk_widget_show(button); button = gtk_button_new_with_label(_("This session only")); g_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(accept_key_callback), (gpointer)this_instance); gtk_box_pack_end(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_set_size_request(button, 130, -1); gtk_widget_show(button); gtk_widget_show(win); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "exit choose_accept_unknown\n"); } void PE_choose_accept_conflict_key(key_ring_data* newkey, gchar* resend_msg_id, PurpleConversation *conv) { GtkWidget *win; GtkWidget *vbox, *hbox; GtkWidget *button; GtkWidget *label; char strbuf[4096]; accept_key_ui *this_instance; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "enter choose_accept_conflict\n"); /* First look at the prefs... */ if (purple_prefs_get_bool("/plugins/gtk/encrypt/accept_conflicting_key")) { PE_add_key_to_file(Buddy_key_file, newkey); PE_buddy_ring = PE_add_key_to_ring(PE_buddy_ring, newkey); PE_send_stored_msgs(newkey->account, newkey->name); PE_show_stored_msgs(newkey->account, newkey->name); if (resend_msg_id) { PE_resend_msg(newkey->account, newkey->name, resend_msg_id); } return; } /* Need to ask the user... */ if (conv) { purple_sound_play_event(PURPLE_SOUND_RECEIVE, purple_conversation_get_account(conv)); } this_instance = g_malloc(sizeof(accept_key_ui)); PIDGIN_DIALOG(win); this_instance->window = win; this_instance->ring_data = newkey; this_instance->resend_msg_id = g_strdup(resend_msg_id); gtk_window_set_title(GTK_WINDOW(win), _("CONFLICTING Pidgin-Encryption Key Received")); g_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(destroy_callback), (gpointer)this_instance); vbox = gtk_vbox_new(0, 2); gtk_container_set_border_width(GTK_CONTAINER(vbox), 4); gtk_container_add(GTK_CONTAINER(win), vbox); gtk_widget_show (vbox); label = gtk_label_new(_(" ******* WARNING ******* ")); gtk_box_pack_start(GTK_BOX(vbox), label, 0, 0, 0); gtk_widget_set_size_request(label, -1, 30); gtk_widget_show(label); g_snprintf(strbuf, sizeof(strbuf), _("CONFLICTING %s key received for '%s'!"), newkey->key->proto->name, newkey->name); label = gtk_label_new(strbuf); gtk_box_pack_start(GTK_BOX(vbox), label, 0, 0, 0); gtk_widget_set_size_request(label, -1, 30); gtk_widget_show(label); g_snprintf(strbuf, sizeof(strbuf), _("Key Fingerprint:%*s"), KEY_FINGERPRINT_LENGTH, newkey->key->fingerprint); label = gtk_label_new(strbuf); gtk_box_pack_start(GTK_BOX(vbox), label, 0, 0, 0); gtk_widget_set_size_request(label, -1, 30); gtk_widget_show(label); label = gtk_label_new(_(" ******* WARNING ******* ")); gtk_box_pack_start(GTK_BOX(vbox), label, 0, 0, 0); gtk_widget_set_size_request(label, -1, 30); gtk_widget_show(label); label = gtk_label_new(_("This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it.")); gtk_box_pack_start(GTK_BOX(vbox), label, 0, 0, 0); // gtk_widget_set_size_request(label, -1, 30); gtk_widget_show(label); g_snprintf(strbuf, sizeof(strbuf), _("Do you want to accept this key?")); label = gtk_label_new(strbuf); gtk_box_pack_start(GTK_BOX(vbox), label, 0, 0, 0); gtk_widget_set_size_request(label, -1, 30); gtk_widget_show(label); hbox = gtk_hbox_new(FALSE, 2); gtk_box_pack_end(GTK_BOX(vbox), hbox, 0, 0, 0); gtk_widget_show(hbox); button = gtk_button_new_with_label(_("No")); g_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(reject_key_callback), (gpointer)this_instance); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_set_size_request(button, 100, -1); gtk_widget_show(button); button = gtk_button_new_with_label(_("Accept and Save")); g_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(save_key_callback), (gpointer)this_instance); gtk_box_pack_end(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_set_size_request(button, 120, -1); gtk_widget_show(button); button = gtk_button_new_with_label(_("This session only")); g_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(accept_key_callback), (gpointer)this_instance); gtk_box_pack_end(GTK_BOX(hbox), button, 0, 0, 0); gtk_widget_set_size_request(button, 130, -1); gtk_widget_show(button); gtk_widget_show(win); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "enter choose_accept_conflict\n"); } pidgin-encryption-3.1/pre-config.h.in0000644000175100017510000001502111365171225014553 00000000000000/* pre-config.h.in. Generated from configure.ac by autoheader. */ /* Pidgin-encryption header file */ #ifndef _PIDGIN_ENCRYPTION_CONFIG_H #define _PIDGIN_ENCRYPTION_CONFIG_H /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Version of pidgin-encryption plugin */ #undef ENC_PACKAGE /* Version of pidgin-encryption plugin */ #undef ENC_VERSION /* Define to 1 if you have `alloca', as a function or macro. */ #undef HAVE_ALLOCA /* Define to 1 if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the header file. */ #undef HAVE_ARGZ_H /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the `feof_unlocked' function. */ #undef HAVE_FEOF_UNLOCKED /* Define to 1 if you have the `fgets_unlocked' function. */ #undef HAVE_FGETS_UNLOCKED /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the `getegid' function. */ #undef HAVE_GETEGID /* Define to 1 if you have the `geteuid' function. */ #undef HAVE_GETEUID /* Define to 1 if you have the `getgid' function. */ #undef HAVE_GETGID /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the `getuid' function. */ #undef HAVE_GETUID /* Define if you have the iconv() function. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_KEYHI_H /* Define if you have and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MALLOC_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `mempcpy' function. */ #undef HAVE_MEMPCPY /* Define to 1 if you have a working `mmap' system call. */ #undef HAVE_MMAP /* Define to 1 if you have the `munmap' function. */ #undef HAVE_MUNMAP /* Define to 1 if you have the header file. */ #undef HAVE_NL_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_NSPR_H /* Define if you have Mozilla NSS */ #undef HAVE_NSS /* Define to 1 if you have the header file. */ #undef HAVE_NSS_H /* Define if we have found pidgin. */ #undef HAVE_PIDGIN /* Define to 1 if you have the header file. */ #undef HAVE_PRIO_H /* Define if we have found purple. */ #undef HAVE_PURPLE /* Define to 1 if you have the `putenv' function. */ #undef HAVE_PUTENV /* Define to 1 if you have the `setenv' function. */ #undef HAVE_SETENV /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the header file. */ #undef HAVE_SMIME_H /* Define if you have SSL */ #undef HAVE_SSL /* Define to 1 if you have the header file. */ #undef HAVE_SSL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `stpcpy' function. */ #undef HAVE_STPCPY /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strtoul' function. */ #undef HAVE_STRTOUL /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the `tsearch' function. */ #undef HAVE_TSEARCH /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `__argz_count' function. */ #undef HAVE___ARGZ_COUNT /* Define to 1 if you have the `__argz_next' function. */ #undef HAVE___ARGZ_NEXT /* Define to 1 if you have the `__argz_stringify' function. */ #undef HAVE___ARGZ_STRINGIFY /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to `long int' if does not define. */ #undef off_t /* Define to `unsigned int' if does not define. */ #undef size_t #endif /* _PIDGIN_ENCRYPTION_CONFIG_H */ pidgin-encryption-3.1/install-sh0000755000175100017510000003253711365171226013764 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' 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-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) 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: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && 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 && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pidgin-encryption-3.1/NOTES0000644000175100017510000001143411365171052012561 00000000000000 Notes on strategy, message format, algorithm, and future work: Strategy: Incoming messages: The plugin intercepts incoming messages, and looks for the CRYPT_HEADER at the beginning of the message. Tagged messages are either an incoming public key, a request to send a public key, or an encrypted message. Incoming keys are stored, and encrypted messages are decrypted with your private key. NEW: when a key comes in, it looks through a list of all of the protocols that it knows about, and sees which one wants to claim the key. That protocol is then "attached" to the key and is used for all further encryptions with that key. Outgoing messages: are also intercepted, and if the user wants the message encrypted, it is. The message is then sent directly (not passed back to the caller) and displayed directly, as otherwise the sender will see the encrypted text. This intercept is now done through event_displayed_sent, so it should happen _after_ all other plugins get their shot at the message. Messages have CRYPT_HEADER pre-pended, and CRYPT_FOOTER appended. Message format: Since CRYPT_HEADER is the start of an HTML block, and CRYPT_FOOTER is the end of it, a non-encrypted-plugin client will see some text telling them to load their encryption plugin rather than a block of garbage. Encrypted blocks are sent Base64 encoded. Algorithm: Uses Mozilla's NSS libraries to do RSA encryption. All padding on encryption is done with OAEP, all signatures are done with PSS. Signs the outgoing message with your private key, then encrypts with other user's public key. This gives us both encryption and authentication (no man in the middle attacks, if our original key transmissions were not fooled with). Note: this isn't really the way that RSA is normally used. Usually, you only use RSA to send a session key across, then you use that session key with a symmetric cypher like Blowfish or AES. There are a few reasons that folks do this: 1) Speed. RSA is slow. Symmetric cyphers are fast. 2) RSA has some weaknesses with chosen plaintext attacks. ie: if I can pick the text that you will sign with your private key, then from the result I can deduce your private key. Bad! 1) really isn't a problem here on a standard computer. if you want to send large files through IM, it might be a problem, though. 2) As long as we don't allow someone else to specify the text we send, there can't be any chosen plaintext attacks. Running an echo-bot on your encrypted link would be bad, but otherwise, we're ok. There are some small reasons for us _not_ to use the symmetric cypher approach: Say the other party logs out, then logs back in. A symmetric cypher approach needs to re-negotiate a session key; we don't. Another way of putting it: without session keys, we are more stateless, which gives us some flexibility. Almost everything described below (for my old RSA algorithm) is done better by the OpenSSL crypto library. It is faster, does its padding in a standard way (PKCS1_OAEP), and uses the hardware entropy in most OS'es. In addition, it offers "blinding" to prevent timing attacks, although I suspect that a timing attack would be fairly difficult for a remote opponent to implement in most IM situations. Keys are saved into the user's .pidgin directory. Todo: We should probably have a help button on the key accept dialogs and on the config dialog, telling people what things mean. Why: Because I don't like sending root passwords to people in plain text. Plus, the startup I was with folded, and I had some free time :) Bill Tompkins- Email: bill(at)icarion.com, BillTompkins2 on AIM pidgin-encryption-3.1/pe_ui.h0000644000175100017510000000011411365171052013211 00000000000000#ifndef PE_UI_H #define PE_UI_H void PE_ui_error(const char* err); #endif pidgin-encryption-3.1/po/0000777000175100017510000000000011365216012012441 500000000000000pidgin-encryption-3.1/po/pl.gmo0000644000175100017510000001377611365216011013511 00000000000000Þ•> SüHIc|5Œ*Âí)õ2 R*_ Š˜%½*ã6'T |‡§+¼<è8%)^ˆ¢ ¼Êéù ! ]9 6— Î Ù ð õ ø ( A D G ^ p P )à   + J= @ˆ ·É  Ÿ ± Ä Ú Tï DZvBŠ7Í7 =C@Ÿ+à $&6+]‰ ¸/Ø #8*PP{KÌ7#P&t›#ªÎâú: EBÇ 8>7BCz¾Á!Äæ!øl;‡ÃßöM UXÒ®ž²Íæ :3"+!-,=6>47&)* .5% 2'# ; (90/1<$8  ******* WARNING ******* %s key received for '%s'Accept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Delete KeyDo you want to accept this key?Encryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...The last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnProject-Id-Version: PIDGIN Encryption Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2004-09-21 12:00+0200 Last-Translator: Marek Habersack Language-Team: Marek Habersack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* UWAGA *******otrzymano klucz %s dla '%s'Zaakceptuj i ZapiszAutomatycznie akceptuj klucze bÄ™dÄ…ce w konflicie (niebezpieczne)Szyfruj automatycznie jeÅ›li rozmówca posiada wtyczkÄ™KontoSzyfruj automatycznie jeÅ›li rozmówca posiada wtyczkÄ™Szyfruj automatycznie po otrzymaniu zaszyfrowanej wiadomoÅ›ciNieprawidÅ‚owy rozmiar kluczaNieprawidÅ‚owa sygnatura wiadomoÅ›ci (dÅ‚ugość %d, moduÅ‚ %d) Bill Tompkins, tÅ‚umaczenie Marek HabersackBityRozgÅ‚aszaj możliwość szyfrowaniaOtrzymano NIEZGODNY klucz %s dla '%s'!Otrzymano NIEZGODNY klucz Pidgin-EncryptionAnulujKonfiguracjaOtrzymano niezgodny klucz!Skopiuj odcisk palca do SchowkaNie można wygenerować klucza. Błąd NSS: %d UsuÅ„ KluczCzy chcesz zaakceptować ten klucz?Protokół szyfrowania:Szyfruje konwersacje za pomocÄ… szyfru RSABłąd (2) przy zmianie prawa dostÄ™pu do pliku: %s Nie można zachować klucza.Błąd przy zmianie praw dostÄ™pu do pliku: %s Nie można zachować klucza.Błąd deszyfrowania - żądanie ponownego wysÅ‚ania...Błąd przetwarzania klucza RSANSS Błąd przy próbie utworzenia klucza.Generuj kluczeGenerujÄ™ parÄ™ kluczy RSA dla '%s'Odcisk palca kluczaOdcisk palca klucza:%*sRozmiar klucza:Klucze o rozmiarze <512 bitów sÄ… NIEZWYKLE niebezpieczneKlucze o rozmiarze > 4096 bitów spowodujÄ… duże zaÅ›miecenie wysyÅ‚anych wiadomoÅ›ci powodujÄ…c problemy z transmisjÄ… danychOstatnio wysÅ‚ana wiadomość nie odebrana poprawnie - resetowanieKlucze LokalneTworzenie nowej pary kluczy...NazwaNieWybierz klucz, który ma zostać wygenerowany ponownie!Brak klucza by wysÅ‚ać wiadomość ponownie. Wiadomość utracona.OKOkWiadomość wychodzÄ…ca utracona.Pidgin-EncryptionOtrzymano Klucz Pidgin-EncryptionSzyfrowanie za pomocÄ… szyfru RSA z kluczami do 4096 bitów używajÄ…c biblioteki kryptograficznej Mozilli. Otrzymano wiadomość zaszyfrowanÄ… nieprawidÅ‚owym kluczemÅšwieże Klucze RozmówcówGeneruj Klucz PonownieŻądanie klucza...Ostatnia odebrana wiadomość byÅ‚a zaszyfrowana za pomocÄ… Pidgin-EncryptionKlucz przypisany do konta jest zbyt duży dla tego protokoÅ‚u. WysÅ‚anie niemożliwe.Istnieje możliwość, iż jest to atak typu "poÅ›rednik" lub ktoÅ› podaje siÄ™ za twojego rozmówcÄ™. Należy sprawdzić czy rozmówca rzeczywiÅ›cie wygenerowaÅ‚ niniejszy nowy klucz zanim siÄ™ go zaakceptuje.Może to chwilÄ™ potrwać...Tylko dla tej sesjiZaufane Klucze RozmówcówWyłącz autoszyfrowanieWłącz autoszyfrowaniepidgin-encryption-3.1/po/ChangeLog0000644000175100017510000000000111365171052014122 00000000000000 pidgin-encryption-3.1/po/uk.gmo0000644000175100017510000001730311365216012013504 00000000000000Þ•B,Y< ¡»Ôë5û*1\)d2Ž Á*Î ù %,*R}„‹¥'Ãë ü'+<<h8¥)Þ " < J i y — !¨ ]Ê 6( _ j  † ‰ ¤ (Ä í ð ó   P; )Œ ¶ È × @é ·* â   % ; P Dk °)Í2÷"*ZMb¨ Uvp0çbG{Ã<Û@BYœ ¯1½OïE?&…¬/Æ$ö2€NŠÏgZ7ÂAú<8\• ±Ò9ë5%Ÿ[wûs6ÆÎ;ÓM‚]àå9ê$+6šbƒý($ªÏ|èAe3§#Û.ÿ+.-Z:ˆ*.(<52 / ,:47">1&309#? @)!=A+  'B -%6;$8 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDo you want to accept this key?Encryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...This account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-Encryption 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2006-01-10 09:07+0100 Last-Translator: Roman Sosenko Language-Team: Ukrainian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* УВÐГР******* Отримано %s ключ Ð´Ð»Ñ '%s'Ðеобхідний абÑолютний шлÑхВвеÑти та зберегтиÐвтоматично ввеÑти конфліктний ключ (небезпечно)За відÑутноÑті ключа у файлі ввеÑти ключ автоматично ЕккаунтÐвтоматично кодувати, Ñкщо у контакта Ñ” модульÐвтоматично кодувати, Ñкщо відправлене закодоване повідомленнÑÐеправильний розмір ключаÐеправильний Ð¿Ñ–Ð´Ð¿Ð¸Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ (розмір %d, модуль %d) Білл ТомпкінÑ, переклад Романа СоÑенкаРозмір (біти)ТранÑлювати здатніÑть кодуваннÑОтримано КОÐФЛІКТÐИЙ %s ключ Ð´Ð»Ñ '%s'!Отримано конфліктний ключ Pidgin-EncryptionВідмінитиКонфіг.Отримано конфліктний ключ!Скопіювати відбиток у буфер обміну даннимиÐеможливо Ñтворити ключ. Помилка NSS: %d Створити файли ключаВидалити ключВи хочете ввеÑти цей ключ?Протокол кодуваннÑ:Кодує розмови за методом RSA.Помилка (2) при зміні права доÑтупу до файлу: %s Ðеможливо зберегти ключ.Ошибка при изменении права доÑтупа к файлу: %s ÐевозможноÑть Ñохранить ключ.Помилка при декодуванні, Ð¿Ñ€Ð¾Ñ…Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸ повторно...Помилка при аналізі ключа RSANSS Помилка при Ñпробі ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð°.Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ñ–Ð²Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¸ ключів RSA Ð´Ð»Ñ %sВідбиток ключаВідбиток ключа: %*sРозмір ключа:МіÑце Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° ключаКлючі < 512 біт ДУЖЕ небезпечніКлючі > 4096 біт можуть Ñуттєво збільшувати повідомленнÑ, Ñтворюючи проблеми з передачеюОÑтаннє вихідне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ з помилкою. ПеренаÑтройкаЛокальні ÐºÐ»ÑŽÑ‡Ñ–Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— пари ключів...Ім'ÑÐіФайли ключа на шлÑху не знайденоВиберіть ключ Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ генеруваннÑ!ВідÑутніÑть ключа Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ відправленнÑ. ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ðµ.ОКОКВихідне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ðµ.Pidgin-EncryptionОтримано ключ Pidgin-EncryptionÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° методом RSA з ключами до 4906 біт з викориÑтаннÑм бібліотеки кодів Mozilla NSS. Отримане Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ закодоване з допомогою неправильного ключаКлючі нового контактаСтворити ключ зновуЗапит ключа...Цей ключ занадто великий Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ протоколу. Ðеможливо відправити.Можливо, відбулаÑÑ Ð°Ñ‚Ð°ÐºÐ° "man-in-thе-middle" або хтоÑÑŒ видає Ñебе за вашего контакта. Ви повинні перевірити, чи Ñправді ваш контакт Ñтворив цей ключ перед тим, чк викориÑтовувати його.Це може зайнÑти трохи чаÑу...Лише Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— ÑеÑіїКлючі надійного контактаВимкнути автокодуваннÑУвімкнути автокодуваннÑÐеможливо Ñтворити файли ключаpidgin-encryption-3.1/po/pidgin-encryption.pot0000644000175100017510000001417511365216007016557 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" #: config_ui.c:162 msgid "Generate Keys" msgstr "" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "" #: config_ui.c:180 msgid "OK" msgstr "" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "" #: config_ui.c:203 msgid "Key size:" msgstr "" #: config_ui.c:245 msgid "Cancel" msgstr "" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "" #: config_ui.c:396 msgid "Account" msgstr "" #: config_ui.c:398 msgid "Name" msgstr "" #: config_ui.c:402 msgid "Bits" msgstr "" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "" #: config_ui.c:498 msgid "Config" msgstr "" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "" #: config_ui.c:518 msgid "Keyfile location" msgstr "" #: config_ui.c:525 msgid "Create key files" msgstr "" #: config_ui.c:556 msgid "Regenerate Key" msgstr "" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "" #: config_ui.c:571 msgid "Local Keys" msgstr "" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "" #: config_ui.c:658 msgid "No key files found at path" msgstr "" #: config_ui.c:667 msgid "Absolute path required" msgstr "" #: config_ui.c:678 msgid "Unable to create key files" msgstr "" #: cryptutil.c:132 #, c-format msgid "Invalid Base64 data, length %u\n" msgstr "" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "" #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "" #: encrypt.c:941 msgid "Requesting key..." msgstr "" #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "" #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "" #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "" #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "" #: keys.c:98 msgid "Making new key pair..." msgstr "" #: keys.c:115 msgid "Error trying to make key." msgstr "" #: keys.c:280 msgid "Conflicting Key Received!" msgstr "" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" #: keys.c:484 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" #: keys.c:746 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr "" #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "" #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "" #: state_ui.c:146 msgid "Disable Encryption" msgstr "" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" pidgin-encryption-3.1/po/nl.po0000644000175100017510000002531011365216010013325 00000000000000# Pidgin-encryption po file for Dutch. # Copyright (C) 2005 Menno Jonkers # This file is distributed under the GPL # Menno Jonkers , 2007 # msgid "" msgstr "" "Project-Id-Version: Pidgin-encryption\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2007-10-30 09:43+0100\n" "Last-Translator: Menno Jonkers \n" "Language-Team: Menno Jonkers \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Foutieve sleutellengte" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Sleutels korter dan 512 bits zijn ERG onveilig" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Sleutels langer dan 4096 bits maken\n" "berichten erg lang, waardoor\n" "communicatieproblemen ontstaan" #: config_ui.c:162 msgid "Generate Keys" msgstr "Genereer sleutels" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Geen sleutel gekozen om opnieuw te genereren!" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Versleutelingsprotocol:" #: config_ui.c:203 msgid "Key size:" msgstr "Sleutellengte:" #: config_ui.c:245 msgid "Cancel" msgstr "Annuleren" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Ok" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Verwijder sleutel" #: config_ui.c:396 msgid "Account" msgstr "Account" #: config_ui.c:398 msgid "Name" msgstr "Naam" #: config_ui.c:402 msgid "Bits" msgstr "Bits" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Vingerafdruk sleutel" #: config_ui.c:498 msgid "Config" msgstr "Instellingen" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Accepteer sleutel automatisch als deze nog niet bekend is" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Accepteer strijdige sleutels automatisch (beveiligingsrisico)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Versleutel automatisch als versleuteld bericht ontvangen is" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Adverteer de versleutelingsmogelijkheid" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Versleutel automatisch als contact de plugin heeft" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "Toon sloticoon bij elk bericht" #: config_ui.c:518 msgid "Keyfile location" msgstr "Lokatie sleutelbestand" #: config_ui.c:525 msgid "Create key files" msgstr "Maak sleutelbestanden" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Genereer sleutel opnieuw" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Kopieer vingerafdruk naar klembord" #: config_ui.c:571 msgid "Local Keys" msgstr "Lokale sleutels" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Vertrouwde contactsleutels" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Recente contactsleutels" #: config_ui.c:658 msgid "No key files found at path" msgstr "Geen sleutelbestanden gevonden op pad" #: config_ui.c:667 msgid "Absolute path required" msgstr "Absoluut pad vereist" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Maken sleutelbestanden mislukt" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Ongeldige Base64 gegevens, lengte %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "Deze accountsleutel is te lang voor dit protocol. Kan niet versturen." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Laatst verzonden bericht niet goed ontvangen - wordt herstart" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Ontvangen bericht versleuteld met verkeerde sleutel" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Fout bij ontsleutelen - vraag om opnieuw sturen..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Sleutel wordt opgevraagd..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Geen sleutel om bericht opnieuw te sturen. Bericht verloren." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Uitgaand bericht verloren." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-encryptie" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Versleutelt gesprekken met RSA encryptie." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "RSA-encryptie met sleutels tot 4096 bits, door middel van de Mozilla NSS " "cryptografiefuncties.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Zet auto-versleutelen uit" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Zet auto-versleutelen aan" #: keys.c:98 msgid "Making new key pair..." msgstr "Een nieuw sleutelpaar aan het maken..." #: keys.c:115 msgid "Error trying to make key." msgstr "Fout bij het maken van sleutel." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Strijdige sleutel ontvangen!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Fout bij veranderen toegangsmode van bestand: %s\n" "Kan sleutel niet opslaan." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Fout (2) bij veranderen toegangsmode van bestand: %s\n" "Kan sleutel niet opslaan." #: keys.c:484 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Permissies van sleutelbestand gewijzigd voor: %s\n" "Pidgin-encryptie zal geen sleutels opslaan in een wereld- of groep-" "toegankelijk bestand." #: keys.c:746 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Permissies van sleutelbestand gewijzigd voor: %s\n" "Pidgin-encryptie zal geen sleutels gebruiken uit een wereld- of groep-" "toegankelijk bestand." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Pidgin-encryptie sleutel ontvangen" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s sleutel ontvangen voor '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Vingerafdruk sleutel:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Wilt u deze sleutel accepteren?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Nee" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Accepteer en sla op" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Alleen voor deze sessie" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "STRIJDIGE Pidgin-encryptie sleutel ontvangen" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ***** WAARSCHUWING ***** " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "STRIJDIGE %s sleutel ontvangen voor '%s'!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Dit kan een man-in-the-middle aanval zijn, of\n" "iemand die zich voordoet als uw contact.\n" "Ga bij uw contact na of die deze nieuwe sleutel\n" "heeft gemaakt, voordat u de sleutel vertrouwd." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Bezig met genereren van RSA-sleutelpaar voor %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Dit kan enige tijd duren..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Kon geen sleutel genereren. NSS fout: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Fout bij parsen RSANSS sleutel\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Foutieve handtekening op bericht (len %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "Zet versleutelen aan" #: state_ui.c:146 msgid "Disable Encryption" msgstr "Zet versleutelen uit" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "Het laatst ontvangen bericht was versleuteld met de Pidgin-encryptie plugin" #, fuzzy #~ msgid "Encrypt Outgoing Messages" #~ msgstr "Versleutel uitgaand" #~ msgid "Tx: capable" #~ msgstr "Zd: mogelijk" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "Uw contact lijkt de Pidgin-encryptie plugin te hebben. Maar uw volgende " #~ "uitgaande bericht zal NIET worden gecodeerd door de Pidgin-encryptie " #~ "plugin" #~ msgid "Tx: secure" #~ msgstr "Zd: veilig" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Uw volgende uitgaande bericht zal versleuteld worden door de Pidgin-" #~ "encryptie plugin" #~ msgid "Tx: plain" #~ msgstr "Zd: onbeveiligd" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "" #~ "Uw volgende uitgaande bericht zal NIET versleuteld worden door de Pidgin-" #~ "encryptie plugin" #~ msgid "Rx: secure" #~ msgstr "Ov: veilig" #~ msgid "Rx: plain" #~ msgstr "Ov: onbeveiligd" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Het laatst ontvangen bericht was NIET versleuteld met de Pidgin-encryptie " #~ "plugin" #~ msgid "" #~ "Compiled with '%s', running with '%s'. Pidgin-Encryption will probably " #~ "not run right.\n" #~ msgstr "" #~ "Gecompileerd met '%s', draaiend onder '%s'. Pidgin-encryptie zal " #~ "waarschijnlijk niet goed draaien.\n" #~ msgid "" #~ "Pidgin-Encryption plugin was compiled with a different version of " #~ "Pidgin. You may experience problems." #~ msgstr "" #~ "Pidgin-encryptie plugin is gecompileerd met een andere versie van " #~ "Pidgin. Dit kan problemen veroorzaken." pidgin-encryption-3.1/po/es.po0000644000175100017510000003261711365216007013341 00000000000000# Pidgin-Encryption # Copyright (C) September 2004 # Javier Fernández-Sanguino Peña # # This file is distributed under the same license as the Pidgin package. # # Notas de traducción: # # - Pidgin-Encryption: complemento de Cifrado de Pidgin msgid "" msgstr "" "Project-Id-Version: Pidgin-Encryption\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2004-09-09 20:41+0200\n" "Last-Translator: Javier Fernández-Sanguino \n" "Language-Team: Spanish team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Tamaño de clave erróneo" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Las claves de menos de 512 bits son MUY inseguras" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Las claves de más de 4096 bits pueden\n" "hacer crecer los mensajes de forma excesiva\n" "causando problemas en la transmisión de\n" "los mensajes" #: config_ui.c:162 msgid "Generate Keys" msgstr "Generar par de claves" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "¡No ha seleccionado ninguna clave a regenerar!" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Protocolo de cifrado:" #: config_ui.c:203 msgid "Key size:" msgstr "Tamaño de la clave:" #: config_ui.c:245 msgid "Cancel" msgstr "Cancelar" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Ok" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 #, fuzzy msgid "Delete Key" msgstr "Generar par de claves" #: config_ui.c:396 msgid "Account" msgstr "" #: config_ui.c:398 msgid "Name" msgstr "Nombre" #: config_ui.c:402 msgid "Bits" msgstr "Bits" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Huella de la clave" #: config_ui.c:498 msgid "Config" msgstr "" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Aceptar la clave automáticamente si no hay una clave en el fichero" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "" "Aceptar las claves conflicitvas automáticamente (conlleva un riesgo de " "seguridad)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Cifrar automáticamente si se le envió un mensaje cifrado" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Indicar las capacidades de cifrado" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Cifrar automáticamente si el amigo tiene el complemento" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "" #: config_ui.c:518 msgid "Keyfile location" msgstr "" #: config_ui.c:525 msgid "Create key files" msgstr "" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Regenerar la clave" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Copiar la huella al portapapeles" #: config_ui.c:571 msgid "Local Keys" msgstr "" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "" #: config_ui.c:658 msgid "No key files found at path" msgstr "" #: config_ui.c:667 msgid "Absolute path required" msgstr "" #: config_ui.c:678 msgid "Unable to create key files" msgstr "" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Datos Base64 incorrectos, longitud %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "" "Esta clave de cuenta es muy grande para este protocolo. No se pudo enviar." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "No se recibió correctamente el último mensaje saliente, reiniciando" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Se recibió un mensaje cifrado con una clave incorrecta" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Se produjo un error al descifrar, solicitando un reenvío..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Solicitando la clave..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "" "No existe una clave para reenviar el mensaje. El mensaje se ha perdido." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Mensaje saliente perdido." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Cifrado de Pidgin" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Cifra las conversaciones con cifrado RSA." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "Cifrado RSA con claves de hasta 4096 bits, haciendo uso de la biblioteca " "criptográfica NSS de Mozilla.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Desactivar cifrado automático" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Activar cifrado automático" #: keys.c:98 msgid "Making new key pair..." msgstr "Generando un nuevo par de claves..." #: keys.c:115 msgid "Error trying to make key." msgstr "Se produjo un error al generar la clave." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "¡Se recibió una clave problemática!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Se produjo un error al cambiar los permisos del fichero: %s\n" "No se pudo guardar la clave." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Se produjo un error (2) al cambiar los permismos del fichero: %s\n" "No se pudo guardar la clave." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "El fichero de clave no tiene los permisos adecuados: %s\n" "El complemento de Cifrado de Pidgin no guardará claves en un fichero que " "pueda ser accedido por el grupo o por todo el mundo." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "El fichero de clave no tiene los permisos adecuados: %s\n" "El complemento de Cifrado de Pidgin no guardará claves en un fichero que " "pueda ser accedido por el grupo o por todo el mundo." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Se recibió un clave para Cifrado de Pidgin" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "Se recibió una clave %s para «%s»" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Huella de clave:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "¿Acepta esta clave?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "No" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Aceptar y guardar" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Sólo por esta sesión" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "Se recibió una clave Cifrado de Pidgin ERRÓNEA" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******** AVISO ********" #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "¡Se recibió la clave %s ERRONEA para «%s»!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Podría tratarse de una ataque de tercero interpuesto, \n" "o alguien se está haciendo pasar por su amigo.\n" "Debería contactar con su amigo para ver si ha generado\n" "esta nueva clave antes de aceptarla." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Generando un par de claves RSA para %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Esto tardará un rato..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "No se pudo generar la clave. Se produjo un error NSS: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Se produjo un error al analizar la clave RSANSS\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "La firma del mensaje no es correcta (longitud %d, mód %d)\n" #: state_ui.c:106 state_ui.c:126 #, fuzzy msgid "Enable Encryption" msgstr "Cifrado de Pidgin" #: state_ui.c:146 #, fuzzy msgid "Disable Encryption" msgstr "Cifrado de Pidgin" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "El último mensaje que recibió estaba cifrado con el complemento de Cifrado " "de Pidgin" #, fuzzy #~ msgid "Encrypt Outgoing Messages" #~ msgstr "Mensaje saliente perdido." #~ msgid "Tx: capable" #~ msgstr "Tx: capaz" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "Parece que su amigo no tiene el complemento de Cifrado de Pidgin. Por " #~ "eso, el proximo mensaje saliente que envíe NO estará cifrado por el " #~ "complemento de Cifrado de Pidgin." #~ msgid "Tx: secure" #~ msgstr "Tx: seguro" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Su próximo mensaje saliente será cifrado con el complemento de Cifrado de " #~ "Pidgin" #~ msgid "Tx: plain" #~ msgstr "Tx: en claro" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "" #~ "Su siguiente mensaje saliente NO será cifrado por el complemento de " #~ "Cifrado de Pidgin" #~ msgid "Rx: secure" #~ msgstr "Rx: seguro" #~ msgid "Rx: plain" #~ msgstr "Rx: en claro" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "El último mensaje que recibió NO estaba cifrado por el complemento de " #~ "Cifrado de Pidgin" #~ msgid "" #~ "Compiled with '%s', running with '%s'. Pidgin-Encryption will probably " #~ "not run right.\n" #~ msgstr "" #~ "Compilado con «%s», ejecutándose con «%s». Es posible que el complemento " #~ "Cifrado de Pidgin no funcione correctamente.\n" #~ msgid "" #~ "Pidgin-Encryption plugin was compiled with a different version of " #~ "Pidgin. You may experience problems." #~ msgstr "" #~ "Se compiló el complemento de Cifrado de Pidgin con una versión de Pidgin " #~ "distinta. Puede que tenga problemas." #~ msgid "Currently cached keys" #~ msgstr "Claves almacenadas actualmente en caché" #~ msgid "Key Type" #~ msgstr "Tipo de clave" #~ msgid "Protocol" #~ msgstr "Protocolo" #~ msgid "private" #~ msgstr "privada" #~ msgid "public" #~ msgstr "pública" #~ msgid "Error parsing RSANSS nonce/key\n" #~ msgstr "Se produjo un error al analizar la clave/nonce RSANSS\n" #~ msgid "Error decoding Base64 RSANSS Public key\n" #~ msgstr "" #~ "Se produjo un error al decodificar la clave pública RSANSS en Base64\n" #~ msgid "Error Base64 decoding RSANSS Public key\n" #~ msgstr "" #~ "Se produjo un error al decodificar la clave pública RSANSS en Base64\n" #~ msgid "Error decoding RSANSS Public key\n" #~ msgstr "Se produjo un error al decodificar la clave pública RSANSS\n" #~ msgid "Error parsing RSANSS Private key\n" #~ msgstr "Se produjo un error al analizar la clave privada RSANSS\n" #~ msgid "Error parsing Base64 in RSANSS Private Key\n" #~ msgstr "Se produjo un error al analizar la clave privada RSANSS en Base64\n" #~ msgid "Error creating symmetric key: unable to load private key\n" #~ msgstr "" #~ "Se produjo un error al crear la clave simétrica: no se pudo cargar la " #~ "clave privada\n" #~ msgid "Error decoding RSANSS Private key\n" #~ msgstr "Se produjo un error al decodificar la clave privada RSANSS\n" #~ msgid "No Nonce in message\n" #~ msgstr "No hay un «Nonce» en el mensaje\n" #~ msgid "Bad Nonce in message\n" #~ msgstr "El «Nonce» del mensaje no es correcto\n" #~ msgid "Can't load the NSS plugin\n" #~ msgstr "No se puede cargar el complemento NSS\n" #~ msgid "" #~ "Pidgin was not compiled with the NSS plugin enabled. Pidgin-Encryption " #~ "requires the NSS plugin to function." #~ msgstr "" #~ "No se compiló Pidgin con el complemento NSS. El complemento de Cifrado de " #~ "Pidgin necesita del complemento NSS para funcionar." #~ msgid "PK11_PubDecryptRaw Failed\n" #~ msgstr "Falló la función «PK11_PubDecryptRaw»\n" #~ msgid "Not a multiple of block len: %d %d %d\n" #~ msgstr "No se trata de un múltiplo de la longitud de bloque: %d %d %d\n" #~ msgid "PubDecryptRaw failed %d\n" #~ msgstr "Falló la función «PubDecryptRaw» %d\n" #~ msgid "OAEP unpadding failed\n" #~ msgstr "Fallo «OAEP unpadding»\n" #~ msgid "Bad msg_len in Auth\n" #~ msgstr "«msg_len» corrupto en «Auth»\n" #~ msgid "PK11_PubEncryptRaw Failed\n" #~ msgstr "Falló la función «PK11_PubEncryptRaw»\n" pidgin-encryption-3.1/po/Makefile.in.in0000644000175100017510000001213411365171217015037 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper # # This file file be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. PACKAGE = @PACKAGE@ VERSION = @VERSION@ # These two variables depend on the location of this directory. subdir = po top_builddir = .. SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ localedir = $(datadir)/locale gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac` CC = @CC@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ MSGMERGE = msgmerge DEFS = @DEFS@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ INCLUDES = -I.. -I$(top_srcdir)/intl COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) POFILES = @POFILES@ GMOFILES = @GMOFILES@ DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ $(POFILES) $(GMOFILES) POTFILES = \ CATALOGS = @CATALOGS@ .SUFFIXES: .SUFFIXES: .c .o .po .pox .gmo .mo .c.o: $(COMPILE) $< .po.pox: $(MAKE) $(PACKAGE).pot $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) --statistics -o $$file $< all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: # Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. $(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ --add-comments --keyword=_ --keyword=N_ \ --files-from=$(srcdir)/POTFILES.in \ && test ! -f $(PACKAGE).po \ || ( rm -f $(srcdir)/$(PACKAGE).pot \ && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext"; then \ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi install-data-no: all install-data-yes: all $(mkinstalldirs) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkinstalldirs) $(DESTDIR)$$dir; \ if test -r $$cat; then \ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ echo "installing $(srcdir)/$$cat as" \ "$(DESTDIR)$$dir/$(PACKAGE).mo"; \ fi; \ done # Define this as empty until I found a useful application. installcheck: uninstall: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ done if test "$(PACKAGE)" = "gettext"; then \ rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi check: all dvi info tags TAGS ID: mostlyclean: rm -f core core.* *.pox $(PACKAGE).po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: $(DISTFILES) dists="$(DISTFILES)"; \ for file in $$dists; do \ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ cp -p $$dir/$$file $(distdir); \ done update-po: Makefile $(MAKE) $(PACKAGE).pot if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \ cd $(srcdir); \ catalogs='$(GMOFILES)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ echo "$$lang:"; \ if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \ mv -f $$lang.new.po $$lang.po; \ else \ echo "msgmerge for $$cat failed!"; \ rm -f $$lang.new.po; \ fi; \ done $(MAKE) update-gmo update-gmo: Makefile $(GMOFILES) @: Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pidgin-encryption-3.1/po/pt_BR.po0000644000175100017510000002540111365216010013723 00000000000000# Pidgin-encryption po file for Portuguese. # Copyright (C) 2004 Aury Fink Filho # This file is distributed under the GPL license. # Aury Fink Filho , october 2004. # msgid "" msgstr "" "Project-Id-Version: Pidgin-Encryption\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2005-12-21 12:23-0300\n" "Last-Translator: Aury Fink Filho \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Tamanho de chave incorreto" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Chaves menores que 512 bits são muito inseguras" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Chaves maiores que 4096 bits deixam\n" "as mensagens muito grandes, gerando problemas\n" "com a sua transmissão" #: config_ui.c:162 msgid "Generate Keys" msgstr "Gerar chaves" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Nenhuma chave selecionada para ser regerada!" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Protocolo de encriptação:" #: config_ui.c:203 msgid "Key size:" msgstr "Tamanho da chave:" #: config_ui.c:245 msgid "Cancel" msgstr "Cancelar" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Ok" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Excluir Chave" #: config_ui.c:396 msgid "Account" msgstr "Conta" #: config_ui.c:398 msgid "Name" msgstr "Nome" #: config_ui.c:402 msgid "Bits" msgstr "Bits" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Fingerprint da chave" #: config_ui.c:498 msgid "Config" msgstr "Configuração" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Aceitar a chave automaticamente se não existir a mesma em arquivo" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Aceitar chaves em conflito automaticamente (risco de segurança)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Encriptar automaticamente se uma mensagem for enviada encriptografada" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Capacidade de encriptação por broadcast" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Encriptar automaticamente se seu contato possuir o plugin" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "" #: config_ui.c:518 msgid "Keyfile location" msgstr "Localização do arquivo de chave" #: config_ui.c:525 msgid "Create key files" msgstr "Criar arquivos de chave" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Regerar chave" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Copiar Fingerprint para a área de transferência" #: config_ui.c:571 msgid "Local Keys" msgstr "Chaves Locais" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Chaves de Contatos Confiáveis" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Chaves de Contatos Recentes" #: config_ui.c:658 msgid "No key files found at path" msgstr "Nenhum arquivo de chave encontrado no caminho" #: config_ui.c:667 msgid "Absolute path required" msgstr "É necessário o caminho absoluto" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Não foi possível criar os arquivos de chave" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Dados em Base64 inválidos, tamanho %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "" "Essa chave é grande demais para este protocolo. Não foi possível enviar." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "A última mensagem enviada não foi recebida corretamente- reiniciando" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Mensagem encriptada recebida com a chave errada" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Erro na decriptação- pedindo reenvio..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Requisitando chave..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Não há chave para reenviar a mensagem. Mensagem perdida." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Mensagem enviada perdida." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Encripta conversas com encriptação RSA." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "Encriptação RSA com chaves até 4096 bits, usando a biblioteca de " "criptografia Mozilla NSS.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, traduzido por Aury Fink Filho" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Desligar Auto-Encriptação" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Ligar Auto-Encriptação" #: keys.c:98 msgid "Making new key pair..." msgstr "Gerando novo par de chaves..." #: keys.c:115 msgid "Error trying to make key." msgstr "Erro tentando gerar chave." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Conflito em chave recebida!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Erro mudando modo de acesso para o arquivo: %s\n" "Não é possível salvar a chave." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Erro (2) mudando modo de acesso para o arquivo: %s\n" "Não é possível salvar a chave." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Permissões incorretas no arquivo de chaves: %s\n" "Pidgin-Encryption não irá salvar chaves em um arquivo acessível por grupos " "ou globalmente." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Permissões incorretas no arquivo de chaves: %s\n" "Pidgin-Encryption não irá salvar chaves em um arquivo acessível por grupos " "ou globalmente." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Pidgin-Encryption Chave Recebida" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s chave recebida para '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Fingerprint da chave:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Você deseja aceitar essa chave?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Não" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Aceitar e Salvar" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Essa sessão apenas" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "CONFLITO em chave recebida pelo Pidgin-Encryption" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* AVISO ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "CONFLITO %s chave recebida para '%s'" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Isso pode ser um ataque man-in-the-middle, ou\n" "alguém está tentando se passar por seu contato.\n" "Você deve checar com seu contato para ver se ele\n" "gerou essa nova chave antes de você confiar nele." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Gerando par de chaves RSA para %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Isso pode demorar um pouco..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Não foi possível gerar a chave. Erro NSS: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Erro analizando chave RSANSS\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Assinatura inválida na mensagem (tam %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 #, fuzzy msgid "Enable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:146 #, fuzzy msgid "Disable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "A última mensagem recebida foi encriptada com o plugin do Pidgin-Encryption" #~ msgid "Encrypt Outgoing" #~ msgstr "Enviando encriptação" #~ msgid "Tx: capable" #~ msgstr "Tx: apto" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "Seu contato aparenta ter o plugin do Pidgin-Encryption. Mesmo assim, sua " #~ "próxima mensagem enviada NÃO será encriptada pelo plugin do Pidgin-" #~ "Encryption" #~ msgid "Tx: secure" #~ msgstr "Tx: seguro" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Sua próxima mensagem enviada será encriptada pelo plugin do Pidgin-" #~ "Encryption" #~ msgid "Tx: plain" #~ msgstr "Tx: limpo" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "" #~ "Sua próxima mensagem enviada NÃO será encriptada pelo plugin do Pidgin-" #~ "Encryption" #~ msgid "Rx: secure" #~ msgstr "Rx: seguro" #~ msgid "Rx: plain" #~ msgstr "Rx: limpo" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "A última mensagem recebida NÃO foi encriptada com o plugin do Pidgin-" #~ "Encryption" #~ msgid "" #~ "Compiled with '%s', running with '%s'. Pidgin-Encryption will probably " #~ "not run right.\n" #~ msgstr "" #~ "Compilado com '%s', rodando com '%s'. Pidgin-Encryption provavelmente não " #~ "rodará direito.\n" #~ msgid "" #~ "Pidgin-Encryption plugin was compiled with a different version of " #~ "Pidgin. You may experience problems." #~ msgstr "" #~ "Plugin do Pidgin-Encryption foi compilado com uma versão diferente do " #~ "Pidgin. Você poderá ter problemas." pidgin-encryption-3.1/po/POTFILES.in0000644000175100017510000000024711365171052014141 00000000000000config_ui.c cryptproto.c cryptutil.c encrypt.c pe_blist.c pe_ui.c gpg.c keys.c keys_ui.c nonce.c nss_mgf1.c nss_oaep.c nss_pss.c prefs.c rsa_nss.c state.c state_ui.c pidgin-encryption-3.1/po/cs.gmo0000644000175100017510000001521611365216011013472 00000000000000Þ•FLa|4K5[*‘¼)Ä2î !*. Ygl%Œ*²Ýäë'#K \gzš¬+Á<í8* )c  § Á Ï î þ   !- ]O 6­ ä ï    ) (I r u x  ¡ PÀ ) ; M \ $n J“ @Þ · × õ 0Ež`ÿ7UAi6«â;é9%_.x&§Î Õ'ö,K S_{&šÁ Üê4-JXxTÑ>&(e(Ž·$É îü);aeJÇ"$GN2Q4„G¹' 9\Z2·ê32JfL±ÚþÙô!!)!K m?F &=AC 6"<:/!> .#%4D8)92B5E(7+@;,'- $31 *0 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: cs Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2006-02-27 13:27+0100 Last-Translator: LuboÅ¡ StanÄ›k Language-Team: ÄeÅ¡tina MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.11.1 Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; ******* VAROVÃNà ******* KlÃ­Ä %s pÅ™ijat pro '%s'Vyžaduje se absolutní cestaPÅ™ijmout a uložitPÅ™ijmout konfliktní klíÄe automaticky (bezpeÄnostní riziko)PÅ™ijmout klÃ­Ä automaticky, není-li žádný klíÄÚÄetAutomaticky Å¡ifrovat, má-li kamarád Å¡ifrovací doplnÄ›kAutomaticky Å¡ifrovat pÅ™i odeslání Å¡ifrované zprávyNeplatná délka klíÄeChybný podpis zprávy (délka %d, modulo %d) Bill Tompkins, pÅ™eklad LuboÅ¡ StanÄ›kBitů:Oznamovat schopnost Å¡ifrováníKONFLIKTNà klÃ­Ä %s pÅ™ijat pro '%s'!PÅ™ijat KONFLIKTNà klÃ­Ä Pidgin-EncryptionZruÅ¡itKonfiguracePÅ™ijat konfliktní klíÄ!Zkopírovat otisk do schránkyNelze vytvoÅ™it klíÄ. Chyba NSS: %d VytvoÅ™it soubory klíÄůSmazat klíÄZakázat Å¡ifrováníChcete pÅ™ijmout tento klíÄ?Povolit Å¡ifrováníŠifrovací protokol:Å ifruje konverzaci pomocí Å¡ifrování RSA.Chyba (2) pÅ™i zmÄ›nÄ› přístupových oprávnÄ›ní pro soubor: %s Nelze uložit klíÄ.Chyba pÅ™i zmÄ›nÄ› přístupových oprávnÄ›ní pro soubor: %s Nelze uložit klíÄ.Chyba pÅ™i deÅ¡ifrování, žádám o opÄ›tovné odeslání...Chyba pÅ™i dekódování klíÄe RSANSS Chyba pÅ™i pokusu o vytvoÅ™ení klíÄe.VytvoÅ™it klíÄeVytvářím pár klíÄů RSA pro %sOtisk klíÄeOtisk klíÄe:%*sDélka klíÄe:UmístÄ›ní souboru klíÄůKlíÄe < 512 bitů jsou MÃLO bezpeÄnéKlíÄe > 4096 bitů neúnosnÄ› zvÄ›tÅ¡ují zprávy, což způsobuje problémy s pÅ™enosem zprávPoslední odchozí zpráva nebyla pÅ™ijata správnÄ›, obnovuji konfiguraciLokální klíÄeVytvářím nový pár klíÄů...NázevNeŽádné soubory klíÄů nebyly nalezeny v cestÄ›Nezvolen žádný klÃ­Ä k opÄ›tovnému vytvoÅ™ení!Chybí klÃ­Ä pro opÄ›tovné odeslání zprávy. Zpráva byla ztracena.OKOkOdchozí zpráva byla ztracena.Pidgin-EncryptionPÅ™ijat klÃ­Ä Pidgin-EncryptionÅ ifrování RSA s klíÄi až do 4096 bitů s použitím Å¡ifrovací knihovny Mozilla NSS. PÅ™ijatá zpráva je Å¡ifrována chybným klíÄemPoslední klíÄe kamarádůZnovu vytvoÅ™it klíÄPožaduji klíÄ...Zobrazit ikonu zámku pro každou řádku rozhovoruPoslední pÅ™ijatá zpráva nebyla Å¡ifrována doplňkem Pidgin-EncryptionTento klÃ­Ä ÃºÄtu je pro tento protokol příliÅ¡ starý. Nelze odesílat.Mohlo by jít o útok typu ÄlovÄ›k-uprostÅ™ed nebo by se mohl nÄ›kdo vydávat za vaÅ¡eho kamaráda. MÄ›li byste ověřit u vaÅ¡eho kamaráda, zda opravdu vytvoÅ™il tento nový klÃ­Ä dříve, než mu zaÄnete věřit.To může chvilku trvat...Pouze toto sezeníDůvÄ›ryhodné klíÄe kamarádůVypnout automatické Å¡ifrováníZapnout automatické Å¡ifrováníNelze vytvoÅ™it soubory klíÄůpidgin-encryption-3.1/po/tr.gmo0000644000175100017510000001476211365216012013520 00000000000000Þ•FLa|4K5[*‘¼)Ä2î !*. Ygl%Œ*²Ýäë'#K \gzš¬+Á<í8* )c  § Á Ï î þ   !- ]O 6­ ä ï    ) (I r u x  ¡ PÀ ) ; M \ $n J“ @Þ · × õ 0E@`¡ ¹ÚêBý.@o:u=°î' #1U$\+.­Üãò(*S o})‘»Õ*ìSNk*º+å, >)Lvˆž±0Àbñ:T% ÆÉ'Ð)ø<"_ek‹$jÂ.-\m„1™GËEêYDb yš¶!Ð?F &=AC 6"<:/!> .#%4D8)92B5E(7+@;,'- $31 *0 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-Encryption 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2006-02-27 15:18+0200 Last-Translator: Ekrem Erdem Language-Team: Turkish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* UYARI ******* '%s' için %s anahtarı alındıTam yol gerekliKabul et ve KaydetÇakışan anahtarları otomatik olarak kabul et (güvenlik riski)Dosyada anahtar yoksa otomatik olarak kabul etHesapEÄŸer arkadaşın eklentisi varsa otomatik olarak ÅŸifreleÅžifreli bir mesaj gönderildiÄŸinde otomatik olarak ÅŸifreleYanlış anahtar uzunluÄŸuMesajda yanlış imza (len %d, mod %d) Bill Tompkins, çeviren Ekrem ErdemBitlerTümegönderim ÅŸifreleme kabiliyeti'%s' için ÇAKIÅžAN %s anahtarı alındı!ÇAKIÅžAN Pidgin-Åžifreleme Anahtarı AlındıİptalKonfigürasyonÇakışan Anahtar Alındı!Parmakizini Panoya KopyalaAnahtar yaratılamadı. NSS Hatası: %d Anahtar dosyalarını yaratAnahtarı SilÅžifrelemeyi DurdurBu anahtarı kabul etmek istiyor musunuz?Åžifrelemeyi AktifleÅŸtirÅžifreleme protokolü:Sohbetleri RSA algoritması ile ÅŸifreler.%s dosyası için eriÅŸim modu deÄŸiÅŸtirilirken hata (2) : Anahtar kaydedilemiyor.%s dosyası için eriÅŸim modu deÄŸiÅŸtirilirken hata: Anahtar kaydedilemiyor.Åžifre çözmede hata- tekrar isteniyor...RSANSS anahtarı ayrıştırılırken hata Anahtar yaratılmaya çalışılırken hata.Anahtar yarat%s için RSA Anahtar Çifti YaratılıyorAnahtar ParmakiziAnahtar Parmakizi:%*sAnahtar uzunluÄŸu:Anahtar konumu512 bitten küçük anahtarlar ÇOK güvensizdir4096 bitten büyük anahtarlar mesajı oldukça fazla ÅŸiÅŸirir, mesaj iletiminde problem yaratırSon gönderilen mesaj tam alınamadı- tekrar ayarlanıyorYerel AnahtarlarYeni anahtar çifti oluÅŸturuluyor...AdHayırBelirtilen konumda anahtar dosyası yokTekrar yaratmak için anahtar seçilmedi!Mesajı tekrar göndermek için anahtar yok. Mesaj kayboldu.TAMAMTamamGönderdiÄŸiniz mesaj kayboldu.Pidgin-ÅžifrelemePidgin-Åžifreleme Anahtarı AlındıRSA, Mozilla NSS kripto kütüphanesini kullanarak 4096 bite kadar çıkan anahtarlarla ÅŸifreleme yapar. Alınan mesaj yanlış anahtarla ÅŸifrelenmiÅŸAktif AnahtarlarAnahtarı Tekrar YaratAnahtar isteniyor...Kilit ikonunu sohbetin her satırı için gösterAlınan son mesaj Pidgin-Åžifreleme eklentisi tarafından ÅŸifrelenmiÅŸBu hesabın anahtarı bu protokol için çok büyük. Gönderilemedi.Bu bir man-in-the-middle saldırısı olabilir ya da birisi arkadaşınız olduÄŸunu iddia ediyor olabilir. Bu anahtara güvenmeden önce arkadaşınızla birlikte bu yeni anahtarı onun yaratıp yaratmadığını kontrol etmelisiniz.Bu iÅŸlem biraz sürebilir...Sadece bu oturum içinGüvenilir ArkadaÅŸ AnahtarlarıOtomatik-Åžifrelemeyi KapatOtomatik-Åžifrelemeyi AçAnahtar dosyaları yaratılamadıpidgin-encryption-3.1/po/it.po0000644000175100017510000002571111365216010013335 00000000000000# Italian translation of Pidgin-Encryption # Copyright (C) 2004-2006 Giacomo Succi # This file is distributed under the same license as the Pidgin-Encryption package. # Giacomo Succi , 2006. # msgid "" msgstr "" "Project-Id-Version: Pidgin-Encryption 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2006-03-01 15:53+0100\n" "Last-Translator: Giacomo Succi \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Dimensione della chiave sbagliato" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Le chiavi < 512 sono MOLTO insicure" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Le chiavi > 4096 bits possono causare rigonfiamenti\n" "estremi dei messaggi, che possono causare problemi\n" "con l'invio dei messaggi stessi" #: config_ui.c:162 msgid "Generate Keys" msgstr "Genera le Chiavi" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Nessuna chiave da rigenerare selzionata!" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Protocollo crittato:" #: config_ui.c:203 msgid "Key size:" msgstr "Dimensione della chiave:" #: config_ui.c:245 msgid "Cancel" msgstr "Annulla" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Ok" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Rimuovi la Chiave" #: config_ui.c:396 msgid "Account" msgstr "Account" #: config_ui.c:398 msgid "Name" msgstr "Nome" #: config_ui.c:402 msgid "Bits" msgstr "Bits" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Fingerprint della chiave" #: config_ui.c:498 msgid "Config" msgstr "Configura" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Accetta la chiave automaticamente se non ci sono chiavi nel file" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "" "Accetta le chiavi in conflitto automaticamente (rischio per la sicurezza)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Critta automaticamente se e' stato inviato un messaggio crittografato" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Possibilita' di crittografia in Broadcast" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Critta automaticamente se il contatto possiede il plug-in" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "Mostra l'icona del lucchetto per ogni riga di chat" #: config_ui.c:518 msgid "Keyfile location" msgstr "Locazione dei File di Chiave" #: config_ui.c:525 msgid "Create key files" msgstr "Crea Files di Chiave" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Rigenera la Chiave" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Copia il Fingerprint negli appunti" #: config_ui.c:571 msgid "Local Keys" msgstr "Chiavi Locali" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Chiavi dei Contatti Cestinate" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Chiavi Recenti dei Contatti" #: config_ui.c:658 msgid "No key files found at path" msgstr "Nessuna chiave trovata nel percorso specificato" #: config_ui.c:667 msgid "Absolute path required" msgstr "Percorso Assoluto richiesto" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Non sono riuscito a crare i files delle chiavi" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Dati a Base64 errati, lunghezza %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "" "La chiave di questo account per questo protocollo e' troppo grande. " "Impossibile inviarla." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "" "L'ultimo messaggio in uscita non e' stato ricevuto correttamente- reset del " "messaggio" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Ricevuto un messaggio crittato con una chiave errata" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Errore nella decrittazione- richiesta di reinvio..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Richiesta della chiave..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Nessuna chiave per rinviare il messaggio. Messaggio perduto." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Messaggio in uscita perduto." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Conversazione crittata con codifica RSA." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "Crittazione RSA con chiavi fino a 4096 bits, utilizzata la libreria NSS " "crypto di Mozilla.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Disabilita l'autocrittazione" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Abilita l'autocrittazione" #: keys.c:98 msgid "Making new key pair..." msgstr "Creazione di un nuovo paio di chiavi..." #: keys.c:115 msgid "Error trying to make key." msgstr "Errore durante la creazione della chiave." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Chiave Conflittuosa Ricevuta!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Errore nel cambiamento del modo di accesso al file: %s\n" "Impossibile salvare la chiave." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Errore (2) nel cambiamento del modo di accesso al file: %s\n" "Impossibile salvare la chiave." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Permessi sbagliati per il file: %s\n" "Pidgin-Encryption non salvera' le chiavi nel file accessibile globalmente o " "nel file del accessibile gruppo." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Permessi sbagliati per il file: %s\n" "Pidgin-Encryption non salvera' le chiavi nel file accessibile globalmente o " "nel file del accessibile gruppo." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Chiave per Pidgin-Encryption Ricevuta" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s ricevuta una chiave per '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Fingerprint della Chiave:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Vuoi accettare la chiave?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "No" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Accetta e Salva" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Solo per questa sessione" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "Chiave per Pidgin-Encryption CONFLITTUOSA Ricevuta" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* ATTENZIONE ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "La chiave %s ricevuta per '%s' e' in CONFLITTO!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Questo potrebbe essere un'attacco man-in-the-middle, oppure\n" "potrebbe essere qualcuno che impersonifica il tuo contatto.\n" "Devi controllare col tuo contatto se ha generato la nuova chiave\n" "prima di autorizzarla." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Generazione di un Paio di Chiavi RSA per %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Questa operazione potrebbe durare un bel po'..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Impossibile generare la chiave. Errore NSS: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Errore nel parsing RSANSS della chiave\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Firma errata nel messaggio (lun %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "Abilita Crittazione" #: state_ui.c:146 msgid "Disable Encryption" msgstr "Disabilita Crittazione" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "L'ultimo messaggio ricevuto e' stato crittato con Pidgin-Encryption" #~ msgid "Encrypt Outgoing" #~ msgstr "Critta i Messaggi in Uscita" #~ msgid "Tx: capable" #~ msgstr "Tx: abilitabile" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "Il tuo contatto non appare in possesso di Pidgin-Encryption. Il tuo " #~ "prossimo messaggio in uscita NON verra' crittato da Pidgin-Encryption" #~ msgid "Tx: secure" #~ msgstr "TX: sicuro" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Il tuo prossimo messaggio in uscita verra' crittato da Pidgin-Encryption" #~ msgid "Tx: plain" #~ msgstr "Tx: chiaro" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "" #~ "Il tuo prossimo messaggio in uscita NON verra' crittato da Pidgin-" #~ "Encryption" #~ msgid "Rx: secure" #~ msgstr "Rx: sicuro" #~ msgid "Rx: plain" #~ msgstr "Rx: chiaro" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "L'ultimo messaggio ricevuto NON e' stato crittato con Pidgin-Encryption" #~ msgid "" #~ "Compiled with '%s', running with '%s'. Pidgin-Encryption will probably " #~ "not run right.\n" #~ msgstr "" #~ "Compilato con '%s', in esecuzione con '%s'. Pidgin-Encryption " #~ "probabilmente non funzionera' correttamente.\n" #~ msgid "" #~ "Pidgin-Encryption plugin was compiled with a different version of " #~ "Pidgin. You may experience problems." #~ msgstr "" #~ "Il plug-in di Pidgin-Encryption e' stato compilato con una versione di " #~ "Pidgin diversa.Potreste avere dei problemi." pidgin-encryption-3.1/po/cs.po0000644000175100017510000002254411365216007013335 00000000000000# translation of cs.po to ÄeÅ¡tina # LuboÅ¡ StanÄ›k , 2005, 2006. # Czech translations for Pidgin encryption plugin package # Copyright (C) 2004 The Pidgin encryption plugin's copyright holder # This file is distributed under the same license as the Pidgin encryption plugin package. msgid "" msgstr "" "Project-Id-Version: cs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2006-02-27 13:27+0100\n" "Last-Translator: LuboÅ¡ StanÄ›k \n" "Language-Team: ÄeÅ¡tina \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.1\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Neplatná délka klíÄe" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "KlíÄe < 512 bitů jsou MÃLO bezpeÄné" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "KlíÄe > 4096 bitů neúnosnÄ› zvÄ›tÅ¡ují\n" "zprávy, což způsobuje problémy\n" "s pÅ™enosem zpráv" #: config_ui.c:162 msgid "Generate Keys" msgstr "VytvoÅ™it klíÄe" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Nezvolen žádný klÃ­Ä k opÄ›tovnému vytvoÅ™ení!" #: config_ui.c:180 msgid "OK" msgstr "OK" # First column # First column # First column #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Å ifrovací protokol:" #: config_ui.c:203 msgid "Key size:" msgstr "Délka klíÄe:" #: config_ui.c:245 msgid "Cancel" msgstr "ZruÅ¡it" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Ok" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Smazat klíÄ" #: config_ui.c:396 msgid "Account" msgstr "ÚÄet" #: config_ui.c:398 msgid "Name" msgstr "Název" #: config_ui.c:402 msgid "Bits" msgstr "Bitů:" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Otisk klíÄe" #: config_ui.c:498 msgid "Config" msgstr "Konfigurace" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "PÅ™ijmout klÃ­Ä automaticky, není-li žádný klíÄ" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "PÅ™ijmout konfliktní klíÄe automaticky (bezpeÄnostní riziko)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Automaticky Å¡ifrovat pÅ™i odeslání Å¡ifrované zprávy" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Oznamovat schopnost Å¡ifrování" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Automaticky Å¡ifrovat, má-li kamarád Å¡ifrovací doplnÄ›k" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "Zobrazit ikonu zámku pro každou řádku rozhovoru" #: config_ui.c:518 msgid "Keyfile location" msgstr "UmístÄ›ní souboru klíÄů" #: config_ui.c:525 msgid "Create key files" msgstr "VytvoÅ™it soubory klíÄů" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Znovu vytvoÅ™it klíÄ" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Zkopírovat otisk do schránky" #: config_ui.c:571 msgid "Local Keys" msgstr "Lokální klíÄe" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "DůvÄ›ryhodné klíÄe kamarádů" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Poslední klíÄe kamarádů" #: config_ui.c:658 msgid "No key files found at path" msgstr "Žádné soubory klíÄů nebyly nalezeny v cestÄ›" #: config_ui.c:667 msgid "Absolute path required" msgstr "Vyžaduje se absolutní cesta" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Nelze vytvoÅ™it soubory klíÄů" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Neplatná data Base64, délka %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "Tento klÃ­Ä ÃºÄtu je pro tento protokol příliÅ¡ starý. Nelze odesílat." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Poslední odchozí zpráva nebyla pÅ™ijata správnÄ›, obnovuji konfiguraci" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "PÅ™ijatá zpráva je Å¡ifrována chybným klíÄem" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Chyba pÅ™i deÅ¡ifrování, žádám o opÄ›tovné odeslání..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Požaduji klíÄ..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Chybí klÃ­Ä pro opÄ›tovné odeslání zprávy. Zpráva byla ztracena." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Odchozí zpráva byla ztracena." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Å ifruje konverzaci pomocí Å¡ifrování RSA." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "Å ifrování RSA s klíÄi až do 4096 bitů s použitím Å¡ifrovací knihovny Mozilla " "NSS.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, pÅ™eklad LuboÅ¡ StanÄ›k" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Vypnout automatické Å¡ifrování" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Zapnout automatické Å¡ifrování" #: keys.c:98 msgid "Making new key pair..." msgstr "Vytvářím nový pár klíÄů..." #: keys.c:115 msgid "Error trying to make key." msgstr "Chyba pÅ™i pokusu o vytvoÅ™ení klíÄe." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "PÅ™ijat konfliktní klíÄ!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Chyba pÅ™i zmÄ›nÄ› přístupových oprávnÄ›ní pro soubor: %s\n" "Nelze uložit klíÄ." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Chyba (2) pÅ™i zmÄ›nÄ› přístupových oprávnÄ›ní pro soubor: %s\n" "Nelze uložit klíÄ." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Neplatná oprávnÄ›ní pro soubor klíÄů: %s\n" "Pidgin-Encryption nebude ukládat klíÄe do vÅ¡emi nebo skupinou přístupného " "souboru." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Neplatná oprávnÄ›ní pro soubor klíÄů: %s\n" "Pidgin-Encryption nebude ukládat klíÄe do vÅ¡emi nebo skupinou přístupného " "souboru." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "PÅ™ijat klÃ­Ä Pidgin-Encryption" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "KlÃ­Ä %s pÅ™ijat pro '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Otisk klíÄe:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Chcete pÅ™ijmout tento klíÄ?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Ne" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "PÅ™ijmout a uložit" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Pouze toto sezení" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "PÅ™ijat KONFLIKTNà klÃ­Ä Pidgin-Encryption" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* VAROVÃNà ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "KONFLIKTNà klÃ­Ä %s pÅ™ijat pro '%s'!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Mohlo by jít o útok typu ÄlovÄ›k-uprostÅ™ed nebo\n" "by se mohl nÄ›kdo vydávat za vaÅ¡eho kamaráda.\n" "MÄ›li byste ověřit u vaÅ¡eho kamaráda, zda opravdu\n" "vytvoÅ™il tento nový klÃ­Ä dříve, než mu zaÄnete věřit." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Vytvářím pár klíÄů RSA pro %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "To může chvilku trvat..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Nelze vytvoÅ™it klíÄ. Chyba NSS: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Chyba pÅ™i dekódování klíÄe RSANSS\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Chybný podpis zprávy (délka %d, modulo %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "Povolit Å¡ifrování" #: state_ui.c:146 msgid "Disable Encryption" msgstr "Zakázat Å¡ifrování" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "Poslední pÅ™ijatá zpráva nebyla Å¡ifrována doplňkem Pidgin-Encryption" pidgin-encryption-3.1/po/tr.po0000644000175100017510000003063611365216010013350 00000000000000# Pidgin-Encryption Turkish Translation # Copyright (C) 2006 Ekrem Erdem # This file is distributed under the Gnu Public License # Ekrem Erdem , 2006 # # msgid "" msgstr "" "Project-Id-Version: Pidgin-Encryption 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2006-02-27 15:18+0200\n" "Last-Translator: Ekrem Erdem \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Yanlış anahtar uzunluÄŸu" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "512 bitten küçük anahtarlar ÇOK güvensizdir" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "4096 bitten büyük anahtarlar mesajı\n" "oldukça fazla ÅŸiÅŸirir, mesaj iletiminde\n" "problem yaratır" #: config_ui.c:162 msgid "Generate Keys" msgstr "Anahtar yarat" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Tekrar yaratmak için anahtar seçilmedi!" #: config_ui.c:180 msgid "OK" msgstr "TAMAM" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Åžifreleme protokolü:" #: config_ui.c:203 msgid "Key size:" msgstr "Anahtar uzunluÄŸu:" #: config_ui.c:245 msgid "Cancel" msgstr "İptal" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Tamam" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Anahtarı Sil" #: config_ui.c:396 msgid "Account" msgstr "Hesap" #: config_ui.c:398 msgid "Name" msgstr "Ad" #: config_ui.c:402 msgid "Bits" msgstr "Bitler" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Anahtar Parmakizi" #: config_ui.c:498 msgid "Config" msgstr "Konfigürasyon" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Dosyada anahtar yoksa otomatik olarak kabul et" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Çakışan anahtarları otomatik olarak kabul et (güvenlik riski)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Åžifreli bir mesaj gönderildiÄŸinde otomatik olarak ÅŸifrele" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Tümegönderim ÅŸifreleme kabiliyeti" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "EÄŸer arkadaşın eklentisi varsa otomatik olarak ÅŸifrele" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "Kilit ikonunu sohbetin her satırı için göster" #: config_ui.c:518 msgid "Keyfile location" msgstr "Anahtar konumu" #: config_ui.c:525 msgid "Create key files" msgstr "Anahtar dosyalarını yarat" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Anahtarı Tekrar Yarat" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Parmakizini Panoya Kopyala" #: config_ui.c:571 msgid "Local Keys" msgstr "Yerel Anahtarlar" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Güvenilir ArkadaÅŸ Anahtarları" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Aktif Anahtarlar" #: config_ui.c:658 msgid "No key files found at path" msgstr "Belirtilen konumda anahtar dosyası yok" #: config_ui.c:667 msgid "Absolute path required" msgstr "Tam yol gerekli" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Anahtar dosyaları yaratılamadı" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Geçersiz Base64 verisi, uzunluk %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "Bu hesabın anahtarı bu protokol için çok büyük. Gönderilemedi." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Son gönderilen mesaj tam alınamadı- tekrar ayarlanıyor" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Alınan mesaj yanlış anahtarla ÅŸifrelenmiÅŸ" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Åžifre çözmede hata- tekrar isteniyor..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Anahtar isteniyor..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Mesajı tekrar göndermek için anahtar yok. Mesaj kayboldu." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "GönderdiÄŸiniz mesaj kayboldu." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Åžifreleme" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Sohbetleri RSA algoritması ile ÅŸifreler." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "RSA, Mozilla NSS kripto kütüphanesini kullanarak 4096 bite kadar çıkan " "anahtarlarla ÅŸifreleme yapar.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, çeviren Ekrem Erdem" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Otomatik-Åžifrelemeyi Kapat" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Otomatik-Åžifrelemeyi Aç" #: keys.c:98 msgid "Making new key pair..." msgstr "Yeni anahtar çifti oluÅŸturuluyor..." #: keys.c:115 msgid "Error trying to make key." msgstr "Anahtar yaratılmaya çalışılırken hata." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Çakışan Anahtar Alındı!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "%s dosyası için eriÅŸim modu deÄŸiÅŸtirilirken hata:\n" "Anahtar kaydedilemiyor." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "%s dosyası için eriÅŸim modu deÄŸiÅŸtirilirken hata (2) :\n" "Anahtar kaydedilemiyor." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "%s anahtar dosyası için hatalı izinler: \n" "Pidgin-Åžifreleme anahtarları herkes ya da grup tarafından eriÅŸilebilecek\n" "bir dosyaya kaydetmeyecek." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "%s anahtar dosyası için hatalı izinler: \n" "Pidgin-Åžifreleme anahtarları herkes ya da grup tarafından eriÅŸilebilecek\n" "bir dosyaya kaydetmeyecek." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Pidgin-Åžifreleme Anahtarı Alındı" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "'%s' için %s anahtarı alındı" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Anahtar Parmakizi:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Bu anahtarı kabul etmek istiyor musunuz?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Hayır" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Kabul et ve Kaydet" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Sadece bu oturum için" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "ÇAKIÅžAN Pidgin-Åžifreleme Anahtarı Alındı" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* UYARI ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "'%s' için ÇAKIÅžAN %s anahtarı alındı!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Bu bir man-in-the-middle saldırısı olabilir\n" "ya da birisi arkadaşınız olduÄŸunu iddia ediyor olabilir.\n" "Bu anahtara güvenmeden önce arkadaşınızla\n" "birlikte bu yeni anahtarı onun yaratıp yaratmadığını\n" "kontrol etmelisiniz." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "%s için RSA Anahtar Çifti Yaratılıyor" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Bu iÅŸlem biraz sürebilir..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Anahtar yaratılamadı. NSS Hatası: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "RSANSS anahtarı ayrıştırılırken hata\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Mesajda yanlış imza (len %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "Åžifrelemeyi AktifleÅŸtir" #: state_ui.c:146 msgid "Disable Encryption" msgstr "Åžifrelemeyi Durdur" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "Alınan son mesaj Pidgin-Åžifreleme eklentisi tarafından ÅŸifrelenmiÅŸ" #, fuzzy #~ msgid "Encrypt Outgoing Messages" #~ msgstr "Gönderileni Åžifrele" #~ msgid "Tx: capable" #~ msgstr "Tx: kabiliyetli" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "Arkadaşınız Pidgin-Åžifreleme eklentisine sahip gözüküyor. Yine de sonraki " #~ "mesajınız Pidgin-Åžifreleme eklentisi tarafından ŞİFRELENMEYECEK" #~ msgid "Tx: secure" #~ msgstr "Tx: güvenli" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Sonraki mesajınız Pidgin-Åžifreleme eklentisi tarafından ÅŸifrelenecek" #~ msgid "Tx: plain" #~ msgstr "Tx: açık" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "" #~ "Sonraki mesajınız Pidgin-Åžifreleme eklentisi tarafından ŞİFRELENMEYECEK" #~ msgid "Rx: secure" #~ msgstr "Rx: güvenli" #~ msgid "Rx: plain" #~ msgstr "Rx: açık" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Alınan son mesaj Pidgin-Åžifreleme eklentisi tarafından ŞİFRELENMEMİŞ" #~ msgid "Currently cached keys" #~ msgstr "Alınmış anahtarlar" #~ msgid "Key Type" #~ msgstr "Anahtar Tipi" #~ msgid "Protocol" #~ msgstr "Protokol" #~ msgid "private" #~ msgstr "gizli" #~ msgid "public" #~ msgstr "açık" #~ msgid "" #~ "Compiled with '%s', running with '%s'. Pidgin-Encryption will probably " #~ "not run right.\n" #~ msgstr "" #~ "'%s' ile derlendi, '%s' ile çalışıyor. Pidgin-Åžifreleme muhtemelen doÄŸru " #~ "çalışmayacak.\n" #~ msgid "" #~ "Pidgin-Encryption plugin was compiled with a different version of " #~ "Pidgin. You may experience problems." #~ msgstr "" #~ "Pidgin-Åžifreleme eklentisi farklı bir Pidgin versiyonu ile derlendi. " #~ "Problem yaÅŸayabilirsiniz." #~ msgid "Can't load the NSS plugin\n" #~ msgstr "NSS eklentisi yüklenemiyor\n" #~ msgid "" #~ "Pidgin was not compiled with the NSS plugin enabled. Pidgin-Encryption " #~ "requires the NSS plugin to function." #~ msgstr "" #~ "Pidgin NSS eklentisini kullanacak tarzda derlenmedi. Pidgin-Åžifreleme bu " #~ "fonksiyon için NSS eklentisine ihtiyaç duyuyor." #~ msgid "Error parsing RSANSS nonce/key\n" #~ msgstr "RSANSS nonce deÄŸeri/anahtar ayrıştırılırken hata\n" #~ msgid "Error decoding Base64 RSANSS Public key\n" #~ msgstr "Base64 RSANSS Açık anahtarı çözülürken hata\n" #~ msgid "Error Base64 decoding RSANSS Public key\n" #~ msgstr "RSANSS Açık anahtarı çözülürken Base64 hatası\n" #~ msgid "Error decoding RSANSS Public key\n" #~ msgstr "RSANSS Açık anahtarı çözülürken hata\n" #~ msgid "Error parsing RSANSS Private key\n" #~ msgstr "RSANSS Gizli anahtarı ayrıştırılırken hata\n" #~ msgid "Error parsing Base64 in RSANSS Private Key\n" #~ msgstr "RSANSS Gizli Anahtarından Base64 ayrıştırılırken hata\n" #~ msgid "Error creating symmetric key: unable to load private key\n" #~ msgstr "Simetrik anahtar oluÅŸturulurken hata: Gizli anahtar yüklenemedi\n" #~ msgid "Error decoding RSANSS Private key\n" #~ msgstr "RSANSS Gizli anahtarı çözülürken hata\n" #~ msgid "No Nonce in message\n" #~ msgstr "Mesajda Nonce deÄŸeri yok\n" #~ msgid "Bad Nonce in message\n" #~ msgstr "Mesajda yanlış Nonce deÄŸeri\n" pidgin-encryption-3.1/po/ro.gmo0000644000175100017510000001521611365216011013505 00000000000000Þ•FLa|4K5[*‘¼)Ä2î !*. Ygl%Œ*²Ýäë'#K \gzš¬+Á<í8* )c  § Á Ï î þ   !- ]O 6­ ä ï    ) (I r u x  ¡ PÀ ) ; M \ $n J“ @Þ · × õ 0EZ`»!Öø@,6m¤6©4à=-*k–7ž/Ö/ 6 @-Lz*šÅ ßí&);7NX†Vß46#k¨-¸æö 30ud6Ú &DI#L4p`¥ ) 6Fa_2Á ô!46FkM²ò'ó.A[n?F &=AC 6"<:/!> .#%4D8)92B5E(7+@;,'- $31 *0 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-Encryption 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2006-03-05 00:17+0200 Last-Translator: MiÅŸu Moldovan Language-Team: Romanian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* ATENÅ¢IE ******* Cheie %s primită pentru „%sâ€E nevoie de o cale absolutăAcceptă ÅŸi salveazăAcceptă automat chei greÅŸite (prezintă riscuri de securitate)Acceptă automat o cheie dacă nu există una salvatăContCriptează automat pentru contactele ce au acest modulCriptează automat dacă s-a trimis un mesaj criptatMărime greÅŸită cheieSemnătură greÅŸită pentru acest mesaj (lungime %d, mod%d) Bill Tompkins (localizare: MiÅŸu Moldovan)OcteÅ£iAnunţă tuturor contactelor facilităţile de criptareS-a primit o cheie %s greÅŸită pentru „%sâ€S-a primit o cheie de criptare Pidgin GREÅžITÄ‚RenunţăConfigurareCheia primită nu corespunde cu cea salvată!Copiază amprenta în clipboardNu s-a putut genera cheia. Eroare NSS: %d Creează fiÅŸierele cheieÅžterge cheiaDezactivare criptareDoriÅ£i să acceptaÅ£i această cheie?Activare criptareProtocol criptare:Criptează discuÅ£iile Pidgin utilizând algoritmul RSAEroare 2 la schimbarea drepturilor de acces ale fiÅŸierului: %s Nu se poate salva cheia.Eroare la schimbarea drepturilor de acces ale fiÅŸierului: %s Nu se poate salva cheia.Eroare la decriptare, se cere retrimiterea mesajuluiEroare la prelucrarea cheii RSANSS Eroare la crearea cheii.Generează cheiSe generează o pereche de chei RSA pentru %sAmprentă cheieAmprentă cheie:%*sMărime cheie:LocaÅ£ie fiÅŸier chei:Cheile mai mici de 512 octeÅ£i sunt FOARTE nesigureCheile mai mari de 4096 octeÅ£i vor duce la supradimensionarea mesajelor provocând probleme de transmisie a datelor.Ultimul mesaj trimis nu a fost primit corect, resetareChei localeSe creează o nouă pereche de chei...NumeNuNu s-au găsit chei în calea datăNici o cheie nu a fost selectată pentru regenerare!Nici o cheie nu e disponibilă pentru retrimiterea mesajului. Mesajul nu a ajuns la destinaÅ£ie.OKOkMesajul trimis nu a ajuns la destinaÅ£ie.Criptare PidginCheie de criptare PidginCriptare RSA cu chei de până la 4096 octeÅ£i, utilizând bibliotecile de criptare Mozilla NSS. Mesajul primit a fost criptat cu o cheie greÅŸităChei recenteRegenerează cheiaSe verifică cheia contactului...EvidenÅ£iază toate replicile criptate din discuÅ£iiUltimul mesaj primit a fost criptat utilizând modulul Criptare PidginCheia acestui cont este prea mare pentru acest protocol. Nu se poate trimite.Ar putea să fie vorba despre un atack „man-in-the-middleâ€, când cineva încearcă să se dea drept un alt contact. Ar trebui să verificaÅ£i dacă respectivul contact ÅŸi-a generat această nouă cheie înainte de a-i acorda încredere.Aceasta s-ar putea să dureze puÅ£in...Doar sesiunea astaChei de încredereFără criptare automatăCriptare automatăNu se pot crea fiÅŸierele cheiepidgin-encryption-3.1/po/da.gmo0000644000175100017510000001342111365216011013445 00000000000000Þ•> SüHIc|5Œ*Âí)õ2 R*_ Š˜%½*ã6'T |‡§+¼<è8%)^ˆ¢ ¼Êéù ! ]9 6— Î Ù ð õ ø ( A D G ^ p P )à   + J= @ˆ ·É  Ÿ ± Ä Ú Iï 9Tp;5½ó(ù7"Z1s8¥Þ$ã).2 a kv#•(¹ âî &"IIE“3Ù# 1Pa“«"¾dá>F…”®³+·5ã#:!LYn*ÈóG.DvÆ»%‚¨ºÓò :3"+!-,=6>47&)* .5% 2'# ; (90/1<$8  ******* WARNING ******* %s key received for '%s'Accept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Delete KeyDo you want to accept this key?Encryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...The last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnProject-Id-Version: pidgin-encryption 2.32 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2004-12-17 21:56+0200 Last-Translator: Morten Brix Pedersen Language-Team: Danish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* ADVARSEL ******* %s nøgle modtaget for '%s'Acceptér og gemAcceptér konfliktende nøgler automatisk (sikkerhedsbrist)Acceptér nøgle automatisk hvis ingen nøgle pÃ¥ filKontoKryptér automatisk hvis ven har moduletKryptér automatisk hvis en krypteret besked blev sendtUgyldig nøglestørrelseUgyldig signatur pÃ¥ besked (længde %d, mod %d) Bill Tompkins, oversat til dansk af Morten Brix PedersenBitsFortæl andre om din krypteringsevneKONFLIKTENDE %s nøgle modtaget for '%s'!KONFLIKTENDE Pidgin-kryptering nøgle modtagetAnnullérOpsætningKonfliktende nøgler modtaget!Kopiér fingeraftryk til klippebordKunne ikke oprette nøgle. NSS fejl: %d Slet nøgleVil du acceptere denne nøgle?Krypteringsprotokol:Krypterer samtaler med RSA-kryptering.Fejl (2) ved ændring af 'access mode' for fil: %s Kan ikke gemme nøgle.Fejl ved ændring af 'access mode' for fil: %s Kan ikke gemme nøgle.Fejl i dekryptering- spørger om at afsende igen...Fejl ved tolkning af RSANSS nøgle Fejl ved oprettelse af nøgle.Generér nøglerOpretter RSA nøglepar for %sNøgle-fingeraftrykNøgle fingeraftryk:%*sNøgle størrelse:Nøgler < 512 bits er MEGET usikreNøgler > 4096 bits vil skabe ekstremt store beskeder, som vil skabe problemer med beskedoverførselSidste udgÃ¥ende besked blev ikke modtaget korrekt- nulstillerLokale nøglerOpretter nyt nøglepar...NavnNejIngen nøgle valgt der skal genereres igen!Ingen nøgle til at afsende besked igen. Besked tabt.O.k.O.k.UdgÃ¥ende besked tabt.Pidgin-krypteringPidgin-kryptering nøgle modtagetRSA-kryptering med nøgler op til 4096 bits, ved at brug Mozilla NSS crypto biblioteket. Modtog krypteret besked med forkert nøgleNye vennenøglerGenerér nøgle igenAnmoder om nøgle...Den sidste besked modtaget var krypteret med Pidgin-krypterings moduletDenne konti nøgle er for stor til denne protokol. Kunne ikke sende.Dette kan være et man-i-midten angreb, eller det kan være nogle der prøver at forestille din ven. Du bør tjekke med din ven for at se om de har genereret denne nye nøgle før du stoler pÃ¥ den.Dette kan tage et lille stykke tid...Kun denne sessionTroværdige vennenøglerSlÃ¥ automatisk kryptering fraSlÃ¥ automatisk kryptering tilpidgin-encryption-3.1/po/nn.gmo0000644000175100017510000001465111365216011013502 00000000000000Þ•FLa|4K5[*‘¼)Ä2î !*. Ygl%Œ*²Ýäë'#K \gzš¬+Á<í8* )c  § Á Ï î þ   !- ]O 6­ ä ï    ) (I r u x  ¡ PÀ ) ; M \ $n J“ @Þ · × õ 0E¢`<W8f4ŸÔ3Ú3B-Z=ˆÆÌ(æ.>EL&j+‘½ ÎÜï !&7R^N±,%-&S z†¢·Ñâ$÷eD‚ÇÖðõ!ù&>B„‡£!µT×3,`{¨NÄH´\+=Vn!‡?F &=AC 6"<:/!> .#%4D8)92B5E(7+@;,'- $31 *0 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-kryptering Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2006-03-05 17:19+0100 Last-Translator: Yngve Spjeld Landro Language-Team: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Poedit-Language: Norwegian Nynorsk X-Poedit-Country: norw X-Poedit-Basepath: j:\pidgin ******* Ã…TVARING ******* %s-nøkkel motteken for '%s'MÃ¥ nytta absolutt filbaneGodta og lagraGodta motstridande nøklar automatisk (tryggleiksrisiko)Godta nøkkel automatisk dersom ingen nøkkel i filaKontoKrypter automatisk om nettvenn har programtilleggetKrypter automatisk om motteken melding var kryptertUgyldig nøkkelstorleikUgyldig signatur i meldinga (len %d, mod %d) Bill Tompkins, omsetjing ved Y J Landro (nynorsk@strilen.net)BitarKringkast krypteringsevneMotteke MOTSTRIDANDE %s-nøkkel for '%s'Motteke MOTSTRIDANDE Pidgin-Encryption-nøkkelAvbrytKonfigMotteke motstridande nøkkel!Kopier fingeravtrykk til utklippstavlaKlarte ikkje Ã¥ laga nøkkel. NSS-feil: %d Lag nøkkelfilerSlett nøkkelSlÃ¥ av krypteringVil du godta denne nøkkelen?SlÃ¥ pÃ¥ krypteringKrypteringsprotokoll:Krypterer samtaler med RSA-kryptering.Feil (2) ved skifte av tilgangsmodus for fila: %s Klarer ikkje Ã¥ lagra nøkkelen.Feil ved skifte av tilgangsmodus for fila: %s Klarer ikkje Ã¥ lagra nøkkelen.Feil i dekrypteringa - ber om ny sending ...Feil ved lesinga av RSANSS-nøkkelen Feil: klarte ikkje Ã¥ laga ny nøkkel.Lag nøklarLagar RSA nøkkelpar for %sNøkkelfingeravtrykkNøkkelfingeravtrykk: %*sNøkkelstorleik:NøkkelfilplasseringNøklar < 512 bitar er SÆRS utryggeNøklar > 4096 bitar vil føra til kraftig auka meldingsstorleik. Dette kan gje problem med sendingaSiste utgÃ¥ande meldinga blei ikkje skikkeleg motteken - nullstillerLokale nøklarLagar nytt nøkkelpar ...NamnNeiFann ingen nøkkelfiler i filbanaIngen nøkkel er valt for regenereringIngen nøkkel til Ã¥ senda meldinga om att. Meldinga er vekke.OKOKUtgÃ¥ande melding er vekke.Pidgin-EncryptionMotteke Pidgin-Encryption-nøkkelRSA-kryptering med nøklar inntil 4096 bitar. Bruker Mozilla NSS-kryptobiblioteket. Den mottekne meldinga var kryptert med feil nøkkelNyleg nytta nettvennøklarLag nøkkel pÃ¥ nyttSpør etter nøkkel ...Vis lÃ¥sikon pÃ¥ kvar linjeDen sist mottekne meldinga var kryptert med programtillegget Pidgin-EncryptionKontonøkkelen er for stor for denne protokollen. Klarer ikkje Ã¥ senda.Dette kan vera eit mellommannsÃ¥tak eller nokon som prøer Ã¥ framstÃ¥ som nettvennen din. Du bør kontrollera med nettvennen din om han har laga ny nøkkel før du stolar pÃ¥ han.Dette kan ta litt tid ...Berre denne øktaTiltrudde nettvennøklarSlÃ¥ av auto-krypteringSlÃ¥ pÃ¥ auto-krypteringKlarte ikkje Ã¥ laga nøkkelfilerpidgin-encryption-3.1/po/nl.gmo0000644000175100017510000001571111365216011013476 00000000000000Þ•H\aœ !;Tk5{*±Ü)ä2 A*N y‡Œ%¬*Òý %'Ck |‡šºÌ+á< 8J )ƒ ­ Ç á ï   2 < !M ]o 6Í   & + . I (i ’ • ˜ r¯ q" ” ¦ PÅ ) @ R a $s J˜ @ã ·$Üú 5JfeÌç=/9m§2¯;â25 hv'{)£,Í ú ".*Q|’¤¹Ùî)N0J2Êý=/O”­¼.Ó_=b &°×Ü%à-=4rux‰“Œª"»_Þ3>rŠ£¿KÞF*µq'C[vªAH &?CE= 68"></!@ .#%4F:);2D5G(9+B7,'- $31 *0 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Permissions on key file changed for: %s Pidgin-Encryption will not save keys to a world- or group-accessible file.Permissions on key file changed for: %s Pidgin-Encryption will not use keys in a world- or group-accessible file.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-encryption Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2007-10-30 09:43+0100 Last-Translator: Menno Jonkers Language-Team: Menno Jonkers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ***** WAARSCHUWING ***** %s sleutel ontvangen voor '%s'Absoluut pad vereistAccepteer en sla opAccepteer strijdige sleutels automatisch (beveiligingsrisico)Accepteer sleutel automatisch als deze nog niet bekend isAccountVersleutel automatisch als contact de plugin heeftVersleutel automatisch als versleuteld bericht ontvangen isFoutieve sleutellengteFoutieve handtekening op bericht (len %d, mod %d) Bill TompkinsBitsAdverteer de versleutelingsmogelijkheidSTRIJDIGE %s sleutel ontvangen voor '%s'!STRIJDIGE Pidgin-encryptie sleutel ontvangenAnnulerenInstellingenStrijdige sleutel ontvangen!Kopieer vingerafdruk naar klembordKon geen sleutel genereren. NSS fout: %d Maak sleutelbestandenVerwijder sleutelZet versleutelen uitWilt u deze sleutel accepteren?Zet versleutelen aanVersleutelingsprotocol:Versleutelt gesprekken met RSA encryptie.Fout (2) bij veranderen toegangsmode van bestand: %s Kan sleutel niet opslaan.Fout bij veranderen toegangsmode van bestand: %s Kan sleutel niet opslaan.Fout bij ontsleutelen - vraag om opnieuw sturen...Fout bij parsen RSANSS sleutel Fout bij het maken van sleutel.Genereer sleutelsBezig met genereren van RSA-sleutelpaar voor %sVingerafdruk sleutelVingerafdruk sleutel:%*sSleutellengte:Lokatie sleutelbestandSleutels korter dan 512 bits zijn ERG onveiligSleutels langer dan 4096 bits maken berichten erg lang, waardoor communicatieproblemen ontstaanLaatst verzonden bericht niet goed ontvangen - wordt herstartLokale sleutelsEen nieuw sleutelpaar aan het maken...NaamNeeGeen sleutelbestanden gevonden op padGeen sleutel gekozen om opnieuw te genereren!Geen sleutel om bericht opnieuw te sturen. Bericht verloren.OKOkUitgaand bericht verloren.Permissies van sleutelbestand gewijzigd voor: %s Pidgin-encryptie zal geen sleutels opslaan in een wereld- of groep-toegankelijk bestand.Permissies van sleutelbestand gewijzigd voor: %s Pidgin-encryptie zal geen sleutels gebruiken uit een wereld- of groep-toegankelijk bestand.Pidgin-encryptiePidgin-encryptie sleutel ontvangenRSA-encryptie met sleutels tot 4096 bits, door middel van de Mozilla NSS cryptografiefuncties. Ontvangen bericht versleuteld met verkeerde sleutelRecente contactsleutelsGenereer sleutel opnieuwSleutel wordt opgevraagd...Toon sloticoon bij elk berichtHet laatst ontvangen bericht was versleuteld met de Pidgin-encryptie pluginDeze accountsleutel is te lang voor dit protocol. Kan niet versturen.Dit kan een man-in-the-middle aanval zijn, of iemand die zich voordoet als uw contact. Ga bij uw contact na of die deze nieuwe sleutel heeft gemaakt, voordat u de sleutel vertrouwd.Dit kan enige tijd duren...Alleen voor deze sessieVertrouwde contactsleutelsZet auto-versleutelen uitZet auto-versleutelen aanMaken sleutelbestanden misluktpidgin-encryption-3.1/po/de.gmo0000644000175100017510000001706311365216011013457 00000000000000Þ•Ida¬01Kd{5‹*Áì)ô2 Q*^ ‰—œ%¼*â 5'S{ Œ—ªÊÜ+ñ< 8Z )“ ½ × ñ ÿ  > N b l !} ]Ÿ 6ý 4 ? V [ ^ y (™  Å È rß qR Ä Ö Põ )F p ‚ ‘ $£ JÈ @·T *<Oez}• -NgE~?Ä5 L@2ª=Ý%5E9{ µ ¿'Í,õ4"Wq„(¢Ëã7ÿ]7Y•5ï*%'Px$#²Öô#2;unEä*!<^ch4ˆO½ Œ2Š¿J%bsˆ;ü8Nh,K®TúúO(Js#Š)®'Ø2BI '@DF> 79"?=0!A /#&5G;*<3E6H)%:,C8-(. $42 +1 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sInvalid Base64 data, length %u Key FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Permissions on key file changed for: %s Pidgin-Encryption will not save keys to a world- or group-accessible file.Permissions on key file changed for: %s Pidgin-Encryption will not use keys in a world- or group-accessible file.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-encryption Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2009-11-30 12:33+0100 Last-Translator: Björn Voigt Language-Team: Björn Voigt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; ******* WARNUNG ******* %s Schlüssel für '%s' erhaltenAbsoluter Pfad notwendigAnnehmen und SpeichernWidersprüchliche Schlüssel automatisch annehmen (Sicherheitsrisiko)Schlüssel automatisch annehmen, wenn noch keiner vorhanden istKontoAutomatisch verschlüsseln falls Buddy das Plugin hatBei Empfang einer verschlüsselten Nachricht automatisch auch verschlüsselnUngültige SchlüsselgrößeFalsche Signatur in Nachricht (Länge %d, Mod %d) Bill Tompkins, Übersetzung von Björn Voigt und Karim MalhasBitVerschlüsselungsfähigkeit mitteilenWIDERSPRÜCHLICHER %s Schlüssel für '%s' empfangen!WIDERSPRÜCHLICHER Pidgin-Encryption Schlüssel empfangenAbbrechenKonfigurationWidersprüchlicher Schlüssel erhalten!Fingerabdruck in die Zwischenablage kopierenKonnte Schlüssel nicht generieren. NSS Fehler: %d Erzeuge SchlüsseldateienLösche SchlüsselVerschlüsselung deaktivierenMöchten Sie diesen Schlüssel annehmen?Pidgin-VerschlüsselungVerschlüsselungsprotokoll:Verschlüsselt Unterhaltungen mit RSA-Verschlüsselung.Fehler (2) beim Ändern des Zugriffsmodus für die Datei: %s Kann Schlüssel nicht speichern.Fehler beim Ändern des Zugriffsmodus für die Datei: %s Kann Schlüssel nicht speichern.Entschlüsselungsfehler - bitte um erneutes senden...Fehler beim Parsen des RSANSS Schlüssels Fehler beim Generieren des Schlüssels.Generiere SchlüsselGeneriere RSA Schlüsselpaar für %sUngültige Base64 Daten, Länge %u Fingerabdruck des SchlüsselsSchlüsselfingerabdruck: %*sSchlüssellänge:Ort der SchlüsseldateiSchlüssel kürzer als 512 Bit sind SEHR unsicher.Schlüssel > 4096 Bit vergrößern Nachrichten unnötig und verursachen Probleme bei der Übertragung der NachrichtenLetzte ausgehende Nachricht nicht richtig empfangen - reinitialisiereLokale SchlüsselGeneriere neues Schlüsselpaar...NameNeinKeine Schlüsseldateien im PfadKein Schlüssel zum erneuten Generieren ausgewählt!Kein Schlüssel, um Nachricht erneut zu versenden. Die Nachricht ist verloren.OKOkAusgehende Nachricht verloren.Falsche Zugriffsrechte auf Schlüsseldatei geändert: %s Pidgin-Encryption speichert keine Schlüssel in welt- oder gruppenlesbaren Dateien.Falsche Zugriffsrechte auf Schlüsseldatei geändert: %s Pidgin-Encryption benutzt keine Schlüssel in welt- oder gruppenlesbaren Dateien.Pidgin-VerschlüsselungPidgin-Encryption Schlüssel erhaltenRSA Verschlüsselung mit Schlüsseln bis zu 4096 Bit, unter Benutzung der Mozilla NSS Verschlüsselungsbibliothek. Empfangene Nachricht mit falschem Schlüssel verschlüsseltNeue Buddy SchlüsselSchlüssel neu generierenFordere Schlüssel an...Zeige Schloß-Icon für jede Zeile des ChatsDie zuletzt empfangene Nachricht wurde mit Pidgin-Encryption verschlüsseltDieser Schlüssel ist zu groß für dieses Protokoll. Das Senden ist nicht möglich.Dies könnte eine 'Man-in-the-middle' Attacke sein oder es gibt sich jemand falsches für Ihren Buddy aus. Dem Schlüssel sollte erst vertraut werden, nachdem Sie Ihren Buddy überprüft haben, ob der Schlüssel wirklich von ihm generiert worden ist.Dieser Vorgang kann eine Weile dauern...Nur für diese SitzungVertrauenswürdige Buddy SchlüsselAutomatisches Verschlüsseln deaktivierenAutomatisches Verschlüsseln aktivierenDie Schlüsseldateien konnten nicht erzeugt werdenpidgin-encryption-3.1/po/pt_PT.gmo0000644000175100017510000001521611365216011014113 00000000000000Þ•FLa|4K5[*‘¼)Ä2î !*. Ygl%Œ*²Ýäë'#K \gzš¬+Á<í8* )c  § Á Ï î þ   !- ]O 6­ ä ï    ) (I r u x  ¡ PÀ ) ; M \ $n J“ @Þ · × õ 0EŽ`ï#B@SA”Ö7Ü@U2q(¤Í)Ò$ü1!S\k8‡/Àð -I])yV£Uú.P   ¼!Éë'"90\qGÿ GUsx+}/©:Ù4 F^g-Æô!57LmNºÆ Ðï!*F._?F &=AC 6"<:/!> .#%4D8)92B5E(7+@;,'- $31 *0 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: pidgin-encryption 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2007-08-20 06:59+0100 Last-Translator: Pedro Pinto Language-Team: Português MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.11.4 Plural-Forms: nplurals=2; plural=(n != 1); ******* AVISO ******* %s chave recebida para '%s'É necessário a path absolutaAceitar e GravarAceitar chaves em conflito automaticamente (risco de segurança)Aceitar chave automaticamente se não existir nenhuma em ficheiroContaEncriptar automaticamente se o contacto possui o pluginEncriptar automaticamente se uma mensagem for enviada encriptadaTamanho de chave incorrectoAssinatura inválida na mensagem (tam %d, mod %d) Bill Tompkins, traduzido por Pedro PintoBitsCapacidade de encriptação por broadcastCONFLITO %s chave recebida para '%s'CONFLITO na chave recebida pelo Pidgin-EncryptionCancelarConfiguraçãoConflito na chave recebida!Copiar Impressão Digital para a área de transferênciaNão foi possível gerar a chave. Erro NSS: %d Criar ficheiros de chaveApagar ChaveDesligar Encriptação?Deseja aceitar esta chave?Ligar EncriptaçãoProtocolo de encriptação:Encripta conversas com encriptação RSA.Erro (2) mudar o modo de acesso para o ficheiro: %s Não foi possível gravar a chave.Erro ao mudar o modo de acesso para o ficheiro: %s Não foi possível gravar a chave.Erro na desencriptação- pedindo o reenvio...Erro ao analizar a chave RSANSS Erro ao tentar gerar chave.Gerar chavesA gerar par de chaves RSA para %sImpressão Digital da ChaveImpressão Digital da chave:%*sTamanho da chave:Localização do ficheiro da chaveChaves menores que 512 bits são MUITO insegurasChaves maiores que 4096 bits deixam as mensagens muito grandes, causando problemas com a transmissão da mensagemA última mensagem enviada não foi recebida correctamente- reiniciandoChaves LocaisA gerar novo par de chaves...NomeNãoNenhum ficheiro de chave encontrado na pathNenhuma chave seleccionada para ser regenerada!Não há chave para reenviar a mensagem. Mensagem perdida.OKOkMensagem enviada perdida.Pidgin-EncryptionPidgin-Encryption Chave RecebidaEncriptação RSA com chaves até 4096 bits, usando a biblioteca de criptografia Mozilla NSS. Mensagem encriptada recebida com chave erradaChaves de Contactos RecentesRegenerar chaveRequisitando chave...Mostrar ícone do cadeado para cada linha da conversaA última mensagem recebida foi encriptada com o plugin do Pidgin-EncryptionEssa chave é demasiado grande para este protocolo. Não foi possível enviar.Isso pode ser um ataque man-in-the-middle, ou alguém está a tentar fazer-se passar pelo seu contacto. Deve verificar com o seu contacto para ver se ele gerou esta nova chave antes de confiar nele.Isto pode demorar um bocado...Apenas para esta sessãoChaves de Contactos de ConfiançaDesligar Auto-EncriptaçãoLigar Auto-EncriptaçãoNão foi possível criar os ficheiros de chavepidgin-encryption-3.1/po/nn.po0000644000175100017510000002142511365216010013332 00000000000000msgid "" msgstr "" "Project-Id-Version: Pidgin-kryptering\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2006-03-05 17:19+0100\n" "Last-Translator: Yngve Spjeld Landro \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Norwegian Nynorsk\n" "X-Poedit-Country: norw\n" "X-Poedit-Basepath: j:\\pidgin\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Ugyldig nøkkelstorleik" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Nøklar < 512 bitar er SÆRS utrygge" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Nøklar > 4096 bitar vil føra til \n" "kraftig auka meldingsstorleik. Dette\n" "kan gje problem med sendinga" #: config_ui.c:162 msgid "Generate Keys" msgstr "Lag nøklar" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Ingen nøkkel er valt for regenerering" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Krypteringsprotokoll:" #: config_ui.c:203 msgid "Key size:" msgstr "Nøkkelstorleik:" #: config_ui.c:245 msgid "Cancel" msgstr "Avbryt" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "OK" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Slett nøkkel" #: config_ui.c:396 msgid "Account" msgstr "Konto" #: config_ui.c:398 msgid "Name" msgstr "Namn" #: config_ui.c:402 msgid "Bits" msgstr "Bitar" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Nøkkelfingeravtrykk" #: config_ui.c:498 msgid "Config" msgstr "Konfig" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Godta nøkkel automatisk dersom ingen nøkkel i fila" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Godta motstridande nøklar automatisk (tryggleiksrisiko)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Krypter automatisk om motteken melding var kryptert" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Kringkast krypteringsevne" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Krypter automatisk om nettvenn har programtillegget" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "Vis lÃ¥sikon pÃ¥ kvar linje" #: config_ui.c:518 msgid "Keyfile location" msgstr "Nøkkelfilplassering" #: config_ui.c:525 msgid "Create key files" msgstr "Lag nøkkelfiler" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Lag nøkkel pÃ¥ nytt" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Kopier fingeravtrykk til utklippstavla" #: config_ui.c:571 msgid "Local Keys" msgstr "Lokale nøklar" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Tiltrudde nettvennøklar" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Nyleg nytta nettvennøklar" #: config_ui.c:658 msgid "No key files found at path" msgstr "Fann ingen nøkkelfiler i filbana" #: config_ui.c:667 msgid "Absolute path required" msgstr "MÃ¥ nytta absolutt filbane" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Klarte ikkje Ã¥ laga nøkkelfiler" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Ugyldig Base64-data, lengd %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "Kontonøkkelen er for stor for denne protokollen. Klarer ikkje Ã¥ senda." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Siste utgÃ¥ande meldinga blei ikkje skikkeleg motteken - nullstiller" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Den mottekne meldinga var kryptert med feil nøkkel" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Feil i dekrypteringa - ber om ny sending ..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Spør etter nøkkel ..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Ingen nøkkel til Ã¥ senda meldinga om att. Meldinga er vekke." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "UtgÃ¥ande melding er vekke." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Krypterer samtaler med RSA-kryptering." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "RSA-kryptering med nøklar inntil 4096 bitar. Bruker Mozilla NSS-" "kryptobiblioteket.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, omsetjing ved Y J Landro (nynorsk@strilen.net)" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "SlÃ¥ av auto-kryptering" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "SlÃ¥ pÃ¥ auto-kryptering" #: keys.c:98 msgid "Making new key pair..." msgstr "Lagar nytt nøkkelpar ..." #: keys.c:115 msgid "Error trying to make key." msgstr "Feil: klarte ikkje Ã¥ laga ny nøkkel." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Motteke motstridande nøkkel!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Feil ved skifte av tilgangsmodus for fila: %s\n" "Klarer ikkje Ã¥ lagra nøkkelen." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Feil (2) ved skifte av tilgangsmodus for fila: %s\n" "Klarer ikkje Ã¥ lagra nøkkelen." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Ugyldige tilgangar til nøkkelfila: %s\n" "Pidgin-Encryption vil ikkje lagra nøklar i ei fil som er tilgjengeleg for " "alle eller gruppe." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Ugyldige tilgangar til nøkkelfila: %s\n" "Pidgin-Encryption vil ikkje lagra nøklar i ei fil som er tilgjengeleg for " "alle eller gruppe." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Motteke Pidgin-Encryption-nøkkel" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s-nøkkel motteken for '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Nøkkelfingeravtrykk: %*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Vil du godta denne nøkkelen?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Nei" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Godta og lagra" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Berre denne økta" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "Motteke MOTSTRIDANDE Pidgin-Encryption-nøkkel" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* Ã…TVARING ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "Motteke MOTSTRIDANDE %s-nøkkel for '%s'" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Dette kan vera eit mellommannsÃ¥tak eller\n" "nokon som prøer Ã¥ framstÃ¥ som nettvennen din.\n" "Du bør kontrollera med nettvennen din om han har\n" "laga ny nøkkel før du stolar pÃ¥ han." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Lagar RSA nøkkelpar for %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Dette kan ta litt tid ..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Klarte ikkje Ã¥ laga nøkkel. NSS-feil: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Feil ved lesinga av RSANSS-nøkkelen\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Ugyldig signatur i meldinga (len %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "SlÃ¥ pÃ¥ kryptering" #: state_ui.c:146 msgid "Disable Encryption" msgstr "SlÃ¥ av kryptering" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "Den sist mottekne meldinga var kryptert med programtillegget Pidgin-" "Encryption" pidgin-encryption-3.1/po/lt.gmo0000644000175100017510000001424611365216011013506 00000000000000Þ•B,Y< ¡»Ôë5û*1\)d2Ž Á*Î ù %,*R}„‹¥'Ãë ü'+<<h8¥)Þ " < J i y — !¨ ]Ê 6( _ j  † ‰ ¤ (Ä í ð ó   P; )Œ ¶ È × @é ·* â   % ; P k ‰§½Û2ñ-$ R3\5Æ1Ù) 5 ;'\0„ µ ¿Ê-ê*C Xf…!œL¾H ,T"¤¿Ðï ,&?\fBà 8?B0W;ˆÄÊ"Ðó]%,ƒ°ËèLþ¯Kû,!E gˆ*.(<52 / ,:47">1&309#? @)!=A+  'B -%6;$8 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDo you want to accept this key?Encryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...This account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: pidgin-encryption Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2006-02-20 16:18+0200 Last-Translator: Andrius Å tikonas Language-Team: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Poedit-Language: Lithuanian X-Poedit-Country: LITHUANIA X-Poedit-SourceCharset: utf-8 Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n X-Generator: KBabel 1.10.2 ******* Ä®SPÄ–JIMAS ******* %s raktas gautas "%s"Reikalingas absoliutus keliasPriimti ir iÅ¡saugotiPriimti konfliktuojanÄius raktus (saugumo rizika)Priimti automatiÅ¡kai, jei byloje nÄ—ra raktoAbonentasAutomatiÅ¡kai Å¡ifruoti, jei draugas turi įskiepįAutomatoÅ¡kai Å¡ifruoti, jei gauta Å¡ifruota žinutÄ—Blogas rakto dydisBlogas žinutÄ—s paraÅ¡as (ilgis %d, metodas %d) Bill Tomkins, iÅ¡vertÄ— Andrius Å tikonasBitaiTransliuoti Å¡ifravimo galimybÄ™KONFLIKTUOJANTIS %s raktas gautas "%s"!Gautas KONFLIKTUOJANTIS Pidgin-Encryption raktasAtÅ¡auktiNustatymaiGautas konfliktuojantis raktas!Kopijuoti pirÅ¡tų atspaudus į Mainų sritįNegaliu sugeneruoti rakto. NSS klaida: %d Sukurti raktų bylasTrinti raktÄ…Ar norite priimtį šį raktÄ…Å ifravimo protokolas:Å ifruoja praneÅ¡imus RSA Å¡ifru.Klaida (2), keiÄiant prieigos režimÄ… failui: %s Negaliu iÅ¡saugoti rakto.Klaida, keiÄiant prieigos režimÄ… failui: %s Negaliu iÅ¡saugoti rakto.Klaida deÅ¡ifruojant - praÅ¡oma persųsti...Klaida nagrinÄ—jant RSANSS raktÄ… Klaida generuojant raktÄ….Generuoti raktusGeneruojama RSA raktų pora %sPirÅ¡tų atspaudaiRakto pirÅ¡tų atspaudai:%*sRakto dydis:Raktų bylos vietaRaktai < 512 bitų yra LABAI nesaugÅ«sRaktai > 4069 labai stabdys praneÅ¡imų Å¡ifravimÄ… ir bus problemų su žinuÄių siuntimuPaskutinÄ— iÅ¡einanti žinutÄ— nebuvo tinkamai gauta - pakartojamaVietiniai raktaiGeneruojama nauja raktų pora...VardasNeNerasta raktų bylųNepažymÄ—tas joks raktas generavimui iÅ¡ naujo!NÄ—ra rakto praneÅ¡imo persiuntimui. PraneÅ¡imas prarastas.GeraiGeraiIÅ¡einantis praneÅ¡imas prarastas.Pidgin-Encryptiongautas Pidgin-Encryption raktasRSA Å¡ifravimas su raktais iki 4096 bitų, naudojant Mozilla NSS kriptografijos bibliotekÄ…. Gautas praneÅ¡imas Å¡ifruotas su blogu raktuPaskutinių draugų raktaiIÅ¡ naujo sugeneruoti raktÄ…Reikalaujama rakto..."Å is abonento raktas yra per didelis Å¡iam protokolui. Negalima iÅ¡siųsti.Tai gali bÅ«ti žmogaus viduryje ataka, arba kažkas bando apsimesti jÅ«sų draugu. JÅ«s turite patikrinti su draugu, ar jis sugeneravo naujÄ… raktÄ…, prieÅ¡ jį patvirtinant.Tai gali kažkiek užtrukti...Tik Å¡iÄ… sesijÄ…patikimų draugų raktaiIÅ¡jungti automatinį Å¡ifravimÄ…Ä®jungti automatinį Å¡ifravimÄ…Nepavyko sukurti raktų bylųpidgin-encryption-3.1/po/zh_CN.po0000644000175100017510000002667311365216010013732 00000000000000# Simplified Chinese translation of Pidgin-encryption. # Copyright (C) 2007 Strong Chen # This file is distributed under the GPL license. # Strong Chen , 2007. # # msgid "" msgstr "" "Project-Id-Version: Pidgin-encryption 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2006-02-21 11:08+0800\n" "Last-Translator: Strong Chen \n" "Language-Team: Chinese/Simplified \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "䏿­£ç¡®çš„密钥长度" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "密钥长度å°äºŽ 512 使˜¯éžå¸¸ä¸å®‰å…¨çš„" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "密钥长度大于 4096 ä½ä¼šä½¿å¾—ä¿¡æ¯\n" "å…§å®¹è¿‡é•¿ï¼Œå¯¼è‡´ä¼ é€æ¶ˆæ¯æ—¶å‘生\n" "问题" #: config_ui.c:162 msgid "Generate Keys" msgstr "产生密钥" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "è¯·é€‰æ‹©ä¸€æŠŠæ—§å¯†é’¥ä»¥é‡æ–°ç”Ÿæˆæ–°çš„密钥!" #: config_ui.c:180 msgid "OK" msgstr "确定" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "加密åè®®" #: config_ui.c:203 msgid "Key size:" msgstr "密钥长度:" #: config_ui.c:245 msgid "Cancel" msgstr "å–æ¶ˆ" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "确定" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "刪除密钥" #: config_ui.c:396 msgid "Account" msgstr "å¸å·" #: config_ui.c:398 msgid "Name" msgstr "åç§°" #: config_ui.c:402 msgid "Bits" msgstr "ä½" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "密钥指纹" #: config_ui.c:498 msgid "Config" msgstr "设定" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "è‡ªåŠ¨æŽ¥å—æ–°çš„密钥" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "自动接å—与使用中ä¸ä¸€è‡´å¯†é’¥(有安全风险)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "é€å‡ºåŠ å¯†ä¿¡æ¯åŽ, æ­¤åŽä¿¡æ¯è‡ªåŠ¨åŠ å¯†" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "广播传é€åŠ å¯†å†…å®¹çš„å…¼å®¹æ€§" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "如果对方支æŒåР坆æ’ä»¶, æ¡ä¿¡æ¯è‡ªåŠ¨åŠ å¯†" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "æ¯ä¸€è¡Œå¯¹è¯ä¸­æ˜¾ç¤ºä»£è¡¨å·²åŠ å¯†ä¿¡æ¯çš„å°å›¾æ ‡" #: config_ui.c:518 msgid "Keyfile location" msgstr "密钥文件ä½ç½®" #: config_ui.c:525 msgid "Create key files" msgstr "建立密钥文件" #: config_ui.c:556 msgid "Regenerate Key" msgstr "釿–°äº§ç”Ÿå¯†é’¥" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "å¤åˆ¶æŒ‡çº¹åˆ°å‰ªåˆ‡æ¿" #: config_ui.c:571 msgid "Local Keys" msgstr "本机密钥管ç†" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "已信任的好å‹å¯†é’¥" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "最近收到的好å‹å¯†é’¥" #: config_ui.c:658 msgid "No key files found at path" msgstr "找ä¸åˆ°å¯†é’¥æ–‡ä»¶" #: config_ui.c:667 msgid "Absolute path required" msgstr "请使用ç»å¯¹è·¯å¾„" #: config_ui.c:678 msgid "Unable to create key files" msgstr "无法建立密钥文件" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "无效的 Base64 å¯†ç æ•°æ®, 长度 %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "此账户密钥太长. 无法å‘é€." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "上一æ¡é€å‡ºçš„æ¶ˆæ¯å¯èƒ½æ²’被接收到 - é‡ç½®ä¸­" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "æ”¶åˆ°çš„æ¶ˆæ¯æ˜¯ç”±é”™è¯¯çš„密钥加密的" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "解密时å‘生错误 - è¦æ±‚釿–°å‘é€..." #: encrypt.c:941 msgid "Requesting key..." msgstr "å‘对方请求密钥中..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "沒有密钥å¯ä»¥é‡é€æ¶ˆæ¯. 消æ¯ä¸¢å¤±." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "丢失了é€å‡ºçš„æ¶ˆæ¯." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "使用 RSA 加密通信" #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "RSA 加密密钥长度为 4096 ä½, 使用 Mozilla NSS 密ç å‡½æ•°åº“.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, translation by Strong Chen" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "关闭自动加密" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "å¯åŠ¨è‡ªåŠ¨åŠ å¯†" #: keys.c:98 msgid "Making new key pair..." msgstr "产生新密钥中..." #: keys.c:115 msgid "Error trying to make key." msgstr "产生新密钥å‘生错误." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "收到ä¸ä¸€è‡´çš„密钥!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "错误: è¯•å›¾æ”¹å˜æ–‡ä»¶å­˜å‚¨æ¨¡å¼: %s\n" "无法ä¿å­˜å¯†é’¥." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "错误(2): è¯•å›¾æ”¹å˜æ–‡ä»¶å­˜å‚¨æ¨¡å¼: %s\n" "无法ä¿å­˜å¯†é’¥." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "密钥文件æƒé™ä¸æ­£ç¡®: %s\n" "Pidgin-Encryption ä¸ä¼šå°†å¯†é’¥ä¿å­˜ä¸ºä»»ä½•人都å¯ä»¥å­˜å–的文件." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "密钥文件æƒé™ä¸æ­£ç¡®: %s\n" "Pidgin-Encryption ä¸ä¼šå°†å¯†é’¥ä¿å­˜ä¸ºä»»ä½•人都å¯ä»¥å­˜å–的文件." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "已收到 Pidgin-Encryption 密钥" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s 密钥收于 '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "密钥指纹:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "是å¦è¦æŽ¥å—此密钥?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "æ‹’ç»" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "接å—å¹¶ä¿å­˜" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "åªåœ¨æ­¤æ¬¡å¯¹è¯ä¸­æœ‰æ•ˆ" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "接收到ä¸ä¸€è‡´çš„ Pidgin-Encryption 密钥" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ***** è­¦ 告 ***** " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "å‘现ä¸ä¸€è‡´çš„ %s 密钥, 对方为 '%s'!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "现在å¯èƒ½å­˜åœ¨æˆªåŒ…黑客攻击, \n" "或者有人在å‡è£…æˆæ‚¨çš„好å‹.\n" "æ‚¨åº”è¯¥ä¸Žå¥½å‹æ£€æŸ¥ä¸€ä¸‹\n" "在确认之å‰ä»–们是å¦äº§ç”Ÿäº†æ–°çš„密钥." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "正在产生 %s çš„ RSA 密钥" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "å¯èƒ½éœ€è¦ç‚¹æ—¶é—´ï¼Œè¯·ç¨å€™..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "无法产生密钥. NSS 错误: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "å¤„ç† RSANSS 密钥时å‘生错误\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "消æ¯ä¸­åŒ…å«ä¸æ­£ç¡®çš„ç­¾å (len %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 #, fuzzy msgid "Enable Encryption" msgstr "å¯ç”¨åŠ å¯†åŠŸèƒ½" #: state_ui.c:146 #, fuzzy msgid "Disable Encryption" msgstr "关闭加密功能" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "ä¸Šä¸€æ¡æ”¶åˆ°çš„æ¶ˆæ¯æ˜¯ä½¿ç”¨ Pidgin-Encryptionæ’ä»¶ 加密的" #~ msgid "Encrypt Outgoing Messages" #~ msgstr "加密é€å‡ºçš„æ¶ˆæ¯" #~ msgid "Tx: capable" #~ msgstr "ä¼ é€: capable" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "æ‚¨çš„å¥½å‹æ”¯æŒ Pidgin-Encryption æ’ä»¶.ä¸è¿‡æ‚¨ä¸‹æ¬¡æ¶ˆæ¯ä»æ²¡æœ‰å¯ç”¨ Pidgin-" #~ "Encryption 加密功能" #~ msgid "Tx: secure" #~ msgstr "ä¼ é€: 密文" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "下一æ¡é€å‡ºçš„æ¶ˆæ¯å°†ä¼šè¢« Pidgin-Encryption 加密" #~ msgid "Tx: plain" #~ msgstr "ä¼ é€: 明文" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "下一æ¡é€å‡ºçš„æ¶ˆæ¯å°†ä¸ä¼šè¢« Pidgin-Encryption 加密" #~ msgid "Rx: secure" #~ msgstr "接收: 密文" #~ msgid "Rx: plain" #~ msgstr "接收: 明文" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "上一æ¡å·²æ”¶åˆ°çš„æ¶ˆæ¯æ²¡æœ‰ä½¿ç”¨ Pidgin-Encryption 加密" #~ msgid "" #~ "Compiled with '%s', running with '%s'. Pidgin-Encryption will probably " #~ "not run right.\n" #~ msgstr "" #~ "使用 '%s' 编译, 在 '%s' 下执行. Pidgin-Encryption ä¸ä¸€å®šå¯ä»¥æ­£ç¡®è¿è¡Œ.\n" #~ msgid "" #~ "Pidgin-Encryption plugin was compiled with a different version of " #~ "Pidgin. You may experience problems." #~ msgstr "Pidgin-Encryption æ’件是由ä¸åŒçš„ Pidgin 编译. 您å¯èƒ½ä¼šç¢°åˆ°ä¸€äº›é—®é¢˜." #~ msgid "Currently cached keys" #~ msgstr "ç›®å‰ä½¿ç”¨ä¸­çš„密钥" #~ msgid "Key Type" #~ msgstr "密钥类型" #~ msgid "Protocol" #~ msgstr "åè®®" #~ msgid "private" #~ msgstr "ç§é’¥" #~ msgid "public" #~ msgstr "公钥" #~ msgid "Error parsing RSANSS nonce/key\n" #~ msgstr "å¤„ç† RSANSS nonce/key æ—¶å‘生错误\n" #~ msgid "Error decoding Base64 RSANSS Public key\n" #~ msgstr "å¤„ç† RSANSS 公钥的 Base64 部份时å‘生错误\n" #~ msgid "Error Base64 decoding RSANSS Public key\n" #~ msgstr "å¤„ç† RSANSS 公钥的 Base64 部份时å‘生错误\n" #~ msgid "Error decoding RSANSS Public key\n" #~ msgstr "å¤„ç† RSANSS 公钥 æ—¶å‘生错误\n" #~ msgid "Error parsing RSANSS Private key\n" #~ msgstr "å¤„ç† RSANSS ç§é’¥æ—¶å‘生错误\n" #~ msgid "Error parsing Base64 in RSANSS Private Key\n" #~ msgstr "å¤„ç† RSANSS ç§é’¥çš„ Base64 部份时å‘生错误\n" #~ msgid "Error creating symmetric key: unable to load private key\n" #~ msgstr "建立对称密钥时å‘生错误: 无法载入ç§é’¥\n" #~ msgid "Error decoding RSANSS Private key\n" #~ msgstr "å¤„ç† RSANSS ç§é’¥æ—¶å‘生错误\n" #~ msgid "No Nonce in message\n" #~ msgstr "消æ¯å†…æ—  Nonce \n" #~ msgid "Bad Nonce in message\n" #~ msgstr "消æ¯å†…çš„ Nonce 䏿­£ç¡®\n" pidgin-encryption-3.1/po/ru.gmo0000644000175100017510000001737711365216011013525 00000000000000Þ•B,Y< ¡»Ôë5û*1\)d2Ž Á*Î ù %,*R}„‹¥'Ãë ü'+<<h8¥)Þ " < J i y — !¨ ]Ê 6( _ j  † ‰ ¤ (Ä í ð ó   P; )Œ ¶ È × @é ·* â   % ; P Bk "®&Ñ0ø")dLd±i%|0 ^=EœâHúBCD†Ë Ü3êSIr"¼ß5÷(-:V‘ŠaªC ?P6®å"&9?1yŒ«x8±4Ï %Q8lŠ÷ü57)I s(–$¿ä‚ÿC‚?Æ-.41c/•9Å*.(<52 / ,:47">1&309#? @)!=A+  'B -%6;$8 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDo you want to accept this key?Encryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...This account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-Encryption 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2006-01-10 09:08+0100 Last-Translator: Roman Sosenko Language-Team: Russian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* Ð’ÐИМÐÐИЕ ******* Получен %s ключ Ð´Ð»Ñ '%s'Ðеобходим абÑолютный путьВвеÑти и ÑохранитьÐвтоматичеÑки ввеÑти конфликтующий ключ (небезопаÑно)При отÑутÑвии ключа в файле ввеÑти ключ автоматичеÑки ЭккаунтÐвтоматичеÑки кодировать, еÑли у контакта имеетÑÑ Ð¼Ð¾Ð´ÑƒÐ»ÑŒÐвтоматичеÑки кодировать, еÑли отправлено закодированое ÑообщениеÐеправильный размер ключаÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (размер %d, модуль %d) Билл ТомпкинÑ, перевод Романа СоÑенкоРазмер (биты)ТранÑлировать ÑпоÑобноÑть кодированиÑПолучен КОÐФЛИКТУЮЩИЙ %s ключ Ð´Ð»Ñ '%s'!Получен конфликтующий ключ Pidgin-EncryptionОтменитьКонфиг.Получен конфликтующий ключ!Скопировать отпечаток в буфер обмена даннымиÐевозможноÑть Ñоздать ключ. Ошибка NSS: %d Создать файл ключаУдалить ключВы хотите ввеÑти данный ключ?Протокол кодированиÑ:Кодирует разговоры по методу RSA.Ошибка (2) при изменении права доÑтупа к файлу: %s ÐевозможноÑть Ñохранить ключОшибка при изменении права доÑтупа к файлу: %s ÐевозможноÑть Ñохранить ключ.Ошибка при декодировании, проÑьба отправить заново...Ошибка при анализе ключа ÑеÑÑии RSANSS Ошибка при попытке ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð°.Создание ключейСоздание пары ключей RSA Ð´Ð»Ñ %sОтпечаток ключаОтпечаток ключа: %*sРазмер ключа:МеÑто раÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° ключаКлючи < 512 бит КРÐЙÐЕ опаÑныКлючи > 4096 бит могут Ñильно увеличивать ÑообщениÑ, Ð²Ñ‹Ð·Ñ‹Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ñ‹ передачиПоÑледнее иÑходÑщее Ñообщение получено Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹. ПеренаÑтройкаЛокальные ключиСоздание новой пары ключей...ИмÑÐетФайл ключа не найденВыберете ключ Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ генерированиÑ!ОтÑутÑвие ключа Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð¹ отправки. Сообщение утерÑно.ОКОКИÑходÑщее Ñообщение утерÑно.Pidgin-EncryptionПолучен ключ Pidgin-EncryptionКодирование по методу RSA Ñ ÐºÐ»ÑŽÑ‡Ð°Ð¼Ð¸ до 4906 бит Ñ Ð¸Ñпользованием библиотеки шифров Mozilla NSS. Полученое Ñообщение было закодировано при помощи неправильного ключаКлючи нового контактаСоздать ключ Ð·Ð°Ð½Ð¾Ð²Ð¾Ð—Ð°Ð¿Ñ€Ð¾Ñ ÐºÐ»ÑŽÑ‡Ð°...Этот ключ Ñлишком большой Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ протокола. Ðевозможно отправить.Возможно, произошла аттака "man-in-th-middle" или кто-то выдаёт ÑÐµÐ±Ñ Ð·Ð° вашего контакта. Ð’Ñ‹ должны проверить, дейÑтвительно ли ваш контакт Ñоздал Ñтот ключ, прежде чем иÑпользовать его.Это может занÑть немного времени...Только Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑеÑÑииКлючи надёжного контактаОтключить автокодированиеВключить автокодированиеÐевозможно Ñоздать файлы ключаpidgin-encryption-3.1/po/hu.po0000644000175100017510000002427411365216010013340 00000000000000# Hungarian translation of pidgin-encryption. # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the pidgin-encryption package. # Peter Tutervai , 2004. # Laszlo Dvornik , 2005. # msgid "" msgstr "" "Project-Id-Version: pidgin-encryption 2.38\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2005-07-10 15:08+0200\n" "Last-Translator: Laszlo Dvornik \n" "Language-Team: Peter Tutervai \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Rossz kulcsméret" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Az 512 bitnél kisebb kódolás NEM biztonságos" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "A 4096 bitnél nagyobb kulcsok\n" "lassíthatják az üzenetküldést" #: config_ui.c:162 msgid "Generate Keys" msgstr "Kulcsok előállítása" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Nincs kiválasztva kulcs az újra-előállításhoz!" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Kódoló protokoll:" #: config_ui.c:203 msgid "Key size:" msgstr "Kulcsméret:" #: config_ui.c:245 msgid "Cancel" msgstr "Mégsem" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "OK" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Kulcs törlése" #: config_ui.c:396 msgid "Account" msgstr "Fiók" #: config_ui.c:398 msgid "Name" msgstr "Név" #: config_ui.c:402 msgid "Bits" msgstr "Bit" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Kulcs ujjlenyomata" #: config_ui.c:498 msgid "Config" msgstr "Beállítás" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Kulcsok automatikus elfogadása, ha nincs kulcs a fájlon" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Az ütközÅ‘ kulcsok automatikus elfogadása (nem biztonságos)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Automatikus kódolás kódolt üzenet küldésénél" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Kódolási képesség jelzése" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Automatikus kódolás, ha a partner rendelkezik a bÅ‘vítménnyel" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "" #: config_ui.c:518 msgid "Keyfile location" msgstr "" #: config_ui.c:525 msgid "Create key files" msgstr "" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Kulcs újra-előállítása" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Ujjlenyomat másolása a vágólapra" #: config_ui.c:571 msgid "Local Keys" msgstr "Helyi kulcsok" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Megbízható partnerkulcsok" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Legutóbbi partnerkulcsok" #: config_ui.c:658 msgid "No key files found at path" msgstr "" #: config_ui.c:667 msgid "Absolute path required" msgstr "" #: config_ui.c:678 msgid "Unable to create key files" msgstr "" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Érvénytelen Base64 adat, hossz: %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "Ez a fiókkulcs túl hosszú ehhez a protokollhoz. Nem lehet elküldeni." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Az utolsó kimenÅ‘ üzenet nem érkezett meg rendesen - újraküldés" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "A fogadott üzenet rossz kulccsal lett kódolva" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Hiba a dekódolásban - kérelem az újraküldésre..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Kulcs kérése..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Nincs kulcs az újraküldéshez. Az üzenet elveszett." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Elveszett a kimenÅ‘ üzenet." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Párbeszédek kódolása RSA kódolással." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "RSA kódolás maximum 4096 bites kulcsokkal, a Mozilla NSS crypto " "programkönyvtárat használva.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, fordította Tutervai Péter és Dvornik László" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Automatikus kódolás kikapcsolása" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Automatikus kódolás bekapcsolása" #: keys.c:98 msgid "Making new key pair..." msgstr "Új kulcspár létrehozása..." #: keys.c:115 msgid "Error trying to make key." msgstr "Hiba a kulcs létrehozása közben." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "ÜtközÅ‘ kulcs érkezett!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Hiba a hozzáférési mód átállítása közben a(z) %s fájlon\n" "Nem lehet elmenteni a kulcsot." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Hiba (2) a hozzáférési mód átállítása közben a(z) %s fájlon\n" "Nem lehet elmenteni a kulcsot." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Hibás jogosultságok a(z) %s kulcsfájlon\n" "A Pidgin-Encryption nem menti el a kulcsokat egy világ/csoport által " "elérhetÅ‘ fájlba." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Hibás jogosultságok a(z) %s kulcsfájlon\n" "A Pidgin-Encryption nem menti el a kulcsokat egy világ/csoport által " "elérhetÅ‘ fájlba." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Pidgin-Encryption kulcs érkezett" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s kulcs érkezett ('%s')" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Kulcs ujjlenyomata:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Elfogadja ezt a kulcsot?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Nem" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Elfogadás és mentés" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Csak erre a munkafolyamatra" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "ÜTKÖZÅ Pidgin-Encryption kulcs érkezett" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* FIGYELEM ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "ÜTKÖZÅ %s kulcs érkezett! ('%s')" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Ez egy man-in-the-middle támadás, vagy\n" "valaki a partnerének álcázza magát.\n" "Jobb, ha leellenÅ‘rzi az új kulcsot, mielÅ‘tt\n" "elfogadja." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "RSA kulcspár előállítása (%s)" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Ez eltarthat egy ideig..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Nem lehet előállítani a kulcsot. NSS hiba: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Hiba az RSANSS kulcs értelmezése közben\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Rossz aláírás az üzenetben (hossz %d, mód %d)\n" #: state_ui.c:106 state_ui.c:126 #, fuzzy msgid "Enable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:146 #, fuzzy msgid "Disable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "Az utolsó beérkezett üzenet kódolva volt a Pidgin-Encryption bÅ‘vítménnyel" #, fuzzy #~ msgid "Encrypt Outgoing Messages" #~ msgstr "Elveszett a kimenÅ‘ üzenet." #~ msgid "Tx: capable" #~ msgstr "Tx: alkalmas" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "A partnere rendelkezik a Pidgin-Encryption bÅ‘vítménnyel. Mégis a " #~ "következÅ‘ kimenÅ‘ üzenete NEM lesz kódolva a Pidgin-Encryption " #~ "bÅ‘vítménnyel." #~ msgid "Tx: secure" #~ msgstr "Tx: biztonságos" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "A következÅ‘ kimenÅ‘ üzenet kódolva lesz a Pidgin-Encryption bÅ‘vítménnyel" #~ msgid "Tx: plain" #~ msgstr "Tx: szöveg" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "" #~ "A következÅ‘ kimenÅ‘ üzenet NEM lesz kódolva a Pidgin-Encryption " #~ "bÅ‘vítménnyel" #~ msgid "Rx: secure" #~ msgstr "Rx: biztonságos" #~ msgid "Rx: plain" #~ msgstr "Rx: szöveg" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Az utolsó beérkezett üzenet NEM volt kódolva a Pidgin-Encryption " #~ "bÅ‘vítménnyel" pidgin-encryption-3.1/po/zh_CN.gmo0000644000175100017510000001402511365216012014064 00000000000000Þ•D<a\àáû+5;*qœ)¤2Î * 9GL%l*’½ÄËå'+ <Gg+|<¨8å) H b | Š © ¹ Í × !è ] 6h Ÿ ª Á Æ É ä ( - 0 3 J \ P{ )Ì ö   $) JN @™ ·Ú ’ °  Õ ë [w¢¸8È5!/W‡3 )Ôþ$-'.U„‹’¬$Åê ý  $1AI>‹-Ê$ø :G fs „’/¥\Õ92l•œ£4¹-î#*D"VHy-Âð 9;Cu$¹Þ$|¡½Öéü=D $;?4 :A8-< ,!#2B6'70@3C&5)>9*%+ "1/ (. ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDo you want to accept this key?Encryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-encryption 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2006-02-21 11:08+0800 Last-Translator: Strong Chen Language-Team: Chinese/Simplified MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ***** è­¦ 告 ***** %s 密钥收于 '%s'请使用ç»å¯¹è·¯å¾„接å—å¹¶ä¿å­˜è‡ªåŠ¨æŽ¥å—与使用中ä¸ä¸€è‡´å¯†é’¥(有安全风险)è‡ªåŠ¨æŽ¥å—æ–°çš„密钥å¸å·å¦‚果对方支æŒåР坆æ’ä»¶, æ¡ä¿¡æ¯è‡ªåŠ¨åŠ å¯†é€å‡ºåŠ å¯†ä¿¡æ¯åŽ, æ­¤åŽä¿¡æ¯è‡ªåŠ¨åŠ å¯†ä¸æ­£ç¡®çš„密钥长度消æ¯ä¸­åŒ…å«ä¸æ­£ç¡®çš„ç­¾å (len %d, mod %d) Bill Tompkins, translation by Strong Chenä½å¹¿æ’­ä¼ é€åŠ å¯†å†…å®¹çš„å…¼å®¹æ€§å‘现ä¸ä¸€è‡´çš„ %s 密钥, 对方为 '%s'!接收到ä¸ä¸€è‡´çš„ Pidgin-Encryption 坆钥喿¶ˆè®¾å®šæ”¶åˆ°ä¸ä¸€è‡´çš„密钥!å¤åˆ¶æŒ‡çº¹åˆ°å‰ªåˆ‡æ¿æ— æ³•产生密钥. NSS 错误: %d 建立密钥文件刪除密钥是å¦è¦æŽ¥å—此密钥?加密å议使用 RSA 加密通信错误(2): è¯•å›¾æ”¹å˜æ–‡ä»¶å­˜å‚¨æ¨¡å¼: %s 无法ä¿å­˜å¯†é’¥.错误: è¯•å›¾æ”¹å˜æ–‡ä»¶å­˜å‚¨æ¨¡å¼: %s 无法ä¿å­˜å¯†é’¥.解密时å‘生错误 - è¦æ±‚釿–°å‘é€...å¤„ç† RSANSS 密钥时å‘生错误 产生新密钥å‘生错误.产生密钥正在产生 %s çš„ RSA 密钥密钥指纹密钥指纹:%*s密钥长度:密钥文件ä½ç½®å¯†é’¥é•¿åº¦å°äºŽ 512 使˜¯éžå¸¸ä¸å®‰å…¨çš„密钥长度大于 4096 ä½ä¼šä½¿å¾—ä¿¡æ¯ å…§å®¹è¿‡é•¿ï¼Œå¯¼è‡´ä¼ é€æ¶ˆæ¯æ—¶å‘生 问题上一æ¡é€å‡ºçš„æ¶ˆæ¯å¯èƒ½æ²’被接收到 - é‡ç½®ä¸­æœ¬æœºå¯†é’¥ç®¡ç†äº§ç”Ÿæ–°å¯†é’¥ä¸­...åç§°æ‹’ç»æ‰¾ä¸åˆ°å¯†é’¥æ–‡ä»¶è¯·é€‰æ‹©ä¸€æŠŠæ—§å¯†é’¥ä»¥é‡æ–°ç”Ÿæˆæ–°çš„密钥!沒有密钥å¯ä»¥é‡é€æ¶ˆæ¯. 消æ¯ä¸¢å¤±.确定确定丢失了é€å‡ºçš„æ¶ˆæ¯.Pidgin-Encryption已收到 Pidgin-Encryption 密钥RSA 加密密钥长度为 4096 ä½, 使用 Mozilla NSS 密ç å‡½æ•°åº“. æ”¶åˆ°çš„æ¶ˆæ¯æ˜¯ç”±é”™è¯¯çš„密钥加密的最近收到的好å‹å¯†é’¥é‡æ–°äº§ç”Ÿå¯†é’¥å‘对方请求密钥中...æ¯ä¸€è¡Œå¯¹è¯ä¸­æ˜¾ç¤ºä»£è¡¨å·²åŠ å¯†ä¿¡æ¯çš„å°å›¾æ ‡ä¸Šä¸€æ¡æ”¶åˆ°çš„æ¶ˆæ¯æ˜¯ä½¿ç”¨ Pidgin-Encryptionæ’ä»¶ 加密的此账户密钥太长. 无法å‘é€.现在å¯èƒ½å­˜åœ¨æˆªåŒ…黑客攻击, 或者有人在å‡è£…æˆæ‚¨çš„好å‹. æ‚¨åº”è¯¥ä¸Žå¥½å‹æ£€æŸ¥ä¸€ä¸‹ 在确认之å‰ä»–们是å¦äº§ç”Ÿäº†æ–°çš„密钥.å¯èƒ½éœ€è¦ç‚¹æ—¶é—´ï¼Œè¯·ç¨å€™...åªåœ¨æ­¤æ¬¡å¯¹è¯ä¸­æœ‰æ•ˆå·²ä¿¡ä»»çš„好å‹å¯†é’¥å…³é—­è‡ªåŠ¨åŠ å¯†å¯åŠ¨è‡ªåŠ¨åŠ å¯†æ— æ³•å»ºç«‹å¯†é’¥æ–‡ä»¶pidgin-encryption-3.1/po/pl.po0000644000175100017510000003203611365216010013332 00000000000000# Pidgin-Encryption po file for Polish # Copyright (C) 2004 Marek Habersack # This file is distributed under the GPL # Marek Habersack , 2004 # msgid "" msgstr "" "Project-Id-Version: PIDGIN Encryption\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2004-09-21 12:00+0200\n" "Last-Translator: Marek Habersack \n" "Language-Team: Marek Habersack \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "NieprawidÅ‚owy rozmiar klucza" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Klucze o rozmiarze <512 bitów sÄ… NIEZWYKLE niebezpieczne" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Klucze o rozmiarze > 4096 bitów spowodujÄ… duże\n" " zaÅ›miecenie wysyÅ‚anych wiadomoÅ›ci powodujÄ…c\n" " problemy z transmisjÄ… danych" #: config_ui.c:162 msgid "Generate Keys" msgstr "Generuj klucze" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Wybierz klucz, który ma zostać wygenerowany ponownie!" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Protokół szyfrowania:" #: config_ui.c:203 msgid "Key size:" msgstr "Rozmiar klucza:" #: config_ui.c:245 msgid "Cancel" msgstr "Anuluj" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Ok" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "UsuÅ„ Klucz" #: config_ui.c:396 msgid "Account" msgstr "Konto" #: config_ui.c:398 msgid "Name" msgstr "Nazwa" #: config_ui.c:402 msgid "Bits" msgstr "Bity" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Odcisk palca klucza" #: config_ui.c:498 msgid "Config" msgstr "Konfiguracja" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Szyfruj automatycznie jeÅ›li rozmówca posiada wtyczkÄ™" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Automatycznie akceptuj klucze bÄ™dÄ…ce w konflicie (niebezpieczne)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Szyfruj automatycznie po otrzymaniu zaszyfrowanej wiadomoÅ›ci" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "RozgÅ‚aszaj możliwość szyfrowania" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Szyfruj automatycznie jeÅ›li rozmówca posiada wtyczkÄ™" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "" #: config_ui.c:518 msgid "Keyfile location" msgstr "" #: config_ui.c:525 msgid "Create key files" msgstr "" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Generuj Klucz Ponownie" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Skopiuj odcisk palca do Schowka" #: config_ui.c:571 msgid "Local Keys" msgstr "Klucze Lokalne" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Zaufane Klucze Rozmówców" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Åšwieże Klucze Rozmówców" #: config_ui.c:658 msgid "No key files found at path" msgstr "" #: config_ui.c:667 msgid "Absolute path required" msgstr "" #: config_ui.c:678 msgid "Unable to create key files" msgstr "" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "NieprawidÅ‚owe dane Base64, dÅ‚ugość %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "" "Klucz przypisany do konta jest zbyt duży dla tego protokoÅ‚u. WysÅ‚anie " "niemożliwe." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Ostatnio wysÅ‚ana wiadomość nie odebrana poprawnie - resetowanie" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Otrzymano wiadomość zaszyfrowanÄ… nieprawidÅ‚owym kluczem" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Błąd deszyfrowania - żądanie ponownego wysÅ‚ania..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Żądanie klucza..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Brak klucza by wysÅ‚ać wiadomość ponownie. Wiadomość utracona." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Wiadomość wychodzÄ…ca utracona." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Szyfruje konwersacje za pomocÄ… szyfru RSA" #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "Szyfrowanie za pomocÄ… szyfru RSA z kluczami do 4096 bitów używajÄ…c " "biblioteki kryptograficznej Mozilli.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, tÅ‚umaczenie Marek Habersack" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Wyłącz autoszyfrowanie" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Włącz autoszyfrowanie" #: keys.c:98 msgid "Making new key pair..." msgstr "Tworzenie nowej pary kluczy..." #: keys.c:115 msgid "Error trying to make key." msgstr "Błąd przy próbie utworzenia klucza." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Otrzymano niezgodny klucz!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Błąd przy zmianie praw dostÄ™pu do pliku: %s\n" "Nie można zachować klucza." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Błąd (2) przy zmianie prawa dostÄ™pu do pliku: %s\n" "Nie można zachować klucza." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "NieprawidÅ‚owe prawa dostÄ™pu pliku z kluczami: %s\n" "Pidgin-Encryption nie zapisze kluczy w pliku z prawami dostÄ™pu dla Grupy i " "Wszystkich" #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "NieprawidÅ‚owe prawa dostÄ™pu pliku z kluczami: %s\n" "Pidgin-Encryption nie zapisze kluczy w pliku z prawami dostÄ™pu dla Grupy i " "Wszystkich" #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Otrzymano Klucz Pidgin-Encryption" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "otrzymano klucz %s dla '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Odcisk palca klucza:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Czy chcesz zaakceptować ten klucz?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Nie" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Zaakceptuj i Zapisz" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Tylko dla tej sesji" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "Otrzymano NIEZGODNY klucz Pidgin-Encryption" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr "******* UWAGA *******" #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "Otrzymano NIEZGODNY klucz %s dla '%s'!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Istnieje możliwość, iż jest to atak typu \"poÅ›rednik\" lub\n" "ktoÅ› podaje siÄ™ za twojego rozmówcÄ™.\n" "Należy sprawdzić czy rozmówca rzeczywiÅ›cie wygenerowaÅ‚\n" "niniejszy nowy klucz zanim siÄ™ go zaakceptuje." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "GenerujÄ™ parÄ™ kluczy RSA dla '%s'" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Może to chwilÄ™ potrwać..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Nie można wygenerować klucza. Błąd NSS: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Błąd przetwarzania klucza RSANSS\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "NieprawidÅ‚owa sygnatura wiadomoÅ›ci (dÅ‚ugość %d, moduÅ‚ %d)\n" #: state_ui.c:106 state_ui.c:126 #, fuzzy msgid "Enable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:146 #, fuzzy msgid "Disable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "Ostatnia odebrana wiadomość byÅ‚a zaszyfrowana za pomocÄ… Pidgin-Encryption" #, fuzzy #~ msgid "Encrypt Outgoing Messages" #~ msgstr "Wiadomość wychodzÄ…ca utracona." #~ msgid "Tx: capable" #~ msgstr "WysyÅ‚anie: możliwe" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "Twój rozmówca wydaje siÄ™ posiadać wtyczkÄ™ Pidgin-Encryption. Jednakże " #~ "twoja nastÄ™pna wiadomość NIE bÄ™dzie szyfrowana za pomocÄ… Pidgin-Encryption" #~ msgid "Tx: secure" #~ msgstr "WysyÅ‚anie: bezpieczne" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "NastÄ™pna wiadomość bÄ™dzie zaszyfrowana za pomocÄ… Pidgin-Encryption" #~ msgid "Tx: plain" #~ msgstr "WysyÅ‚anie: zwykÅ‚e" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "" #~ "NastÄ™pna wiadomość NIE bÄ™dzie szyfrowana za pomocÄ… Pidgin-Encryption" #~ msgid "Rx: secure" #~ msgstr "Odbiór: bezpieczny" #~ msgid "Rx: plain" #~ msgstr "Odbiór: zwykÅ‚y" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Ostatnia odebrana wiadomość NIE byÅ‚a zaszyfrowana za pomocÄ… Pidgin-" #~ "Encryption" #~ msgid "" #~ "Compiled with '%s', running with '%s'. Pidgin-Encryption will probably " #~ "not run right.\n" #~ msgstr "" #~ "Skompilowano z wersjÄ… '%s', uruchomiono z wersjÄ… '%s'. Pidgin-Encryption " #~ "najprawdopodobniej bÄ™dzie dziaÅ‚ać nieprawidÅ‚owo.\n" #~ msgid "" #~ "Pidgin-Encryption plugin was compiled with a different version of " #~ "Pidgin. You may experience problems." #~ msgstr "" #~ "Wtyczka Pidgin-Encryption zostaÅ‚a skompilowana dla innej wersji Pidgin. " #~ "Możliwe wystÄ…pienie problemów." #~ msgid "Currently cached keys" #~ msgstr "Klucze znajdujÄ…ce siÄ™ w pamiÄ™ci podrÄ™cznej" #~ msgid "Key Type" #~ msgstr "Typ klucza" #~ msgid "Protocol" #~ msgstr "Protokół" #~ msgid "private" #~ msgstr "prywatny" #~ msgid "public" #~ msgstr "publiczny" #~ msgid "Error parsing RSANSS nonce/key\n" #~ msgstr "Błąd przetwarzania momentu/klucza RSANSS\n" #~ msgid "Error decoding Base64 RSANSS Public key\n" #~ msgstr "Błąd odkodowywania Base64 klucza publicznego RSANSS\n" #~ msgid "Error Base64 decoding RSANSS Public key\n" #~ msgstr "Błąd odkodowywania Base64 klucza publicznego RSANSS\n" #~ msgid "Error decoding RSANSS Public key\n" #~ msgstr "Błąd odkodowywania klucza publicznego RSANSS\n" #~ msgid "Error parsing RSANSS Private key\n" #~ msgstr "Błąd przetwarzania klucza prywatnego RSANSS\n" #~ msgid "Error parsing Base64 in RSANSS Private Key\n" #~ msgstr "Błąd odkodowywania Base64 klucza prywatnego RSANSS\n" #~ msgid "Error creating symmetric key: unable to load private key\n" #~ msgstr "" #~ "Błąd tworzenia klucza symetrycznego: nie można wczytać klucza prywatnego\n" #~ msgid "Error decoding RSANSS Private key\n" #~ msgstr "Błąd dekodowania prywatnego klucza RSANSS\n" #~ msgid "No Nonce in message\n" #~ msgstr "Brak momentu w wiadomoÅ›ci\n" #~ msgid "Bad Nonce in message\n" #~ msgstr "NieprawidÅ‚owy moment w wiadomoÅ›ci\n" #~ msgid "Can't load the NSS plugin\n" #~ msgstr "Nie można wczytać wtyczki NSS\n" #~ msgid "" #~ "Pidgin was not compiled with the NSS plugin enabled. Pidgin-Encryption " #~ "requires the NSS plugin to function." #~ msgstr "" #~ "Pidgin nie zostaÅ‚ skompilowany z uaktywnionÄ… wtyczkÄ… NSS. Pidgin-" #~ "Encryption wymaga tej wtyczki do funkcjonowania." #~ msgid "PK11_PubDecryptRaw Failed\n" #~ msgstr "Błąd PK11_PubDecryptRaw\n" #~ msgid "Not a multiple of block len: %d %d %d\n" #~ msgstr "Liczba nie jest iloczynem dÅ‚ugoÅ›ci bloku: %d %d %d\n" #~ msgid "PubDecryptRaw failed %d\n" #~ msgstr "Błąd %d PubDecryptRaw\n" #~ msgid "OAEP unpadding failed\n" #~ msgstr "OdÅ›cieÅ‚anie OAEP nie powiodÅ‚o siÄ™\n" #~ msgid "Bad msg_len in Auth\n" #~ msgstr "NieprawidÅ‚owa zmienna msg_len w Auth\n" #~ msgid "PK11_PubEncryptRaw Failed\n" #~ msgstr "Błąd PK11_PubEncryptRaw\n" #~ msgid " (Pidgin " #~ msgstr " (Pidgin " #~ msgid ")" #~ msgstr ")" pidgin-encryption-3.1/po/hu.gmo0000644000175100017510000001357111365216011013503 00000000000000Þ•> SüHIc|5Œ*Âí)õ2 R*_ Š˜%½*ã6'T |‡§+¼<è8%)^ˆ¢ ¼Êéù ! ]9 6— Î Ù ð õ ø ( A D G ^ p P )à   + J= @ˆ ·É  Ÿ ± Ä Ú Rï B]w?Ž9ÎA4P…3—?Ë $.+S ‡”$¯1Ô/*Cdn`Ó64+k#—»"Óö  0-A^E  æô46Qˆ‹Ž«!½bß/BrŒ¨PºH ŠTßù#1#U :3"+!-,=6>47&)* .5% 2'# ; (90/1<$8  ******* WARNING ******* %s key received for '%s'Accept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Delete KeyDo you want to accept this key?Encryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...The last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnProject-Id-Version: pidgin-encryption 2.38 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2005-07-10 15:08+0200 Last-Translator: Laszlo Dvornik Language-Team: Peter Tutervai MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* FIGYELEM ******* %s kulcs érkezett ('%s')Elfogadás és mentésAz ütközÅ‘ kulcsok automatikus elfogadása (nem biztonságos)Kulcsok automatikus elfogadása, ha nincs kulcs a fájlonFiókAutomatikus kódolás, ha a partner rendelkezik a bÅ‘vítménnyelAutomatikus kódolás kódolt üzenet küldésénélRossz kulcsméretRossz aláírás az üzenetben (hossz %d, mód %d) Bill Tompkins, fordította Tutervai Péter és Dvornik LászlóBitKódolási képesség jelzéseÜTKÖZÅ %s kulcs érkezett! ('%s')ÜTKÖZÅ Pidgin-Encryption kulcs érkezettMégsemBeállításÜtközÅ‘ kulcs érkezett!Ujjlenyomat másolása a vágólapraNem lehet előállítani a kulcsot. NSS hiba: %d Kulcs törléseElfogadja ezt a kulcsot?Kódoló protokoll:Párbeszédek kódolása RSA kódolással.Hiba (2) a hozzáférési mód átállítása közben a(z) %s fájlon Nem lehet elmenteni a kulcsot.Hiba a hozzáférési mód átállítása közben a(z) %s fájlon Nem lehet elmenteni a kulcsot.Hiba a dekódolásban - kérelem az újraküldésre...Hiba az RSANSS kulcs értelmezése közben Hiba a kulcs létrehozása közben.Kulcsok előállításaRSA kulcspár előállítása (%s)Kulcs ujjlenyomataKulcs ujjlenyomata:%*sKulcsméret:Az 512 bitnél kisebb kódolás NEM biztonságosA 4096 bitnél nagyobb kulcsok lassíthatják az üzenetküldéstAz utolsó kimenÅ‘ üzenet nem érkezett meg rendesen - újraküldésHelyi kulcsokÚj kulcspár létrehozása...NévNemNincs kiválasztva kulcs az újra-előállításhoz!Nincs kulcs az újraküldéshez. Az üzenet elveszett.OKOKElveszett a kimenÅ‘ üzenet.Pidgin-EncryptionPidgin-Encryption kulcs érkezettRSA kódolás maximum 4096 bites kulcsokkal, a Mozilla NSS crypto programkönyvtárat használva. A fogadott üzenet rossz kulccsal lett kódolvaLegutóbbi partnerkulcsokKulcs újra-előállításaKulcs kérése...Az utolsó beérkezett üzenet kódolva volt a Pidgin-Encryption bÅ‘vítménnyelEz a fiókkulcs túl hosszú ehhez a protokollhoz. Nem lehet elküldeni.Ez egy man-in-the-middle támadás, vagy valaki a partnerének álcázza magát. Jobb, ha leellenÅ‘rzi az új kulcsot, mielÅ‘tt elfogadja.Ez eltarthat egy ideig...Csak erre a munkafolyamatraMegbízható partnerkulcsokAutomatikus kódolás kikapcsolásaAutomatikus kódolás bekapcsolásapidgin-encryption-3.1/po/fr.gmo0000644000175100017510000001630711365216011013476 00000000000000Þ•H\aœ !;Tk5{*±Ü)ä2 A*N y‡Œ%¬*Òý %'Ck |‡šºÌ+á< 8J )ƒ ­ Ç á ï   2 < !M ]o 6Í   & + . I (i ’ • ˜ r¯ q" ” ¦ PÅ ) @ R a $s J˜ @ã ·$Üú 5JPe¶Ò$ë9(Lb¯=¶4ô)0C&t›$¤.É!ø "03P1„¶Óãþ02Fgycá3E.y'¨Ð-æ)DW,wb¤H P#^‚†'Š(²4ÛŒ2„¿D"Vky-å/F4YJŽ?ÙØ$ò2&R"y*œAH &?CE= 68"></!@ .#%4F:);2D5G(9+B7,'- $31 *0 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Permissions on key file changed for: %s Pidgin-Encryption will not save keys to a world- or group-accessible file.Permissions on key file changed for: %s Pidgin-Encryption will not use keys in a world- or group-accessible file.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-Encryption 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2007-10-26 12:06+0200 Last-Translator: Davy Defaud Language-Team: Davy Defaud MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* ATTENTION ******* Clef %s reçue pour '%s'Un chemin d'accès absolu est requisAccepter et enregistrerAccepter automatiquement les clefs en conflit (dangereux)Accepter automatiquement une clef si aucune n'est associée au correspondantCompteChiffrer automatiquement quand le contact possède le greffonChiffrer automatiquement si le correspondant chiffreMauvaise longueur de clefMauvaise signature du message (long %d, mod %d) Bill Tompkins, traduit par Davy DefaudLongueurDiffuser la capacité de chiffrementLa clef '%s' reçue pour '%s' est en CONFLIT !CONFLIT de clef Pidgin-EncryptionAnnulerConfigurationLa clef reçue est en conflit !Copier l'empreinte de la clef dans le presse-papierGénération de clef impossible. Erreur NSS : %d Créer les fichiers de clefsEffacer la clefDésactiver le chiffrementAcceptez-vous cette clef ?Activer le chiffrementType de chiffrement :Chiffre les conversations avec un chiffrement RSA.Erreur (2) lors du changement des droits d'accès au fichier : %s Enregistrement de la clef impossible.Erreur lors du changement des droits d'accès du fichier : %s Enregistrement de la clef impossible.Erreur lors du déchiffrement, demande de renvoi...Erreur au cours de l'examen de la clef RSANSS Erreur lors de la génération de clef.Génération de clefsGénération d'une paire de clefs RSA pour %sEmpreinte de la clefEmpreinte de la clef : %*sLongueur de clef :Emplacement du fichier de clefsLes clefs < 512 bits sont TRÈS peu sûres !Les clefs supérieures à 4096 bits dilatent les messages, causant des problèmes de transmission.Le dernier message envoyé a été mal réceptionné - réinitialisationClefs localesGénération d'une paire de clef...NomNonAucun fichier de clefs à l'emplacementSélectionnez une clef à régénérer !Aucune clef pour renvoyer le message. Message perdu.OKValiderMessage sortant perdu.Droits d'accès modifiés sur le fichier de clefs : %s Pidgin-Encryption n'enregistrera pas dans un fichier accessible à tous ou au groupe.Droits d'accès modifiés sur le fichier de clefs : %s Pidgin-Encryption n'utilisera pas un fichier accessible à tous ou au groupe.Pidgin-EncryptionClef pour Pidgin-Encryption reçueChiffrement RSA avec une longueur de clef jusqu'à 4096 bits, via la librairie de chiffrement Mozilla NSS. Message reçu chiffré avec une mauvaise clefClefs des contacts récentsRégénérer des clefsDemande de clef...Afficher l'icône cadenas à chaque envoi/réceptionLe dernier message reçu a été chiffré par le greffon Pidgin-EncryptionCette clef est trop grande pour ce protocole. Envoi impossible.Cela peut-être une attaque du type homme-au-milieu, ou bien quelqu'un se faisant passer pour votre contact. Vous devriez vérifier avec lui s'il a généré cette nouvelle clef avant de lui accorder votre confiance.Ceci peut prendre un peu de temps...Uniquement pour la sessionClefs des contacts de confianceDésactiver le chiffrement automatiqueActiver le chiffrement automatiqueImpossible de créer les fichiers de clefspidgin-encryption-3.1/po/uk.po0000644000175100017510000002560011365216010013335 00000000000000# Ukrainian translation of Pidgin-Encryption. # Copyright (C) 2004 William Tompkins # This file is distributed under the same license as the Pidgin-Encryption package. # Roman Sosenko , 2005. # # msgid "" msgstr "" "Project-Id-Version: Pidgin-Encryption 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2006-01-10 09:07+0100\n" "Last-Translator: Roman Sosenko \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Ðеправильний розмір ключа" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Ключі < 512 біт ДУЖЕ небезпечні" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Ключі > 4096 біт можуть Ñуттєво\n" "збільшувати повідомленнÑ, Ñтворюючи проблеми з\n" "передачею" #: config_ui.c:162 msgid "Generate Keys" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ñ–Ð²" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Виберіть ключ Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ генеруваннÑ!" #: config_ui.c:180 msgid "OK" msgstr "ОК" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Протокол кодуваннÑ:" #: config_ui.c:203 msgid "Key size:" msgstr "Розмір ключа:" #: config_ui.c:245 msgid "Cancel" msgstr "Відмінити" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "ОК" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Видалити ключ" #: config_ui.c:396 msgid "Account" msgstr "Еккаунт" #: config_ui.c:398 msgid "Name" msgstr "Ім'Ñ" #: config_ui.c:402 msgid "Bits" msgstr "Розмір (біти)" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Відбиток ключа" #: config_ui.c:498 msgid "Config" msgstr "Конфіг." #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "За відÑутноÑті ключа у файлі ввеÑти ключ автоматично " #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Ðвтоматично ввеÑти конфліктний ключ (небезпечно)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Ðвтоматично кодувати, Ñкщо відправлене закодоване повідомленнÑ" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "ТранÑлювати здатніÑть кодуваннÑ" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Ðвтоматично кодувати, Ñкщо у контакта Ñ” модуль" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "" #: config_ui.c:518 msgid "Keyfile location" msgstr "МіÑце Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° ключа" #: config_ui.c:525 msgid "Create key files" msgstr "Створити файли ключа" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Створити ключ знову" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Скопіювати відбиток у буфер обміну данними" #: config_ui.c:571 msgid "Local Keys" msgstr "Локальні ключі" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Ключі надійного контакта" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Ключі нового контакта" #: config_ui.c:658 msgid "No key files found at path" msgstr "Файли ключа на шлÑху не знайдено" #: config_ui.c:667 msgid "Absolute path required" msgstr "Ðеобхідний абÑолютний шлÑÑ…" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Ðеможливо Ñтворити файли ключа" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Данні в Base64 неправильні, розмір %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "Цей ключ занадто великий Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ протоколу. Ðеможливо відправити." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "ОÑтаннє вихідне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ з помилкою. ПеренаÑтройка" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Отримане Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ закодоване з допомогою неправильного ключа" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Помилка при декодуванні, Ð¿Ñ€Ð¾Ñ…Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸ повторно..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Запит ключа..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "ВідÑутніÑть ключа Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ відправленнÑ. ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ðµ." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Вихідне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ðµ." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Кодує розмови за методом RSA." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° методом RSA з ключами до 4906 біт з викориÑтаннÑм бібліотеки " "кодів Mozilla NSS.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Білл ТомпкінÑ, переклад Романа СоÑенка" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Вимкнути автокодуваннÑ" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Увімкнути автокодуваннÑ" #: keys.c:98 msgid "Making new key pair..." msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— пари ключів..." #: keys.c:115 msgid "Error trying to make key." msgstr "Помилка при Ñпробі ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð°." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Отримано конфліктний ключ!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Ошибка при изменении права доÑтупа к файлу: %s\n" "ÐевозможноÑть Ñохранить ключ." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Помилка (2) при зміні права доÑтупу до файлу: %s\n" "Ðеможливо зберегти ключ." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Ðеправильні права доÑтупу до файла з ключами: %s\n" "Pidgin-Encryption не збереже ключі в загальнодоÑтупному файлі або у файлі, " "доÑтупному групі." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Ðеправильні права доÑтупу до файла з ключами: %s\n" "Pidgin-Encryption не збереже ключі в загальнодоÑтупному файлі або у файлі, " "доÑтупному групі." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Отримано ключ Pidgin-Encryption" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "Отримано %s ключ Ð´Ð»Ñ '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Відбиток ключа: %*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Ви хочете ввеÑти цей ключ?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "ÐÑ–" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "ВвеÑти та зберегти" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Лише Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— ÑеÑÑ–Ñ—" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "Отримано конфліктний ключ Pidgin-Encryption" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* УВÐГР******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "Отримано КОÐФЛІКТÐИЙ %s ключ Ð´Ð»Ñ '%s'!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Можливо, відбулаÑÑ Ð°Ñ‚Ð°ÐºÐ° \"man-in-thе-middle\" або\n" " хтоÑÑŒ видає Ñебе за вашего контакта.\n" "Ви повинні перевірити, чи Ñправді ваш контакт Ñтворив цей ключ перед тим, чк " "викориÑтовувати його." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¸ ключів RSA Ð´Ð»Ñ %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Це може зайнÑти трохи чаÑу..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Ðеможливо Ñтворити ключ. Помилка NSS: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Помилка при аналізі ключа RSANSS\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Ðеправильний Ð¿Ñ–Ð´Ð¿Ð¸Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ (розмір %d, модуль %d)\n" #: state_ui.c:106 state_ui.c:126 #, fuzzy msgid "Enable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:146 #, fuzzy msgid "Disable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" #~ msgid "Encrypt Outgoing" #~ msgstr "Закодувати вихідне повідомленнÑ" pidgin-encryption-3.1/po/es.gmo0000644000175100017510000001350011365216011013466 00000000000000Þ•8ÜOœØÙó 5*R)}2§ Ú*ç  %%E*k–·'Õý+2<^8›)Ôþ 2@_o ƒ!]¯6 D [ ` c (ƒ ¬ ¯ ² É Û Pú )K u „ J– @á ·" Ú ø   y5 ¯ $È í Rÿ CR8–:Ï ;$ `n"s.–0Åö&ÿ &9G–)¬]ÖX4<0Ê(û$&:atˆ1ˆÏEX#žÂÉ/ÌGüDGJd+vh¢7 CVVnJÅÄÕî$0(  '"72)*4/. 8, 5+ 3#- %&6!1$ ******* WARNING ******* %s key received for '%s'Accept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Do you want to accept this key?Encryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingMaking new key pair...NameNoNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRegenerate KeyRequesting key...The last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTurn Auto-Encrypt OffTurn Auto-Encrypt OnProject-Id-Version: Pidgin-Encryption Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2004-09-09 20:41+0200 Last-Translator: Javier Fernández-Sanguino Language-Team: Spanish team MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; ******** AVISO ********Se recibió una clave %s para «%s»Aceptar y guardarAceptar las claves conflicitvas automáticamente (conlleva un riesgo de seguridad)Aceptar la clave automáticamente si no hay una clave en el ficheroCifrar automáticamente si el amigo tiene el complementoCifrar automáticamente si se le envió un mensaje cifradoTamaño de clave erróneoLa firma del mensaje no es correcta (longitud %d, mód %d) Bill TompkinsBitsIndicar las capacidades de cifrado¡Se recibió la clave %s ERRONEA para «%s»!Se recibió una clave Cifrado de Pidgin ERRÓNEACancelar¡Se recibió una clave problemática!Copiar la huella al portapapelesNo se pudo generar la clave. Se produjo un error NSS: %d ¿Acepta esta clave?Protocolo de cifrado:Cifra las conversaciones con cifrado RSA.Se produjo un error (2) al cambiar los permismos del fichero: %s No se pudo guardar la clave.Se produjo un error al cambiar los permisos del fichero: %s No se pudo guardar la clave.Se produjo un error al descifrar, solicitando un reenvío...Se produjo un error al analizar la clave RSANSS Se produjo un error al generar la clave.Generar par de clavesGenerando un par de claves RSA para %sHuella de la claveHuella de clave:%*sTamaño de la clave:Las claves de menos de 512 bits son MUY insegurasLas claves de más de 4096 bits pueden hacer crecer los mensajes de forma excesiva causando problemas en la transmisión de los mensajesNo se recibió correctamente el último mensaje saliente, reiniciandoGenerando un nuevo par de claves...NombreNo¡No ha seleccionado ninguna clave a regenerar!No existe una clave para reenviar el mensaje. El mensaje se ha perdido.OKOkMensaje saliente perdido.Cifrado de PidginSe recibió un clave para Cifrado de PidginCifrado RSA con claves de hasta 4096 bits, haciendo uso de la biblioteca criptográfica NSS de Mozilla. Se recibió un mensaje cifrado con una clave incorrectaRegenerar la claveSolicitando la clave...El último mensaje que recibió estaba cifrado con el complemento de Cifrado de PidginEsta clave de cuenta es muy grande para este protocolo. No se pudo enviar.Podría tratarse de una ataque de tercero interpuesto, o alguien se está haciendo pasar por su amigo. Debería contactar con su amigo para ver si ha generado esta nueva clave antes de aceptarla.Esto tardará un rato...Sólo por esta sesiónDesactivar cifrado automáticoActivar cifrado automáticopidgin-encryption-3.1/po/lt.po0000644000175100017510000002204511365216010013335 00000000000000# translation of pidgin-encryption.po to # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # Andrius , 2006. # msgid "" msgstr "" "Project-Id-Version: pidgin-encryption\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2006-02-20 16:18+0200\n" "Last-Translator: Andrius Å tikonas \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Lithuanian\n" "X-Poedit-Country: LITHUANIA\n" "X-Poedit-SourceCharset: utf-8\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%" "100<10 || n%100>=20) ? 1 : 2);\\n\n" "X-Generator: KBabel 1.10.2\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Blogas rakto dydis" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Raktai < 512 bitų yra LABAI nesaugÅ«s" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Raktai > 4069 labai stabdys\n" "praneÅ¡imų Å¡ifravimÄ… ir bus problemų su \n" "žinuÄių siuntimu" #: config_ui.c:162 msgid "Generate Keys" msgstr "Generuoti raktus" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "NepažymÄ—tas joks raktas generavimui iÅ¡ naujo!" #: config_ui.c:180 msgid "OK" msgstr "Gerai" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Å ifravimo protokolas:" #: config_ui.c:203 msgid "Key size:" msgstr "Rakto dydis:" #: config_ui.c:245 msgid "Cancel" msgstr "AtÅ¡aukti" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Gerai" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Trinti raktÄ…" #: config_ui.c:396 msgid "Account" msgstr "Abonentas" #: config_ui.c:398 msgid "Name" msgstr "Vardas" #: config_ui.c:402 msgid "Bits" msgstr "Bitai" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "PirÅ¡tų atspaudai" #: config_ui.c:498 msgid "Config" msgstr "Nustatymai" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Priimti automatiÅ¡kai, jei byloje nÄ—ra rakto" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Priimti konfliktuojanÄius raktus (saugumo rizika)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "AutomatoÅ¡kai Å¡ifruoti, jei gauta Å¡ifruota žinutÄ—" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Transliuoti Å¡ifravimo galimybÄ™" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "AutomatiÅ¡kai Å¡ifruoti, jei draugas turi įskiepį" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "" #: config_ui.c:518 msgid "Keyfile location" msgstr "Raktų bylos vieta" #: config_ui.c:525 msgid "Create key files" msgstr "Sukurti raktų bylas" #: config_ui.c:556 msgid "Regenerate Key" msgstr "IÅ¡ naujo sugeneruoti raktÄ…" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Kopijuoti pirÅ¡tų atspaudus į Mainų sritį" #: config_ui.c:571 msgid "Local Keys" msgstr "Vietiniai raktai" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "patikimų draugų raktai" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Paskutinių draugų raktai" #: config_ui.c:658 msgid "No key files found at path" msgstr "Nerasta raktų bylų" #: config_ui.c:667 msgid "Absolute path required" msgstr "Reikalingas absoliutus kelias" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Nepavyko sukurti raktų bylų" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Klaidingi Base64 duomenys, ilgis %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "" "\"Å is abonento raktas yra per didelis Å¡iam protokolui. Negalima iÅ¡siųsti." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "PaskutinÄ— iÅ¡einanti žinutÄ— nebuvo tinkamai gauta - pakartojama" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Gautas praneÅ¡imas Å¡ifruotas su blogu raktu" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Klaida deÅ¡ifruojant - praÅ¡oma persųsti..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Reikalaujama rakto..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "NÄ—ra rakto praneÅ¡imo persiuntimui. PraneÅ¡imas prarastas." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "IÅ¡einantis praneÅ¡imas prarastas." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Å ifruoja praneÅ¡imus RSA Å¡ifru." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "RSA Å¡ifravimas su raktais iki 4096 bitų, naudojant Mozilla NSS " "kriptografijos bibliotekÄ….\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tomkins, iÅ¡vertÄ— Andrius Å tikonas" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "IÅ¡jungti automatinį Å¡ifravimÄ…" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Ä®jungti automatinį Å¡ifravimÄ…" #: keys.c:98 msgid "Making new key pair..." msgstr "Generuojama nauja raktų pora..." #: keys.c:115 msgid "Error trying to make key." msgstr "Klaida generuojant raktÄ…." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Gautas konfliktuojantis raktas!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Klaida, keiÄiant prieigos režimÄ… failui: %s\n" "Negaliu iÅ¡saugoti rakto." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Klaida (2), keiÄiant prieigos režimÄ… failui: %s\n" "Negaliu iÅ¡saugoti rakto." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Blogas failo %s režimas\n" "Pidgin-Encryption neiÅ¡saugos raktų į pasauliui ar grupei pasiekiamÄ… failÄ…." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Blogas failo %s režimas\n" "Pidgin-Encryption neiÅ¡saugos raktų į pasauliui ar grupei pasiekiamÄ… failÄ…." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "gautas Pidgin-Encryption raktas" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s raktas gautas \"%s\"" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Rakto pirÅ¡tų atspaudai:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Ar norite priimtį šį raktÄ…" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Ne" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Priimti ir iÅ¡saugoti" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Tik Å¡iÄ… sesijÄ…" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "Gautas KONFLIKTUOJANTIS Pidgin-Encryption raktas" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* Ä®SPÄ–JIMAS ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "KONFLIKTUOJANTIS %s raktas gautas \"%s\"!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Tai gali bÅ«ti žmogaus viduryje ataka, arba\n" "kažkas bando apsimesti jÅ«sų draugu.\n" "JÅ«s turite patikrinti su draugu, ar jis\n" "sugeneravo naujÄ… raktÄ…, prieÅ¡ jį patvirtinant." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Generuojama RSA raktų pora %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Tai gali kažkiek užtrukti..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Negaliu sugeneruoti rakto. NSS klaida: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Klaida nagrinÄ—jant RSANSS raktÄ…\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Blogas žinutÄ—s paraÅ¡as (ilgis %d, metodas %d)\n" #: state_ui.c:106 state_ui.c:126 #, fuzzy msgid "Enable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:146 #, fuzzy msgid "Disable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" #~ msgid "Encrypt Outgoing" #~ msgstr "Å ifruoti iÅ¡einanÄius" pidgin-encryption-3.1/po/sv.po0000644000175100017510000002400411365216010013343 00000000000000# Swedish translation of pidgin-encryption. # Copyright (C) 2006 Daniel Nylander # This file is distributed under the same license as the pidgin-encryption package. # Daniel Nylander , 2006. # msgid "" msgstr "" "Project-Id-Version: pidgin-encryption 2.38-1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2006-01-15 21:38+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Fel nyckelstorlek" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Nycklar < 512 bitar är MYCKET osäkra" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Nycklar > 4096 bitar kommer att orsaka\n" "stora meddelanden och problem med\n" "överföring av meddelanden" #: config_ui.c:162 msgid "Generate Keys" msgstr "Generera nycklar" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Ingen nyckel vald att genereras om!" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Krypteringsprotokoll:" #: config_ui.c:203 msgid "Key size:" msgstr "Nyckellängd:" #: config_ui.c:245 msgid "Cancel" msgstr "Avbryt" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Ok" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Ta bort nyckel" #: config_ui.c:396 msgid "Account" msgstr "Konto" #: config_ui.c:398 msgid "Name" msgstr "Namn" #: config_ui.c:402 msgid "Bits" msgstr "Bitar" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Fingeravtryck för nyckel" #: config_ui.c:498 msgid "Config" msgstr "Konfiguration" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Acceptera nyckel automatiskt om ingen nyckel finns" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Acceptera konflikterande nycklar automatiskt (säkerhetsrisk)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Kryptera automatiskt om krypterat meddelande skickades" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Meddela krypteringsmöjlighet" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Kryptera automatiskt om kompis har insticksmodul" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "" #: config_ui.c:518 msgid "Keyfile location" msgstr "" #: config_ui.c:525 msgid "Create key files" msgstr "" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Generera om nyckel" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Kopiera fingeravtryck till Urklipp" #: config_ui.c:571 msgid "Local Keys" msgstr "Lokala nycklar" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "PÃ¥litliga kompisnycklar" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Senaste kompisnycklar" #: config_ui.c:658 msgid "No key files found at path" msgstr "" #: config_ui.c:667 msgid "Absolute path required" msgstr "" #: config_ui.c:678 msgid "Unable to create key files" msgstr "" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Ogiltig Base64-data, längd %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "" "Denna kontonyckel är för stor för det här protokollet. Kan inte skicka." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Senaste utgÃ¥ende meddelande togs inte emot korrekt - Ã¥terställer" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Mottaget meddelande är krypterat med fel nyckel" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Fel i dekryptering - frÃ¥gar efter omsändning..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Begär nyckel..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Ingen nyckel att omsända meddelande. Meddelande förlorat." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "UtgÃ¥ende meddelande förlorat." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Kryptering" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Krypterar konversationer med RSA-kryptering." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "RSA-kryptering med nycklar upp till 4096-bitar med Mozillas NSS-" "krypteringsbibliotek.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, översättning av Daniel Nylander" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Stäng av autokryptering" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Aktivera autokryptering" #: keys.c:98 msgid "Making new key pair..." msgstr "Skapar nytt nyckelpar..." #: keys.c:115 msgid "Error trying to make key." msgstr "Fel vid försök att skapa nyckel." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Konflikterande nyckel mottagen!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Fel vid byte av tillgÃ¥ngsläge för fil: %s\n" "Kan inte spara nyckel." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Fel (2) vid byte av tillgÃ¥ngsläge för fil: %s\n" "Kan inte spara nyckel." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Fel rättigheter pÃ¥ nyckelfil: %s\n" "Pidgin-Encryption kommer inte spara nycklar till en fil tillgänglig för " "grupp eller alla." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Fel rättigheter pÃ¥ nyckelfil: %s\n" "Pidgin-Encryption kommer inte spara nycklar till en fil tillgänglig för " "grupp eller alla." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Nyckel för Pidgin-Encryption mottagen" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s nyckel mottogs för '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Fingeravtryck för nyckel:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Accepterar du den här nyckeln?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Nej" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Acceptera och spara" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Endast den här sessionen" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "KONFLIKTERANDE Pidgin-Encryption-nyckel mottagen" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* VARNING ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "KONFLIKTERANDE %s nyckel mottagen för \"%s\"!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Det här kan vara en man-i-mitten-attack eller\n" "kan vara nÃ¥gon som utger sig för att vara din kompis.\n" "Du bör kontrollera med din kompis för att se om denne\n" "har genererat den nya nyckeln före den blev pÃ¥litlig." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Genererar RSA-nyckelpar för %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Det här kan ta lite tid..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Kunde inte generera nyckel. NSS-fel: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Fel vid tolkning av RSANSS-nyckel\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Felaktig signatur i meddelande (len %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 #, fuzzy msgid "Enable Encryption" msgstr "Kryptering" #: state_ui.c:146 #, fuzzy msgid "Disable Encryption" msgstr "Kryptering" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "Senaste meddelandet som togs emot var krypterat med insticksmodulen Pidgin-" "Encryption" #~ msgid "Tx: capable" #~ msgstr "Tx: möjlig" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "Din kompis verkar ha insticket Pidgin-Encryption. Ditt nästa utgÃ¥ende " #~ "meddelande kommer dock INTE att vara krypterat av insticksmodulen Pidgin-" #~ "Encryption" #~ msgid "Tx: secure" #~ msgstr "Tx: säker" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Ditt nästa utgÃ¥ende meddelande kommer att vara krypterat av " #~ "insticksmodulen Pidgin-Encryption" #~ msgid "Tx: plain" #~ msgstr "Tx: klartext" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "" #~ "Ditt nästa utgÃ¥ende meddelande kommer INTE att vara krypterat av " #~ "insticksmodulen Pidgin-Encryption" #~ msgid "Rx: secure" #~ msgstr "Rx: säker" #~ msgid "Rx: plain" #~ msgstr "Rx: klartext" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Senaste meddelandet som togs emot var INTE krypterat med insticksmodulen " #~ "Pidgin-Encryption" pidgin-encryption-3.1/po/sl.gmo0000644000175100017510000001631011365216011013477 00000000000000Þ•H\aœ !;Tk5{*±Ü)ä2 A*N y‡Œ%¬*Òý %'Ck |‡šºÌ+á< 8J )ƒ ­ Ç á ï   2 < !M ]o 6Í   & + . I (i ’ • ˜ r¯ q" ” ¦ PÅ ) @ R a $s J˜ @ã ·$Üú 5Jez–°Ê<Ü4N.U>„Ã(Ý)0#6'Z1‚ ´ ¿Ê#æ) 4O_v’§%½ZãW><–#Ó÷'F[vˆ$ŸjÄD/t$…ª®%±)×GIP&W†~†Œ$ŸTÄ5'OwŽ.¥LÔA!³c 2"?b‚&¡AH &?CE= 68"></!@ .#%4F:);2D5G(9+B7,'- $31 *0 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Permissions on key file changed for: %s Pidgin-Encryption will not save keys to a world- or group-accessible file.Permissions on key file changed for: %s Pidgin-Encryption will not use keys in a world- or group-accessible file.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Å ifriranje Pidgin Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2007-09-22 15:54+0100 Last-Translator: Martin Srebotnjak Language-Team: Martin Srebotnjak, LUGOS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0); X-Poedit-Language: Slovenian X-Poedit-Country: SLOVENIA X-Poedit-SourceCharset: iso-8859-1 ******* OPOZORILO ******* KljuÄ %s sprejet za '%s'Potrebna je absolutna potSprejmi in shraniSprejmi nasprotujoÄe kljuÄe samodejno (varnostno tveganje)Sprejmi kljuÄ samodejno, Äe ni shranjenega kljuÄaRaÄunSamodejno Å¡ifriraj, Äe ima prijatelj vstavekSamodejno Å¡ifriraj, Äe je bilo prejeto sporoÄilo Å¡ifriranoNapaÄna velikost kljuÄaSlab podpis sporoÄila (len %d, mod %d) Bill Tompkins, prevedel Martin SrebotnjakbitovSposobnost Å¡ifriranja distribucijeSprejet NASPROTUJOÄŒ kljuÄ %s za '%s'!Sprejet NASPROTUJOÄŒ kljuÄ za Å ifriranje PidginRazveljaviNastavitvePrejet nasprotujoÄ kljuÄ!Kopiraj prstni odtis v odložiÅ¡ÄeTvorba kljuÄa ni možna. Napaka NSS: %d Ustvari datoteke s kljuÄiIzbriÅ¡i kljuÄOnemogoÄi Å¡ifriranjeŽelite sprejeti ta kljuÄ?OmogoÄi Å¡ifriranjeProtokol Å¡ifriranja:Å ifrira pogovore s Å¡ifriranjem RSA.Napaka (2) pri spreminjanju dostopnega naÄina za datoteko %s KljuÄa ni mogoÄe shraniti.Napaka pri spreminjanju dostopnega naÄina za datoteko: %s KljuÄa ni mogoÄe shraniti.Napaka v deÅ¡ifriranju - proÅ¡nja za ponovno poÅ¡iljanje ...Napaka pri obdelavi kljuÄa RSANSS Napaka pri ustvarjanju kljuÄa.Ustvari kljuÄeTvorba para kljuÄev RSA za %sPrstni odtis kljuÄaPrstni podpis kljuÄa: %*sVelikost kljuÄa:Mesto datoteke kljuÄaKljuÄi < 512 bitov SPLOH niso varniKljuÄi > 4096 bitov povzroÄajo izjemno smetenje s sporoÄili, povzroÄajo težave pri prenosu sporoÄil.Zadnje odhodno sporoÄilo ni bilo pravilno sprejeto - ponastavljanjeKrajevni kljuÄiUstvarjanje novega para kljuÄev ...ImeNeNa poti ni najdenih datotek s kljuÄiNoben kljuÄ ni izbran za ponovno tvorbo!Ni kljuÄa za ponovno poÅ¡iljanje sporoÄila. SporoÄilo je izgubljeno.V reduV reduOdhodno sporoÄilo je bilo izgubljeno.Spremenjena dovoljenja za datoteko kljuÄa: %s Å ifriranje Pidgin ne bo shranilo kljuÄev v datoteko, ki bo na voljo vsem ali skupini.Spremenjena dovoljenja za datoteko kljuÄa: %s Å ifriranje Pidgin ne bo shranilo kljuÄev v datoteko, ki bo na voljo vsem ali skupini.Å ifriranje PidginSprejet kljuÄ za Å ifriranje PidginÅ ifriranje RSA s kljuÄi do 4096 bitov z uporabo Å¡ifrirne knjižnice Mozilla NSS. Prejeto sporoÄilo je Å¡ifrirano z napaÄnim kljuÄemNazadnje uporabljeni kljuÄi prijateljaPonovno ustvari kljuÄZahtevanje kljuÄa ...Pokaži ikono zaklepa za vsako vrstico klepetaZadnje prejeto sporoÄilo je bilo Å¡ifrirano z vtiÄnikom Å ifriranje PidginKljuÄ raÄuna je prevelik za ta protokol. PoÅ¡iljanje ni možno.To bi lahko bil napad vmesne osebe ali pa bi se nekdo lahko predstavljal kot vaÅ¡ prijatelj. Preverite pri prijatelju, da vidite, Äe je ustvaril ta nov kljuÄ, preden mu zaupate.Tole lahko malce traja ...Samo to sejoZaupanja vredni kljuÄi prijateljaIzkljuÄi samodejno Å¡ifriranjeVkljuÄi samodejno Å¡ifriranjeDatotek s kljuÄi ni mogoÄe ustvaritipidgin-encryption-3.1/po/ro.po0000644000175100017510000002236411365216010013342 00000000000000# Romanian translation for Pidgin-Encryption. # Copyright (C) 2006, MiÅŸu Moldovan # This file is distributed under the same license as the Pidgin-Encryption package. # msgid "" msgstr "" "Project-Id-Version: Pidgin-Encryption 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2006-03-05 00:17+0200\n" "Last-Translator: MiÅŸu Moldovan \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Mărime greÅŸită cheie" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Cheile mai mici de 512 octeÅ£i sunt FOARTE nesigure" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Cheile mai mari de 4096 octeÅ£i vor duce\n" "la supradimensionarea mesajelor provocând\n" "probleme de transmisie a datelor." #: config_ui.c:162 msgid "Generate Keys" msgstr "Generează chei" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Nici o cheie nu a fost selectată pentru regenerare!" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Protocol criptare:" #: config_ui.c:203 msgid "Key size:" msgstr "Mărime cheie:" #: config_ui.c:245 msgid "Cancel" msgstr "Renunţă" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Ok" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Åžterge cheia" #: config_ui.c:396 msgid "Account" msgstr "Cont" #: config_ui.c:398 msgid "Name" msgstr "Nume" #: config_ui.c:402 msgid "Bits" msgstr "OcteÅ£i" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Amprentă cheie" #: config_ui.c:498 msgid "Config" msgstr "Configurare" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Acceptă automat o cheie dacă nu există una salvată" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Acceptă automat chei greÅŸite (prezintă riscuri de securitate)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Criptează automat dacă s-a trimis un mesaj criptat" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Anunţă tuturor contactelor facilităţile de criptare" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Criptează automat pentru contactele ce au acest modul" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "EvidenÅ£iază toate replicile criptate din discuÅ£ii" #: config_ui.c:518 msgid "Keyfile location" msgstr "LocaÅ£ie fiÅŸier chei:" #: config_ui.c:525 msgid "Create key files" msgstr "Creează fiÅŸierele cheie" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Regenerează cheia" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Copiază amprenta în clipboard" #: config_ui.c:571 msgid "Local Keys" msgstr "Chei locale" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Chei de încredere" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Chei recente" #: config_ui.c:658 msgid "No key files found at path" msgstr "Nu s-au găsit chei în calea dată" #: config_ui.c:667 msgid "Absolute path required" msgstr "E nevoie de o cale absolută" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Nu se pot crea fiÅŸierele cheie" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Date „Base64†invalide, lungimea %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "" "Cheia acestui cont este prea mare pentru acest protocol. Nu se poate trimite." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Ultimul mesaj trimis nu a fost primit corect, resetare" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Mesajul primit a fost criptat cu o cheie greÅŸită" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Eroare la decriptare, se cere retrimiterea mesajului" #: encrypt.c:941 msgid "Requesting key..." msgstr "Se verifică cheia contactului..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "" "Nici o cheie nu e disponibilă pentru retrimiterea mesajului. Mesajul nu a " "ajuns la destinaÅ£ie." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Mesajul trimis nu a ajuns la destinaÅ£ie." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Criptare Pidgin" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Criptează discuÅ£iile Pidgin utilizând algoritmul RSA" #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "Criptare RSA cu chei de până la 4096 octeÅ£i, utilizând bibliotecile de " "criptare Mozilla NSS.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins (localizare: MiÅŸu Moldovan)" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Fără criptare automată" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Criptare automată" #: keys.c:98 msgid "Making new key pair..." msgstr "Se creează o nouă pereche de chei..." #: keys.c:115 msgid "Error trying to make key." msgstr "Eroare la crearea cheii." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Cheia primită nu corespunde cu cea salvată!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Eroare la schimbarea drepturilor de acces ale fiÅŸierului: %s\n" "Nu se poate salva cheia." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Eroare 2 la schimbarea drepturilor de acces ale fiÅŸierului: %s\n" "Nu se poate salva cheia." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Drepturi de acces greÅŸite pentru fiÅŸierul cheie: %s\n" "Modulul de criptare Pidgin nu va salva chei într-un fiÅŸier accesibil unui " "grup sau oricărui alt utilizator." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Drepturi de acces greÅŸite pentru fiÅŸierul cheie: %s\n" "Modulul de criptare Pidgin nu va salva chei într-un fiÅŸier accesibil unui " "grup sau oricărui alt utilizator." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Cheie de criptare Pidgin" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "Cheie %s primită pentru „%sâ€" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Amprentă cheie:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "DoriÅ£i să acceptaÅ£i această cheie?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Nu" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Acceptă ÅŸi salvează" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Doar sesiunea asta" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "S-a primit o cheie de criptare Pidgin GREÅžITÄ‚" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* ATENÅ¢IE ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "S-a primit o cheie %s greÅŸită pentru „%sâ€" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Ar putea să fie vorba despre un atack „man-in-the-middleâ€,\n" "când cineva încearcă să se dea drept un alt contact.\n" "Ar trebui să verificaÅ£i dacă respectivul contact ÅŸi-a\n" "generat această nouă cheie înainte de a-i acorda încredere." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Se generează o pereche de chei RSA pentru %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Aceasta s-ar putea să dureze puÅ£in..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Nu s-a putut genera cheia. Eroare NSS: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Eroare la prelucrarea cheii RSANSS\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Semnătură greÅŸită pentru acest mesaj (lungime %d, mod%d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "Activare criptare" #: state_ui.c:146 msgid "Disable Encryption" msgstr "Dezactivare criptare" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "Ultimul mesaj primit a fost criptat utilizând modulul Criptare Pidgin" pidgin-encryption-3.1/po/ja.po0000644000175100017510000002335611365216010013316 00000000000000# pidgin-encryption ja.po. # Copyright (C) Free Software Foundation, Inc. # This file is distributed under the same license as the 'pidgin-encryption' package. # Takeshi AIHANA , 2004, 2005. # msgid "" msgstr "" "Project-Id-Version: pidgin-encryption 3.0beta2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2005-12-28 01:10+0900\n" "Last-Translator: Takeshi AIHANA \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "éµã®ã‚µã‚¤ã‚ºãŒé–“é•ã£ã¦ã„ã¾ã™" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "éµ < 512-bit ã¯ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ä¸Šã€éžå¸¸ã«å•題ãŒã‚りã¾ã™" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "éµ > 4096-bit ã«ã™ã‚‹ã¨\n" "メッセージを極端ã«å¤§ããã—ã€\n" "メッセージ転é€ã§å•題ãŒç™ºç”Ÿã—ã¾ã™" #: config_ui.c:162 msgid "Generate Keys" msgstr "éµã®ç”Ÿæˆ" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "å†ç”Ÿæˆã™ã‚‹éµãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ï¼" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "æš—å·åŒ–ã®ãƒ—ロトコル:" #: config_ui.c:203 msgid "Key size:" msgstr "éµã®ã‚µã‚¤ã‚º:" #: config_ui.c:245 msgid "Cancel" msgstr "キャンセル" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "OK" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "éµã®å‰Šé™¤" #: config_ui.c:396 msgid "Account" msgstr "アカウントå" #: config_ui.c:398 msgid "Name" msgstr "åå‰" #: config_ui.c:402 msgid "Bits" msgstr "サイズ (bit)" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "éµã®æŒ‡ç´‹" #: config_ui.c:498 msgid "Config" msgstr "設定" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "éµãƒ•ァイルãŒç„¡ã„å ´åˆã¯è‡ªå‹•çš„ã«éµã‚’å—ã‘入れる" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "é‡è¤‡ã™ã‚‹è¤‡æ•°ã®éµã‚’自動的ã«å—ã‘入れる (セキュリティ上ã®å±é™ºæœ‰ã‚Š)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "メッセージをé€ä¿¡ã™ã‚‹æ™‚ã¯è‡ªå‹•çš„ã«æš—å·åŒ–ã™ã‚‹" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "æš—å·åŒ–ã®æ©Ÿèƒ½ã‚’仲間ã«çŸ¥ã‚‰ã›ã‚‹" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "ä»–ã®ä»²é–“ãŒã“ã®ãƒ—ラグインを有効ã«ã—ã¦ã„ãŸã‚‰è‡ªå‹•çš„ã«æš—å·åŒ–ã™ã‚‹" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "" #: config_ui.c:518 msgid "Keyfile location" msgstr "éµãƒ•ã‚¡ã‚¤ãƒ«ã®æ ¼ç´å ´æ‰€" #: config_ui.c:525 msgid "Create key files" msgstr "éµãƒ•ァイルã®ç”Ÿæˆ" #: config_ui.c:556 msgid "Regenerate Key" msgstr "éµã®å†ç”Ÿæˆ" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "éµã®æŒ‡ç´‹ã‚’クリップボードã¸ã‚³ãƒ”ーã™ã‚‹" #: config_ui.c:571 msgid "Local Keys" msgstr "ローカルã®éµ" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "ä¿¡é ¼ã™ã‚‹ä»²é–“ã®éµ" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "最近使用ã—ãŸä»²é–“ã®éµ" #: config_ui.c:658 msgid "No key files found at path" msgstr "éµãƒ•ァイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" #: config_ui.c:667 msgid "Absolute path required" msgstr "絶対パスåã§æŒ‡å®šã—ã¦ä¸‹ã•ã„" #: config_ui.c:678 msgid "Unable to create key files" msgstr "éµãƒ•ァイルを生æˆã§ãã¾ã›ã‚“" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Base64 データãŒä¸æ­£ã§ã™ (サイズ: %d)\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "ã“ã®éµã¯æŒ‡å®šã—ãŸãƒ—ロトコルã§ã¯å¤§ãã™ãŽã‚‹ã®ã§é€ä¿¡ã§ãã¾ã›ã‚“" #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "最後ã«é€ä¿¡ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯é©åˆ‡ãªè¨­å®šã§å—ä¿¡ã•れã¦ã„ã¾ã›ã‚“" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "é–“é•ã£ãŸéµã§æš—å·åŒ–ã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å—ä¿¡ã—ã¾ã—ãŸ" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "å†é€ã™ã‚‹ã‹å•ã„åˆã‚ã›ã‚‹éš›ã«å¾©å·åŒ–ã®ã‚¨ãƒ©ãƒ¼..." #: encrypt.c:941 msgid "Requesting key..." msgstr "éµã®è¦æ±‚中..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "メッセージをå†é€ã™ã‚‹ãŸã‚ã®éµãŒã‚りã¾ã›ã‚“ (メッセージを失ã„ã¾ã—ãŸ)" #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "é€ä¿¡ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’失ã„ã¾ã—ãŸ" #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®æš—å·åŒ–" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "RSA を使ã£ã¦æš—å·åŒ–ã™ã‚‹æ©Ÿèƒ½ã‚’æä¾›ã—ã¾ã™" #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "Mozilla NSS crypt ライブラリを利用ã—ã€4096-bit 以上ã®ã‚­ãƒ¼ã‚’使ã£ãŸ RSA ã«ã‚ˆã‚‹" "æš—å·åŒ–を行ã„ã¾ã™ã€‚\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "作者: Bill Tompkins, 翻訳者: 相花 毅" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "è‡ªå‹•çš„ãªæš—å·åŒ– OFF" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "è‡ªå‹•çš„ãªæš—å·åŒ– ON" #: keys.c:98 msgid "Making new key pair..." msgstr "æ–°ã—ã„éµã®ãƒšã‚¢ã®ç”Ÿæˆä¸­..." #: keys.c:115 msgid "Error trying to make key." msgstr "éµã®ç”Ÿæˆã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚" #: keys.c:280 msgid "Conflicting Key Received!" msgstr "å—ä¿¡ã—ãŸéµãŒé‡è¤‡ã—ã¦ã„ã¾ã™ï¼" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "ファイルã®ã‚¢ã‚¯ã‚»ã‚¹ãƒ»ãƒ¢ãƒ¼ãƒ‰ã‚’変更ã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼: %s\n" "éµã‚’ä¿å­˜ã§ãã¾ã›ã‚“。" #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "ファイルã®ã‚¢ã‚¯ã‚»ã‚¹ãƒ»ãƒ¢ãƒ¼ãƒ‰ã‚’変更ã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼ (2): %s\n" "éµã‚’ä¿å­˜ã§ãã¾ã›ã‚“。" #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "éµãƒ•ァイルã®ãƒ‘ーミッションãŒãŠã‹ã—ã„ã§ã™: %s\n" "å…¨ã¦ã®ã‚°ãƒ«ãƒ¼ãƒ—・アクセス・ファイルã«éµã‚’ä¿å­˜ã—ã¾ã›ã‚“。" #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "éµãƒ•ァイルã®ãƒ‘ーミッションãŒãŠã‹ã—ã„ã§ã™: %s\n" "å…¨ã¦ã®ã‚°ãƒ«ãƒ¼ãƒ—・アクセス・ファイルã«éµã‚’ä¿å­˜ã—ã¾ã›ã‚“。" #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Pidgin-Encryption éµã®å—ä¿¡" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "'%2$s' ã®éµ %1$s ã‚’å—ä¿¡ã—ã¾ã—ãŸ" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "éµã®æŒ‡ç´‹: %*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "ã“ã®éµã‚’å—ã‘入れã¾ã™ã‹ï¼Ÿ" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "ã„ã„ãˆ" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "å—ã‘入れã¦ä¿å­˜ã™ã‚‹" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "ã“ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ã¿" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "å—ä¿¡ã—㟠Pidgin-Encryption éµãŒé‡è¤‡ã—ã¦ã„ã¾ã™" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* 警告 ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "'%2$s' ã‹ã‚‰å—ä¿¡ã—ãŸéµ %1$s ãŒé‡è¤‡ã—ã¦ã„ã¾ã™ï¼" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "ã“れã«ã‚ˆã‚Š \"介入者攻撃\" (man-in-the-middle attack) ã«ãªã‚‹ã‹ã€\n" "誰ã‹ãŒã‚ãªãŸã®ä»²é–“ã«ãªã‚Šã™ã¾ã™ã‹ã‚‚ã—れã¾ã›ã‚“。\n" "æ–°ã—ã„éµã‚’å—ã‘入れるå‰ã«ã€æ–°ã—ã„éµã‚’生æˆã—ãŸå ´åˆã¯ã€\n" "相手ã®ä»²é–“ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ä¸‹ã•ã„。" #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "%s ã«å¯¾ã™ã‚‹ RSA éµãƒšã‚¢ã®ç”Ÿæˆä¸­" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "å°‘ã€…ã€æ™‚é–“ãŒã‹ã‹ã‚Šã¾ã™..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "éµã‚’生æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚NSS エラー: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "RSANSS éµã®è§£æžä¸­ã«ã‚¨ãƒ©ãƒ¼\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "メッセージã®ç½²åãŒé–“é•ã£ã¦ã„ã¾ã™ (サイズ: %d, mod: %d)\n" #: state_ui.c:106 state_ui.c:126 #, fuzzy msgid "Enable Encryption" msgstr "ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®æš—å·åŒ–" #: state_ui.c:146 #, fuzzy msgid "Disable Encryption" msgstr "ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®æš—å·åŒ–" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" #, fuzzy #~ msgid "Encrypt Outgoing Messages" #~ msgstr "æš—å·åŒ–ã®æº–å‚™ãŒã§ãã¾ã—ãŸ" pidgin-encryption-3.1/po/de.po0000644000175100017510000004312511365216007013316 00000000000000# Pidgin-encryption po file for German. # Copyright (C) 2004 Karim Malhas # This file is distributed under the GPL # Karim Malhas , Stuttgart 2004 # Björn Voigt , Berlin 2009 # # msgid "" msgstr "" "Project-Id-Version: Pidgin-encryption\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2009-11-30 12:33+0100\n" "Last-Translator: Björn Voigt \n" "Language-Team: Björn Voigt \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Ungültige Schlüsselgröße" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Schlüssel kürzer als 512 Bit sind SEHR unsicher." #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Schlüssel > 4096 Bit vergrößern\n" "Nachrichten unnötig und verursachen\n" "Probleme bei der Übertragung der Nachrichten" #: config_ui.c:162 msgid "Generate Keys" msgstr "Generiere Schlüssel" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Kein Schlüssel zum erneuten Generieren ausgewählt!" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Verschlüsselungsprotokoll:" #: config_ui.c:203 msgid "Key size:" msgstr "Schlüssellänge:" #: config_ui.c:245 msgid "Cancel" msgstr "Abbrechen" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Ok" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Lösche Schlüssel" #: config_ui.c:396 msgid "Account" msgstr "Konto" #: config_ui.c:398 msgid "Name" msgstr "Name" #: config_ui.c:402 msgid "Bits" msgstr "Bit" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Fingerabdruck des Schlüssels" #: config_ui.c:498 msgid "Config" msgstr "Konfiguration" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Schlüssel automatisch annehmen, wenn noch keiner vorhanden ist" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Widersprüchliche Schlüssel automatisch annehmen (Sicherheitsrisiko)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "" "Bei Empfang einer verschlüsselten Nachricht automatisch auch verschlüsseln" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Verschlüsselungsfähigkeit mitteilen" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Automatisch verschlüsseln falls Buddy das Plugin hat" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "Zeige Schloß-Icon für jede Zeile des Chats" #: config_ui.c:518 msgid "Keyfile location" msgstr "Ort der Schlüsseldatei" #: config_ui.c:525 msgid "Create key files" msgstr "Erzeuge Schlüsseldateien" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Schlüssel neu generieren" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Fingerabdruck in die Zwischenablage kopieren" #: config_ui.c:571 msgid "Local Keys" msgstr "Lokale Schlüssel" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Vertrauenswürdige Buddy Schlüssel" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Neue Buddy Schlüssel" #: config_ui.c:658 msgid "No key files found at path" msgstr "Keine Schlüsseldateien im Pfad" #: config_ui.c:667 msgid "Absolute path required" msgstr "Absoluter Pfad notwendig" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Die Schlüsseldateien konnten nicht erzeugt werden" #: cryptutil.c:132 #, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Ungültige Base64 Daten, Länge %u\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "" "Dieser Schlüssel ist zu groß für dieses Protokoll. Das Senden ist nicht " "möglich." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Letzte ausgehende Nachricht nicht richtig empfangen - reinitialisiere" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Empfangene Nachricht mit falschem Schlüssel verschlüsselt" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Entschlüsselungsfehler - bitte um erneutes senden..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Fordere Schlüssel an..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "" "Kein Schlüssel, um Nachricht erneut zu versenden. Die Nachricht ist " "verloren." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Ausgehende Nachricht verloren." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Verschlüsselung" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Verschlüsselt Unterhaltungen mit RSA-Verschlüsselung." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "RSA Verschlüsselung mit Schlüsseln bis zu 4096 Bit, unter Benutzung der " "Mozilla NSS Verschlüsselungsbibliothek.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, Übersetzung von Björn Voigt und Karim Malhas" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Automatisches Verschlüsseln deaktivieren" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Automatisches Verschlüsseln aktivieren" #: keys.c:98 msgid "Making new key pair..." msgstr "Generiere neues Schlüsselpaar..." #: keys.c:115 msgid "Error trying to make key." msgstr "Fehler beim Generieren des Schlüssels." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Widersprüchlicher Schlüssel erhalten!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Fehler beim Ändern des Zugriffsmodus für die Datei: %s\n" "Kann Schlüssel nicht speichern." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Fehler (2) beim Ändern des Zugriffsmodus für die Datei: %s\n" "Kann Schlüssel nicht speichern." #: keys.c:484 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Falsche Zugriffsrechte auf Schlüsseldatei geändert: %s\n" "Pidgin-Encryption speichert keine Schlüssel in welt- oder gruppenlesbaren " "Dateien." #: keys.c:746 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Falsche Zugriffsrechte auf Schlüsseldatei geändert: %s\n" "Pidgin-Encryption benutzt keine Schlüssel in welt- oder gruppenlesbaren " "Dateien." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Pidgin-Encryption Schlüssel erhalten" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s Schlüssel für '%s' erhalten" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Schlüsselfingerabdruck: %*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Möchten Sie diesen Schlüssel annehmen?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Nein" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Annehmen und Speichern" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Nur für diese Sitzung" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "WIDERSPRÜCHLICHER Pidgin-Encryption Schlüssel empfangen" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* WARNUNG ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "WIDERSPRÜCHLICHER %s Schlüssel für '%s' empfangen!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Dies könnte eine 'Man-in-the-middle' Attacke sein\n" "oder es gibt sich jemand falsches für Ihren Buddy aus.\n" "Dem Schlüssel sollte erst vertraut werden, nachdem Sie Ihren Buddy " "überprüft\n" "haben, ob der Schlüssel wirklich von ihm generiert worden ist." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Generiere RSA Schlüsselpaar für %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Dieser Vorgang kann eine Weile dauern..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Konnte Schlüssel nicht generieren. NSS Fehler: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Fehler beim Parsen des RSANSS Schlüssels\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Falsche Signatur in Nachricht (Länge %d, Mod %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "Pidgin-Verschlüsselung" #: state_ui.c:146 msgid "Disable Encryption" msgstr "Verschlüsselung deaktivieren" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "Die zuletzt empfangene Nachricht wurde mit Pidgin-Encryption verschlüsselt" #, fuzzy #~ msgid "Encrypt Outgoing Messages" #~ msgstr "Ausgehende Nachricht verloren." #~ msgid "Tx: capable" #~ msgstr "Tx: fähig" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "Buddy scheint das Pidgin-Encryption Plugin zu haben. Die nächste " #~ "ausgehende Nachricht wird trotzdem NICHT verschlüsselt werden." #~ msgid "Tx: secure" #~ msgstr "Tx: sicher" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Die nächste ausgende Nachricht wird vom Pidgin-Encryption Plugin " #~ "verschlüsselt." #~ msgid "Tx: plain" #~ msgstr "Tx: klartext" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "" #~ "Die nächste ausgehende Nachricht wird NICHT von Pidgin-Encryption " #~ "verschlüsselt werden. " #~ msgid "Rx: secure" #~ msgstr "Rx: sicher" #~ msgid "Rx: plain" #~ msgstr "Rx: klartext" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Die letzte empfangene Nachricht war NICHT mit Pidgin-Encryption " #~ "verschlüsselt" #~ msgid "" #~ "Compiled with '%s', running with '%s'. Pidgin-Encryption will probably " #~ "not run right.\n" #~ msgstr "" #~ "Kompiliert für'%s', ausgeführt mit '%s'. Pidgin-Encryption wird " #~ "warscheinlich nicht richtig laufen.\n" #~ msgid "" #~ "Pidgin-Encryption plugin was compiled with a different version of " #~ "Pidgin. You may experience problems." #~ msgstr "" #~ "Pidgin-Encryption Plugin wurde gegen eine andere Pidgin Version " #~ "kompiliert. Es können Probleme auftreten." #~ msgid "Currently cached keys" #~ msgstr "Momentan gecachte Schlüssel" #~ msgid "Key Type" #~ msgstr "Schlüsseltyp" #~ msgid "Protocol" #~ msgstr "Protokoll" #~ msgid "private" #~ msgstr "privat" #~ msgid "public" #~ msgstr "öffentlich" #~ msgid "Error parsing RSANSS nonce/key\n" #~ msgstr "Fehler beim parsen des RSANSS Nonce\n" #~ msgid "Error decoding Base64 RSANSS Public key\n" #~ msgstr "Fehler beim dekodieren des öffentlichen Base64 RSANSS Schlüssels \n" #~ msgid "Error Base64 decoding RSANSS Public key\n" #~ msgstr "Fehler beim dekodieren des öffentlichen Base64 RSANSS Schlüssels \n" #~ msgid "Error decoding RSANSS Public key\n" #~ msgstr "Fehler beim dekodieren des öffentlichen RSANSS Schlüssels\n" #~ msgid "Error parsing RSANSS Private key\n" #~ msgstr "Fehler beim parsen des privaten RSANSS Schlüssels\n" #~ msgid "Error parsing Base64 in RSANSS Private Key\n" #~ msgstr "Fehler beim parsen des Base64 im privaten RSANSS Schlüssel\n" #~ msgid "Error creating symmetric key: unable to load private key\n" #~ msgstr "" #~ "Fehler beim erstellen des symmetrischen Schlüssels: der private Schlüssel " #~ "kann nicht geladen werden\n" #~ msgid "Error decoding RSANSS Private key\n" #~ msgstr "Fehler beim dekodieren des privaten RSANSS Schlüssel.\n" #~ msgid "No Nonce in message\n" #~ msgstr "Kein Nonce in Nachricht\n" #~ msgid "Bad Nonce in message\n" #~ msgstr "Ungültiges Nonce in Nachricht\n" #~ msgid "Can't load the NSS plugin\n" #~ msgstr "Kann das NSS Plugin nicht laden.\n" #~ msgid "" #~ "Pidgin was not compiled with the NSS plugin enabled. Pidgin-Encryption " #~ "requires the NSS plugin to function." #~ msgstr "" #~ "Pidgin wurde ohne das NSS plugin kompiliert. Pidgin-Encryption braucht " #~ "das NSS plugin um zu funktionieren." #~ msgid "PK11_PubDecryptRaw Failed\n" #~ msgstr "PK11_PubdecryptRaw fehlgeschlagen\n" #~ msgid "Not a multiple of block len: %d %d %d\n" #~ msgstr "Kein Vielfaches der Blocklänge: %d %d %d\n" #~ msgid "PubDecryptRaw failed %d\n" #~ msgstr "PubDecryptRaw fehlgeschlagen %d\n" #~ msgid "OAEP unpadding failed\n" #~ msgstr "OAEP unpadding fehlgeschlagen\n" #~ msgid "Bad msg_len in Auth\n" #~ msgstr "Ungültige msg_len in Auth\n" #~ msgid "PK11_PubEncryptRaw Failed\n" #~ msgstr "PK11_PubEncryptRaw fehlgeschlagen\n" #~ msgid " (Pidgin " #~ msgstr " (Pidgin" #~ msgid ")" #~ msgstr ")" #~ msgid ", not this version." #~ msgstr ", nicht diese Version" #~ msgid "done loading\n" #~ msgstr "fertig mit laden\n" #~ msgid "find key by name: %s\n" #~ msgstr "Schlüssel anhand des Namen finden: %s\n" #~ msgid "Error! Can't find own key for %s\n" #~ msgstr "Fehler! Kann eigenen Schlüssel für %s nicht finden.\n" #~ msgid "Dumping public keyring:\n" #~ msgstr "Verwerfe offentliches Schlüsselbund:\n" #~ msgid "Encryption Manager" #~ msgstr "Verschüsslungsmanager" #~ msgid "Error! Can't make new key for %s\n" #~ msgstr "Fehler! Kann keinen neuen Schlüssel für %s generieren\n" #~ msgid "Key ring::%*s::%p\n" #~ msgstr "Schlüsselbund::%*s::%p\n" #~ msgid "Removing key for %s\n" #~ msgstr "Entferne Schlüssel für %s\n" #~ msgid "received_key\n" #~ msgstr "received_key\n" #~ msgid ": Prot " #~ msgstr ": Prot " #~ msgid "Error in received key\n" #~ msgstr "Fehler in empfangenem Schlüssel\n" #~ msgid "Unknown protocol type: %10s\n" #~ msgstr "Unbekanntes Protokoll: %10s\n" #~ msgid "Error in key header\n" #~ msgstr "Fehler im Schlüsselkopf\n" #~ msgid "Length doesn't match in add_key\n" #~ msgstr "Länge in add_key passt nicht\n" #~ msgid "After key:%s\n" #~ msgstr "Nach Schlüssel:%s\n" #~ msgid "Resend" #~ msgstr "Erneut versenden" #~ msgid "Checking key file %s for name %s\n" #~ msgstr "Prüfe Schlüsseldatei %s für %s\n" #~ msgid "Invalid permissions, rejecting file: %s\n" #~ msgstr "Falsche Berechtigungen, akzeptiere Datei nicht: %s\n" #~ msgid "Got Name\n" #~ msgstr "Name gefunden\n" #~ msgid "Got Match\n" #~ msgstr "Übereinstimmung gefunden\n" #~ msgid "Saving key to file:%s:%p\n" #~ msgstr "Speichere Schlüssel in Datei:%s:%p\n" #~ msgid "Error opening key file %s for write\n" #~ msgstr "Fehler beim öffnen der Schlüsseldatei %s für Schreibzugriff\n" #~ msgid "Unable to change file mode, aborting\n" #~ msgstr "Kann Dateimodus nicht ändern, Abbruch\n" #~ msgid "Changed mode, but still wonky. Aborting.\n" #~ msgstr "Modus geändert, trozdem noch instabil. Abbruch.\n" #~ msgid "Key file '%s' no longer read-only.\n" #~ msgstr "Schlüsseldatei '%s' nicht mehr nur lesbar.\n" #~ msgid "Bad permissions on key file: %s\n" #~ msgstr "Falsche Zugriffsrechte auf Schlüsseldatei: %s\n" #~ msgid "I won't save to a world-accesible key file.\n" #~ msgstr "Speichere nicht in eine Welt-lesbare Schlüssel Datei.\n" #~ msgid "here\n" #~ msgstr "hier\n" #~ msgid "Error opening key file %s\n" #~ msgstr "Fehler beim öffnen der Schlüsseldatei %s\n" #~ msgid "Error opening key file" #~ msgstr "Fehler beim öffnen der Schlüsseldatei" #~ msgid "Wah! I moved a file and now it is gone\n" #~ msgstr "Whoa! Ich habe eine Datei verschoben und jetzt fehlt sie !\n" #~ msgid "Problem in key file. Increase key buffer size.\n" #~ msgstr "Fehler in Schlüsseldatei. Schlüssel Puffergröße erhöhen." #~ msgid "load_keys() %i: invalid protocol: %s\n" #~ msgstr "load_keys() %i: ungültiges Protokoll: %s\n" #~ msgid "load_keys() %i: Added: %*s %s %s\n" #~ msgstr "load_keys() %i: Hinzugefügt: %*s %s %s\n" #~ msgid "Bad key (%s) in file: %s\n" #~ msgstr "Ungültiger Schlüssel (%s) in Datei: %s\n" #~ msgid "Couldn't open file:%s\n" #~ msgstr "Kann Datei nicht öffnen:%s\n" #~ msgid "Error opening file" #~ msgstr "Fehler beim öffnen der Datei." #~ msgid "No public key found for %s\n" #~ msgstr "Kein öffentlicher Schlüssel für %s gefunden\n" #~ msgid " Making one from private key and saving...\n" #~ msgstr " Erstelle einen vom privaten Schlüssel und speichere..." #~ msgid "Built Nonce:%d:%s\n" #~ msgstr "Nonce erstellt:%d:%s\n" #~ msgid "Error parsing RSANSS nonce\n" #~ msgstr "Fehler beim parsen des RSANSS Nonce\n" #~ msgid "Checking for old prefs file (%s)...\n" #~ msgstr "Prüfe auf alte Einstellungsdatei (%s)...\n" #~ msgid "Converting...\n" #~ msgstr "Konvertiere...\n" #~ msgid "Bad Preference Key %s\n" #~ msgstr "Ungültiger Einstellungsschlüssel '%s'\n" #~ msgid "Deleting old prefs\n" #~ msgstr "Lösche alte Einstellungen\n" #~ msgid "response" #~ msgstr "antwort" pidgin-encryption-3.1/po/Makefile.mingw0000644000175100017510000000324111365171052015141 00000000000000# Makefile.mingw # # Description: Makefile to generate mo files # PACKAGE = pidgin-encryption ## ## PATHS ## srcdir = . PIDGIN_TOP = ../../.. GE_TOP := .. PIDGIN_INSTALL_DIR = $(PIDGIN_TOP)/win32-install-dir STANDALONE_INSTALL_DIR := $(GE_TOP)/win32-install-dir LOCALEDIR = $(PIDGIN_INSTALL_DIR)/locale STANDALONELOCALEDIR = $(STANDALONE_INSTALL_DIR)/locale GTK_BIN = $(PIDGIN_TOP)/../../win32-dev/gtk_2_0/bin ## ## TOOLS ## GMSGFMT = $(GTK_BIN)/msgfmt .SUFFIXES: .SUFFIXES: .po .gmo ## ## SOURCES, OBJECTS ## CATALOGS = $(patsubst %.po,%.gmo,$(wildcard *.po)) ## ## RULES ## .po.gmo: rm -f $@ && $(GMSGFMT) --statistics -o $@ $< ## ## TARGETS ## all: $(CATALOGS) install: all mkdir -p $(LOCALEDIR) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ dir=$(LOCALEDIR)/$$lang/LC_MESSAGES; \ mkdir -p $$dir; \ if test -r $$cat; then \ cp $$cat $$dir/$(PACKAGE).mo; \ echo "installing $$cat as $$dir/$(PACKAGE).mo"; \ else \ cp $(srcdir)/$$cat $$dir/$(PACKAGE).mo; \ echo "installing $(srcdir)/$$cat as" \ "$$dir/$(PACKAGE).mo"; \ fi; \ done mkdir -p $(STANDALONELOCALEDIR) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ dir=$(STANDALONELOCALEDIR)/$$lang/LC_MESSAGES; \ mkdir -p $$dir; \ if test -r $$cat; then \ cp $$cat $$dir/$(PACKAGE).mo; \ echo "installing $$cat as $$dir/$(PACKAGE).mo"; \ else \ cp $(srcdir)/$$cat $$dir/$(PACKAGE).mo; \ echo "installing $(srcdir)/$$cat as" \ "$$dir/$(PACKAGE).mo"; \ fi; \ done clean: rm -f *.gmo pidgin-encryption-3.1/po/ru.po0000644000175100017510000002564011365216010013350 00000000000000# Russian translation of Pidgin-Encryption. # Copyright (C) 2004 William Tompkins # This file is distributed under the same license as the Pidgin-Encryption package. # Roman Sosenko , 2004. # # msgid "" msgstr "" "Project-Id-Version: Pidgin-Encryption 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2006-01-10 09:08+0100\n" "Last-Translator: Roman Sosenko \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Ðеправильный размер ключа" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Ключи < 512 бит КРÐЙÐЕ опаÑны" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Ключи > 4096 бит могут Ñильно\n" "увеличивать ÑообщениÑ, Ð²Ñ‹Ð·Ñ‹Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ñ‹\n" "передачи" #: config_ui.c:162 msgid "Generate Keys" msgstr "Создание ключей" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Выберете ключ Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ генерированиÑ!" #: config_ui.c:180 msgid "OK" msgstr "ОК" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Протокол кодированиÑ:" #: config_ui.c:203 msgid "Key size:" msgstr "Размер ключа:" #: config_ui.c:245 msgid "Cancel" msgstr "Отменить" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "ОК" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Удалить ключ" #: config_ui.c:396 msgid "Account" msgstr "Эккаунт" #: config_ui.c:398 msgid "Name" msgstr "ИмÑ" #: config_ui.c:402 msgid "Bits" msgstr "Размер (биты)" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Отпечаток ключа" #: config_ui.c:498 msgid "Config" msgstr "Конфиг." #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "При отÑутÑвии ключа в файле ввеÑти ключ автоматичеÑки " #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "ÐвтоматичеÑки ввеÑти конфликтующий ключ (небезопаÑно)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "ÐвтоматичеÑки кодировать, еÑли отправлено закодированое Ñообщение" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "ТранÑлировать ÑпоÑобноÑть кодированиÑ" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "ÐвтоматичеÑки кодировать, еÑли у контакта имеетÑÑ Ð¼Ð¾Ð´ÑƒÐ»ÑŒ" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "" #: config_ui.c:518 msgid "Keyfile location" msgstr "МеÑто раÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° ключа" #: config_ui.c:525 msgid "Create key files" msgstr "Создать файл ключа" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Создать ключ заново" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Скопировать отпечаток в буфер обмена данными" #: config_ui.c:571 msgid "Local Keys" msgstr "Локальные ключи" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Ключи надёжного контакта" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Ключи нового контакта" #: config_ui.c:658 msgid "No key files found at path" msgstr "Файл ключа не найден" #: config_ui.c:667 msgid "Absolute path required" msgstr "Ðеобходим абÑолютный путь" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Ðевозможно Ñоздать файлы ключа" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Данные в Base64 неверны, размер %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "Этот ключ Ñлишком большой Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ протокола. Ðевозможно отправить." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "ПоÑледнее иÑходÑщее Ñообщение получено Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹. ПеренаÑтройка" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Полученое Ñообщение было закодировано при помощи неправильного ключа" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Ошибка при декодировании, проÑьба отправить заново..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ ÐºÐ»ÑŽÑ‡Ð°..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "ОтÑутÑвие ключа Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð¹ отправки. Сообщение утерÑно." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "ИÑходÑщее Ñообщение утерÑно." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Кодирует разговоры по методу RSA." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "Кодирование по методу RSA Ñ ÐºÐ»ÑŽÑ‡Ð°Ð¼Ð¸ до 4906 бит Ñ Ð¸Ñпользованием библиотеки " "шифров Mozilla NSS.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Билл ТомпкинÑ, перевод Романа СоÑенко" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Отключить автокодирование" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Включить автокодирование" #: keys.c:98 msgid "Making new key pair..." msgstr "Создание новой пары ключей..." #: keys.c:115 msgid "Error trying to make key." msgstr "Ошибка при попытке ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð°." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Получен конфликтующий ключ!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Ошибка при изменении права доÑтуÐ¿Ð° к файлу: %s\n" "ÐевозможноÑть Ñохранить ключ." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Ошибка (2) при изменении права доÑтупа к файлу: %s\n" "ÐевозможноÑть Ñохранить ключ" #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Ðеправильные права доÑтупа к файлу Ñ ÐºÐ»ÑŽÑ‡Ð°Ð¼Ð¸: %s\n" "Pidgin-Encryption не Ñохранит ключи в общедоÑтупном файле либо файле, " "доÑтупном групе." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Ðеправильные права доÑтупа к файлу Ñ ÐºÐ»ÑŽÑ‡Ð°Ð¼Ð¸: %s\n" "Pidgin-Encryption не Ñохранит ключи в общедоÑтупном файле либо файле, " "доÑтупном групе." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Получен ключ Pidgin-Encryption" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "Получен %s ключ Ð´Ð»Ñ '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Отпечаток ключа: %*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Ð’Ñ‹ хотите ввеÑти данный ключ?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Ðет" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "ВвеÑти и Ñохранить" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Только Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑеÑÑии" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "Получен конфликтующий ключ Pidgin-Encryption" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* Ð’ÐИМÐÐИЕ ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "Получен КОÐФЛИКТУЮЩИЙ %s ключ Ð´Ð»Ñ '%s'!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Возможно, произошла аттака \"man-in-th-middle\" или\n" " кто-то выдаёт ÑÐµÐ±Ñ Ð·Ð° вашего контакта.\n" "Ð’Ñ‹ должны проверить, дейÑтвительно ли ваш контакт Ñоздал Ñтот ключ, прежде " "чем иÑпользовать его." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Создание пары ключей RSA Ð´Ð»Ñ %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Это может занÑть немного времени..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "ÐевозможноÑть Ñоздать ключ. Ошибка NSS: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Ошибка при анализе ключа ÑеÑÑии RSANSS\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (размер %d, модуль %d)\n" #: state_ui.c:106 state_ui.c:126 #, fuzzy msgid "Enable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:146 #, fuzzy msgid "Disable Encryption" msgstr "Pidgin-Encryption" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" #~ msgid "Encrypt Outgoing" #~ msgstr "Закодировать иÑходÑщее Ñообщение" pidgin-encryption-3.1/po/sl.po0000644000175100017510000002234511365216010013337 00000000000000# Pidgin-encryption po file for Slovenian. # Copyright (C) 2004 Martin Srebotnjak # This file is distributed under the GPL # Martin Srebotnjak , Ljubljana 2004 # msgid "" msgstr "" "Project-Id-Version: Å ifriranje Pidgin\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2007-09-22 15:54+0100\n" "Last-Translator: Martin Srebotnjak \n" "Language-Team: Martin Srebotnjak, LUGOS \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" "X-Poedit-Language: Slovenian\n" "X-Poedit-Country: SLOVENIA\n" "X-Poedit-SourceCharset: iso-8859-1\n" #: config_ui.c:89 msgid "Bad key size" msgstr "NapaÄna velikost kljuÄa" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "KljuÄi < 512 bitov SPLOH niso varni" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "KljuÄi > 4096 bitov povzroÄajo izjemno\n" "smetenje s sporoÄili, povzroÄajo težave\n" "pri prenosu sporoÄil." #: config_ui.c:162 msgid "Generate Keys" msgstr "Ustvari kljuÄe" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Noben kljuÄ ni izbran za ponovno tvorbo!" #: config_ui.c:180 msgid "OK" msgstr "V redu" # First column #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Protokol Å¡ifriranja:" #: config_ui.c:203 msgid "Key size:" msgstr "Velikost kljuÄa:" #: config_ui.c:245 msgid "Cancel" msgstr "Razveljavi" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "V redu" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "IzbriÅ¡i kljuÄ" #: config_ui.c:396 msgid "Account" msgstr "RaÄun" #: config_ui.c:398 msgid "Name" msgstr "Ime" #: config_ui.c:402 msgid "Bits" msgstr "bitov" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Prstni odtis kljuÄa" #: config_ui.c:498 msgid "Config" msgstr "Nastavitve" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Sprejmi kljuÄ samodejno, Äe ni shranjenega kljuÄa" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Sprejmi nasprotujoÄe kljuÄe samodejno (varnostno tveganje)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Samodejno Å¡ifriraj, Äe je bilo prejeto sporoÄilo Å¡ifrirano" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Sposobnost Å¡ifriranja distribucije" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Samodejno Å¡ifriraj, Äe ima prijatelj vstavek" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "Pokaži ikono zaklepa za vsako vrstico klepeta" #: config_ui.c:518 msgid "Keyfile location" msgstr "Mesto datoteke kljuÄa" #: config_ui.c:525 msgid "Create key files" msgstr "Ustvari datoteke s kljuÄi" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Ponovno ustvari kljuÄ" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Kopiraj prstni odtis v odložiÅ¡Äe" #: config_ui.c:571 msgid "Local Keys" msgstr "Krajevni kljuÄi" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Zaupanja vredni kljuÄi prijatelja" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Nazadnje uporabljeni kljuÄi prijatelja" #: config_ui.c:658 msgid "No key files found at path" msgstr "Na poti ni najdenih datotek s kljuÄi" #: config_ui.c:667 msgid "Absolute path required" msgstr "Potrebna je absolutna pot" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Datotek s kljuÄi ni mogoÄe ustvariti" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "NapaÄni podatki Base64, dolžina %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "KljuÄ raÄuna je prevelik za ta protokol. PoÅ¡iljanje ni možno." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Zadnje odhodno sporoÄilo ni bilo pravilno sprejeto - ponastavljanje" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Prejeto sporoÄilo je Å¡ifrirano z napaÄnim kljuÄem" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Napaka v deÅ¡ifriranju - proÅ¡nja za ponovno poÅ¡iljanje ..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Zahtevanje kljuÄa ..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Ni kljuÄa za ponovno poÅ¡iljanje sporoÄila. SporoÄilo je izgubljeno." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Odhodno sporoÄilo je bilo izgubljeno." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Å ifriranje Pidgin" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Å ifrira pogovore s Å¡ifriranjem RSA." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "Å ifriranje RSA s kljuÄi do 4096 bitov z uporabo Å¡ifrirne knjižnice Mozilla " "NSS.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, prevedel Martin Srebotnjak" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "IzkljuÄi samodejno Å¡ifriranje" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "VkljuÄi samodejno Å¡ifriranje" #: keys.c:98 msgid "Making new key pair..." msgstr "Ustvarjanje novega para kljuÄev ..." #: keys.c:115 msgid "Error trying to make key." msgstr "Napaka pri ustvarjanju kljuÄa." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Prejet nasprotujoÄ kljuÄ!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Napaka pri spreminjanju dostopnega naÄina za datoteko: %s\n" "KljuÄa ni mogoÄe shraniti." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Napaka (2) pri spreminjanju dostopnega naÄina za datoteko %s\n" "KljuÄa ni mogoÄe shraniti." #: keys.c:484 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Spremenjena dovoljenja za datoteko kljuÄa: %s\n" "Å ifriranje Pidgin ne bo shranilo kljuÄev v datoteko, ki bo na voljo vsem ali " "skupini." #: keys.c:746 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Spremenjena dovoljenja za datoteko kljuÄa: %s\n" "Å ifriranje Pidgin ne bo shranilo kljuÄev v datoteko, ki bo na voljo vsem ali " "skupini." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Sprejet kljuÄ za Å ifriranje Pidgin" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "KljuÄ %s sprejet za '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Prstni podpis kljuÄa: %*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Želite sprejeti ta kljuÄ?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Ne" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Sprejmi in shrani" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Samo to sejo" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "Sprejet NASPROTUJOÄŒ kljuÄ za Å ifriranje Pidgin" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* OPOZORILO ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "Sprejet NASPROTUJOÄŒ kljuÄ %s za '%s'!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "To bi lahko bil napad vmesne osebe ali\n" "pa bi se nekdo lahko predstavljal kot vaÅ¡ prijatelj.\n" "Preverite pri prijatelju, da vidite, Äe je\n" "ustvaril ta nov kljuÄ, preden mu zaupate." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Tvorba para kljuÄev RSA za %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Tole lahko malce traja ..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Tvorba kljuÄa ni možna. Napaka NSS: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Napaka pri obdelavi kljuÄa RSANSS\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Slab podpis sporoÄila (len %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "OmogoÄi Å¡ifriranje" #: state_ui.c:146 msgid "Disable Encryption" msgstr "OnemogoÄi Å¡ifriranje" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "Zadnje prejeto sporoÄilo je bilo Å¡ifrirano z vtiÄnikom Å ifriranje Pidgin" pidgin-encryption-3.1/po/mkinstalldirs0000755000175100017510000000131611365171220015165 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs 340 2005-12-19 01:16:19Z obobo $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here pidgin-encryption-3.1/po/it.gmo0000644000175100017510000001524011365216011013476 00000000000000Þ•FLa|4K5[*‘¼)Ä2î !*. Ygl%Œ*²Ýäë'#K \gzš¬+Á<í8* )c  § Á Ï î þ   !- ]O 6­ ä ï    ) (I r u x  ¡ PÀ ) ; M \ $n J“ @Þ · × õ 0EP`±Îî I@d¥9­Eç!-,O |Š)/¹2é $."L/oŸ´ÆÝ÷ ( YIU£3ù'-)U+¼Õò #(†LUÓ )'7_d/g(—<Àý %2[X4´é22CeY©Ï/Ó:W.q?F &=AC 6"<:/!> .#%4D8)92B5E(7+@;,'- $31 *0 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-Encryption 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2006-03-01 15:53+0100 Last-Translator: Giacomo Succi Language-Team: Italian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* ATTENZIONE ******* %s ricevuta una chiave per '%s'Percorso Assoluto richiestoAccetta e SalvaAccetta le chiavi in conflitto automaticamente (rischio per la sicurezza)Accetta la chiave automaticamente se non ci sono chiavi nel fileAccountCritta automaticamente se il contatto possiede il plug-inCritta automaticamente se e' stato inviato un messaggio crittografatoDimensione della chiave sbagliatoFirma errata nel messaggio (lun %d, mod %d) Bill TompkinsBitsPossibilita' di crittografia in BroadcastLa chiave %s ricevuta per '%s' e' in CONFLITTO!Chiave per Pidgin-Encryption CONFLITTUOSA RicevutaAnnullaConfiguraChiave Conflittuosa Ricevuta!Copia il Fingerprint negli appuntiImpossibile generare la chiave. Errore NSS: %d Crea Files di ChiaveRimuovi la ChiaveDisabilita CrittazioneVuoi accettare la chiave?Abilita CrittazioneProtocollo crittato:Conversazione crittata con codifica RSA.Errore (2) nel cambiamento del modo di accesso al file: %s Impossibile salvare la chiave.Errore nel cambiamento del modo di accesso al file: %s Impossibile salvare la chiave.Errore nella decrittazione- richiesta di reinvio...Errore nel parsing RSANSS della chiave Errore durante la creazione della chiave.Genera le ChiaviGenerazione di un Paio di Chiavi RSA per %sFingerprint della chiaveFingerprint della Chiave:%*sDimensione della chiave:Locazione dei File di ChiaveLe chiavi < 512 sono MOLTO insicureLe chiavi > 4096 bits possono causare rigonfiamenti estremi dei messaggi, che possono causare problemi con l'invio dei messaggi stessiL'ultimo messaggio in uscita non e' stato ricevuto correttamente- reset del messaggioChiavi LocaliCreazione di un nuovo paio di chiavi...NomeNoNessuna chiave trovata nel percorso specificatoNessuna chiave da rigenerare selzionata!Nessuna chiave per rinviare il messaggio. Messaggio perduto.OKOkMessaggio in uscita perduto.Pidgin-EncryptionChiave per Pidgin-Encryption RicevutaCrittazione RSA con chiavi fino a 4096 bits, utilizzata la libreria NSS crypto di Mozilla. Ricevuto un messaggio crittato con una chiave errataChiavi Recenti dei ContattiRigenera la ChiaveRichiesta della chiave...Mostra l'icona del lucchetto per ogni riga di chatL'ultimo messaggio ricevuto e' stato crittato con Pidgin-EncryptionLa chiave di questo account per questo protocollo e' troppo grande. Impossibile inviarla.Questo potrebbe essere un'attacco man-in-the-middle, oppure potrebbe essere qualcuno che impersonifica il tuo contatto. Devi controllare col tuo contatto se ha generato la nuova chiave prima di autorizzarla.Questa operazione potrebbe durare un bel po'...Solo per questa sessioneChiavi dei Contatti CestinateDisabilita l'autocrittazioneAbilita l'autocrittazioneNon sono riuscito a crare i files delle chiavipidgin-encryption-3.1/po/pt_PT.po0000644000175100017510000002237111365216010013746 00000000000000# Translation of pidgin-encryption to Português # Pidgin-encryption po file for Portuguese. # Copyright (C) 2007 Pedro Pinto # This file is distributed under the GPL license. # Pedro Pinto , 2007. # msgid "" msgstr "" "Project-Id-Version: pidgin-encryption 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2007-08-20 06:59+0100\n" "Last-Translator: Pedro Pinto \n" "Language-Team: Português \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Tamanho de chave incorrecto" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Chaves menores que 512 bits são MUITO inseguras" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Chaves maiores que 4096 bits deixam\n" "as mensagens muito grandes, causando problemas\n" "com a transmissão da mensagem" #: config_ui.c:162 msgid "Generate Keys" msgstr "Gerar chaves" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Nenhuma chave seleccionada para ser regenerada!" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Protocolo de encriptação:" #: config_ui.c:203 msgid "Key size:" msgstr "Tamanho da chave:" #: config_ui.c:245 msgid "Cancel" msgstr "Cancelar" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Ok" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Apagar Chave" #: config_ui.c:396 msgid "Account" msgstr "Conta" #: config_ui.c:398 msgid "Name" msgstr "Nome" #: config_ui.c:402 msgid "Bits" msgstr "Bits" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Impressão Digital da Chave" #: config_ui.c:498 msgid "Config" msgstr "Configuração" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Aceitar chave automaticamente se não existir nenhuma em ficheiro" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Aceitar chaves em conflito automaticamente (risco de segurança)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Encriptar automaticamente se uma mensagem for enviada encriptada" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Capacidade de encriptação por broadcast" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Encriptar automaticamente se o contacto possui o plugin" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "Mostrar ícone do cadeado para cada linha da conversa" #: config_ui.c:518 msgid "Keyfile location" msgstr "Localização do ficheiro da chave" #: config_ui.c:525 msgid "Create key files" msgstr "Criar ficheiros de chave" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Regenerar chave" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Copiar Impressão Digital para a área de transferência" #: config_ui.c:571 msgid "Local Keys" msgstr "Chaves Locais" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Chaves de Contactos de Confiança" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Chaves de Contactos Recentes" #: config_ui.c:658 msgid "No key files found at path" msgstr "Nenhum ficheiro de chave encontrado na path" #: config_ui.c:667 msgid "Absolute path required" msgstr "É necessário a path absoluta" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Não foi possível criar os ficheiros de chave" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Dados em Base64 inválidos, tamanho %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "" "Essa chave é demasiado grande para este protocolo. Não foi possível enviar." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "A última mensagem enviada não foi recebida correctamente- reiniciando" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Mensagem encriptada recebida com chave errada" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Erro na desencriptação- pedindo o reenvio..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Requisitando chave..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Não há chave para reenviar a mensagem. Mensagem perdida." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Mensagem enviada perdida." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Encripta conversas com encriptação RSA." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "Encriptação RSA com chaves até 4096 bits, usando a biblioteca de " "criptografia Mozilla NSS.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, traduzido por Pedro Pinto" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Desligar Auto-Encriptação" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Ligar Auto-Encriptação" #: keys.c:98 msgid "Making new key pair..." msgstr "A gerar novo par de chaves..." #: keys.c:115 msgid "Error trying to make key." msgstr "Erro ao tentar gerar chave." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Conflito na chave recebida!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Erro ao mudar o modo de acesso para o ficheiro: %s\n" "Não foi possível gravar a chave." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Erro (2) mudar o modo de acesso para o ficheiro: %s\n" "Não foi possível gravar a chave." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Permissões incorrectas no ficheiro de chaves: %s\n" "O Pidgin-Encryption não irá gravar as chaves num ficheiro acessível por " "grupo ou globalmente." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Permissões incorrectas no ficheiro de chaves: %s\n" "O Pidgin-Encryption não irá gravar as chaves num ficheiro acessível por " "grupo ou globalmente." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Pidgin-Encryption Chave Recebida" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s chave recebida para '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Impressão Digital da chave:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "?Deseja aceitar esta chave?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Não" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Aceitar e Gravar" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Apenas para esta sessão" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "CONFLITO na chave recebida pelo Pidgin-Encryption" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* AVISO ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "CONFLITO %s chave recebida para '%s'" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Isso pode ser um ataque man-in-the-middle, ou\n" "alguém está a tentar fazer-se passar pelo seu contacto.\n" "Deve verificar com o seu contacto para ver se ele\n" "gerou esta nova chave antes de confiar nele." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "A gerar par de chaves RSA para %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Isto pode demorar um bocado..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Não foi possível gerar a chave. Erro NSS: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Erro ao analizar a chave RSANSS\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Assinatura inválida na mensagem (tam %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "Ligar Encriptação" #: state_ui.c:146 msgid "Disable Encryption" msgstr "Desligar Encriptação" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "A última mensagem recebida foi encriptada com o plugin do Pidgin-Encryption" pidgin-encryption-3.1/po/pt_BR.gmo0000644000175100017510000001443111365216011014071 00000000000000Þ•C4YL°±Ëäû5 *Al)t2ž Ñ*Þ %<*b”›µ'Óû 7+L<x8µ)î 2 L Z y ‰ § !¸ ]Ú 68 o z ‘ – ™ ´ (Ô ý    , PK )œ Æ Ø ç Jù @D ·… = [ m € – « BÆ  !!=_@pB±ô9úE4z2•,Èõ)ú$$1I{„“1¯/á ) 7X)tTžPó)DnŒ §!´Öë!08hiFÒ 'EJ-O,}:ªåèë ^8/—Ç ãñLKTÄ eƒ—¶Ò-ë*.(;=52 / ,:47"?1&309#@ A)!>B+  'C -%6<$8 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDo you want to accept this key?Encryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...The last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-Encryption Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2005-12-21 12:23-0300 Last-Translator: Aury Fink Filho Language-Team: Portuguese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* AVISO ******* %s chave recebida para '%s'É necessário o caminho absolutoAceitar e SalvarAceitar chaves em conflito automaticamente (risco de segurança)Aceitar a chave automaticamente se não existir a mesma em arquivoContaEncriptar automaticamente se seu contato possuir o pluginEncriptar automaticamente se uma mensagem for enviada encriptografadaTamanho de chave incorretoAssinatura inválida na mensagem (tam %d, mod %d) Bill Tompkins, traduzido por Aury Fink FilhoBitsCapacidade de encriptação por broadcastCONFLITO %s chave recebida para '%s'CONFLITO em chave recebida pelo Pidgin-EncryptionCancelarConfiguraçãoConflito em chave recebida!Copiar Fingerprint para a área de transferênciaNão foi possível gerar a chave. Erro NSS: %d Criar arquivos de chaveExcluir ChaveVocê deseja aceitar essa chave?Protocolo de encriptação:Encripta conversas com encriptação RSA.Erro (2) mudando modo de acesso para o arquivo: %s Não é possível salvar a chave.Erro mudando modo de acesso para o arquivo: %s Não é possível salvar a chave.Erro na decriptação- pedindo reenvio...Erro analizando chave RSANSS Erro tentando gerar chave.Gerar chavesGerando par de chaves RSA para %sFingerprint da chaveFingerprint da chave:%*sTamanho da chave:Localização do arquivo de chaveChaves menores que 512 bits são muito insegurasChaves maiores que 4096 bits deixam as mensagens muito grandes, gerando problemas com a sua transmissãoA última mensagem enviada não foi recebida corretamente- reiniciandoChaves LocaisGerando novo par de chaves...NomeNãoNenhum arquivo de chave encontrado no caminhoNenhuma chave selecionada para ser regerada!Não há chave para reenviar a mensagem. Mensagem perdida.OKOkMensagem enviada perdida.Pidgin-EncryptionPidgin-Encryption Chave RecebidaEncriptação RSA com chaves até 4096 bits, usando a biblioteca de criptografia Mozilla NSS. Mensagem encriptada recebida com a chave erradaChaves de Contatos RecentesRegerar chaveRequisitando chave...A última mensagem recebida foi encriptada com o plugin do Pidgin-EncryptionEssa chave é grande demais para este protocolo. Não foi possível enviar.Isso pode ser um ataque man-in-the-middle, ou alguém está tentando se passar por seu contato. Você deve checar com seu contato para ver se ele gerou essa nova chave antes de você confiar nele.Isso pode demorar um pouco...Essa sessão apenasChaves de Contatos ConfiáveisDesligar Auto-EncriptaçãoLigar Auto-EncriptaçãoNão foi possível criar os arquivos de chavepidgin-encryption-3.1/po/ja.gmo0000644000175100017510000001536511365216011013464 00000000000000Þ•B,Y< ¡»Ôë5û*1\)d2Ž Á*Î ù %,*R}„‹¥'Ãë ü'+<<h8¥)Þ " < J i y — !¨ ]Ê 6( _ j  † ‰ ¤ (Ä í ð ó   P; )Œ ¶ È × @é ·* â   % ; P _k Ë(ä' 5]QB¯òZ?`' JÈ,@*P={:¹ô* 669m§ À$Íò7lGh´?#]0 ²)¿ éöG8w€TøM$`… Œ0–3Ç`û\_-b¬~ËHJ“²ÂWÕ-$@eš´'Í*.(<52 / ,:47">1&309#? @)!=A+  'B -%6;$8 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDo you want to accept this key?Encryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...This account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: pidgin-encryption 3.0beta2 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2005-12-28 01:10+0900 Last-Translator: Takeshi AIHANA Language-Team: Japanese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* 警告 ******* '%2$s' ã®éµ %1$s ã‚’å—ä¿¡ã—ã¾ã—ãŸçµ¶å¯¾ãƒ‘スåã§æŒ‡å®šã—ã¦ä¸‹ã•ã„å—ã‘入れã¦ä¿å­˜ã™ã‚‹é‡è¤‡ã™ã‚‹è¤‡æ•°ã®éµã‚’自動的ã«å—ã‘入れる (セキュリティ上ã®å±é™ºæœ‰ã‚Š)éµãƒ•ァイルãŒç„¡ã„å ´åˆã¯è‡ªå‹•çš„ã«éµã‚’å—ã‘入れるアカウントåä»–ã®ä»²é–“ãŒã“ã®ãƒ—ラグインを有効ã«ã—ã¦ã„ãŸã‚‰è‡ªå‹•çš„ã«æš—å·åŒ–ã™ã‚‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã™ã‚‹æ™‚ã¯è‡ªå‹•çš„ã«æš—å·åŒ–ã™ã‚‹éµã®ã‚µã‚¤ã‚ºãŒé–“é•ã£ã¦ã„ã¾ã™ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ç½²åãŒé–“é•ã£ã¦ã„ã¾ã™ (サイズ: %d, mod: %d) 作者: Bill Tompkins, 翻訳者: 相花 毅サイズ (bit)æš—å·åŒ–ã®æ©Ÿèƒ½ã‚’仲間ã«çŸ¥ã‚‰ã›ã‚‹'%2$s' ã‹ã‚‰å—ä¿¡ã—ãŸéµ %1$s ãŒé‡è¤‡ã—ã¦ã„ã¾ã™ï¼å—ä¿¡ã—㟠Pidgin-Encryption éµãŒé‡è¤‡ã—ã¦ã„ã¾ã™ã‚­ãƒ£ãƒ³ã‚»ãƒ«è¨­å®šå—ä¿¡ã—ãŸéµãŒé‡è¤‡ã—ã¦ã„ã¾ã™ï¼éµã®æŒ‡ç´‹ã‚’クリップボードã¸ã‚³ãƒ”ーã™ã‚‹éµã‚’生æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚NSS エラー: %d éµãƒ•ァイルã®ç”Ÿæˆéµã®å‰Šé™¤ã“ã®éµã‚’å—ã‘入れã¾ã™ã‹ï¼Ÿæš—å·åŒ–ã®ãƒ—ロトコル:RSA を使ã£ã¦æš—å·åŒ–ã™ã‚‹æ©Ÿèƒ½ã‚’æä¾›ã—ã¾ã™ãƒ•ァイルã®ã‚¢ã‚¯ã‚»ã‚¹ãƒ»ãƒ¢ãƒ¼ãƒ‰ã‚’変更ã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼ (2): %s éµã‚’ä¿å­˜ã§ãã¾ã›ã‚“。ファイルã®ã‚¢ã‚¯ã‚»ã‚¹ãƒ»ãƒ¢ãƒ¼ãƒ‰ã‚’変更ã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼: %s éµã‚’ä¿å­˜ã§ãã¾ã›ã‚“。å†é€ã™ã‚‹ã‹å•ã„åˆã‚ã›ã‚‹éš›ã«å¾©å·åŒ–ã®ã‚¨ãƒ©ãƒ¼...RSANSS éµã®è§£æžä¸­ã«ã‚¨ãƒ©ãƒ¼ éµã®ç”Ÿæˆã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚éµã®ç”Ÿæˆ%s ã«å¯¾ã™ã‚‹ RSA éµãƒšã‚¢ã®ç”Ÿæˆä¸­éµã®æŒ‡ç´‹éµã®æŒ‡ç´‹: %*séµã®ã‚µã‚¤ã‚º:éµãƒ•ã‚¡ã‚¤ãƒ«ã®æ ¼ç´å ´æ‰€éµ < 512-bit ã¯ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ä¸Šã€éžå¸¸ã«å•題ãŒã‚りã¾ã™éµ > 4096-bit ã«ã™ã‚‹ã¨ メッセージを極端ã«å¤§ããã—〠メッセージ転é€ã§å•題ãŒç™ºç”Ÿã—ã¾ã™æœ€å¾Œã«é€ä¿¡ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯é©åˆ‡ãªè¨­å®šã§å—ä¿¡ã•れã¦ã„ã¾ã›ã‚“ローカルã®éµæ–°ã—ã„éµã®ãƒšã‚¢ã®ç”Ÿæˆä¸­...åå‰ã„ã„ãˆéµãƒ•ァイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸå†ç”Ÿæˆã™ã‚‹éµãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ï¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å†é€ã™ã‚‹ãŸã‚ã®éµãŒã‚りã¾ã›ã‚“ (メッセージを失ã„ã¾ã—ãŸ)OKOKé€ä¿¡ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’失ã„ã¾ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®æš—å·åŒ–Pidgin-Encryption éµã®å—ä¿¡Mozilla NSS crypt ライブラリを利用ã—ã€4096-bit 以上ã®ã‚­ãƒ¼ã‚’使ã£ãŸ RSA ã«ã‚ˆã‚‹æš—å·åŒ–を行ã„ã¾ã™ã€‚ é–“é•ã£ãŸéµã§æš—å·åŒ–ã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å—ä¿¡ã—ã¾ã—ãŸæœ€è¿‘使用ã—ãŸä»²é–“ã®éµéµã®å†ç”Ÿæˆéµã®è¦æ±‚中...ã“ã®éµã¯æŒ‡å®šã—ãŸãƒ—ロトコルã§ã¯å¤§ãã™ãŽã‚‹ã®ã§é€ä¿¡ã§ãã¾ã›ã‚“ã“れã«ã‚ˆã‚Š "介入者攻撃" (man-in-the-middle attack) ã«ãªã‚‹ã‹ã€ 誰ã‹ãŒã‚ãªãŸã®ä»²é–“ã«ãªã‚Šã™ã¾ã™ã‹ã‚‚ã—れã¾ã›ã‚“。 æ–°ã—ã„éµã‚’å—ã‘入れるå‰ã«ã€æ–°ã—ã„éµã‚’生æˆã—ãŸå ´åˆã¯ã€ 相手ã®ä»²é–“ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ä¸‹ã•ã„ã€‚å°‘ã€…ã€æ™‚é–“ãŒã‹ã‹ã‚Šã¾ã™...ã“ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ã¿ä¿¡é ¼ã™ã‚‹ä»²é–“ã®éµè‡ªå‹•çš„ãªæš—å·åŒ– OFFè‡ªå‹•çš„ãªæš—å·åŒ– ONéµãƒ•ァイルを生æˆã§ãã¾ã›ã‚“pidgin-encryption-3.1/po/da.po0000644000175100017510000002466011365216007013315 00000000000000# Pidgin-Encryption Danish translation # Copyright (C) 2004, Morten Brix Pedersen # # This file is distributed under the same license as the Pidgin-Encryption package msgid "" msgstr "" "Project-Id-Version: pidgin-encryption 2.32\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2004-12-17 21:56+0200\n" "Last-Translator: Morten Brix Pedersen \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Ugyldig nøglestørrelse" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Nøgler < 512 bits er MEGET usikre" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Nøgler > 4096 bits vil skabe ekstremt\n" "store beskeder, som vil skabe problemer\n" "med beskedoverførsel" #: config_ui.c:162 msgid "Generate Keys" msgstr "Generér nøgler" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Ingen nøgle valgt der skal genereres igen!" #: config_ui.c:180 msgid "OK" msgstr "O.k." #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Krypteringsprotokol:" #: config_ui.c:203 msgid "Key size:" msgstr "Nøgle størrelse:" #: config_ui.c:245 msgid "Cancel" msgstr "Annullér" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "O.k." #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Slet nøgle" #: config_ui.c:396 msgid "Account" msgstr "Konto" #: config_ui.c:398 msgid "Name" msgstr "Navn" #: config_ui.c:402 msgid "Bits" msgstr "Bits" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Nøgle-fingeraftryk" #: config_ui.c:498 msgid "Config" msgstr "Opsætning" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Acceptér nøgle automatisk hvis ingen nøgle pÃ¥ fil" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Acceptér konfliktende nøgler automatisk (sikkerhedsbrist)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Kryptér automatisk hvis en krypteret besked blev sendt" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Fortæl andre om din krypteringsevne" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Kryptér automatisk hvis ven har modulet" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "" #: config_ui.c:518 msgid "Keyfile location" msgstr "" #: config_ui.c:525 msgid "Create key files" msgstr "" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Generér nøgle igen" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Kopiér fingeraftryk til klippebord" #: config_ui.c:571 msgid "Local Keys" msgstr "Lokale nøgler" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Troværdige vennenøgler" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Nye vennenøgler" #: config_ui.c:658 msgid "No key files found at path" msgstr "" #: config_ui.c:667 msgid "Absolute path required" msgstr "" #: config_ui.c:678 msgid "Unable to create key files" msgstr "" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Ugyldig Base64 data, længde %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "Denne konti nøgle er for stor til denne protokol. Kunne ikke sende." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Sidste udgÃ¥ende besked blev ikke modtaget korrekt- nulstiller" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Modtog krypteret besked med forkert nøgle" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Fejl i dekryptering- spørger om at afsende igen..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Anmoder om nøgle..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Ingen nøgle til at afsende besked igen. Besked tabt." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "UdgÃ¥ende besked tabt." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-kryptering" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Krypterer samtaler med RSA-kryptering." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "RSA-kryptering med nøgler op til 4096 bits, ved at brug Mozilla NSS crypto " "biblioteket.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, oversat til dansk af Morten Brix Pedersen" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "SlÃ¥ automatisk kryptering fra" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "SlÃ¥ automatisk kryptering til" #: keys.c:98 msgid "Making new key pair..." msgstr "Opretter nyt nøglepar..." #: keys.c:115 msgid "Error trying to make key." msgstr "Fejl ved oprettelse af nøgle." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Konfliktende nøgler modtaget!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Fejl ved ændring af 'access mode' for fil: %s\n" "Kan ikke gemme nøgle." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Fejl (2) ved ændring af 'access mode' for fil: %s\n" "Kan ikke gemme nøgle." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Ugyldige rettigheder pÃ¥ nøglefil: %s\n" "Pidgin-kryptering vil ikke gemme nøgler til en fil der kan tilgÃ¥s af alle " "eller en gruppe." #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Ugyldige rettigheder pÃ¥ nøglefil: %s\n" "Pidgin-kryptering vil ikke gemme nøgler til en fil der kan tilgÃ¥s af alle " "eller en gruppe." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Pidgin-kryptering nøgle modtaget" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s nøgle modtaget for '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Nøgle fingeraftryk:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Vil du acceptere denne nøgle?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Nej" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Acceptér og gem" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Kun denne session" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "KONFLIKTENDE Pidgin-kryptering nøgle modtaget" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* ADVARSEL ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "KONFLIKTENDE %s nøgle modtaget for '%s'!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Dette kan være et man-i-midten angreb, eller\n" "det kan være nogle der prøver at forestille din ven.\n" "Du bør tjekke med din ven for at se om de har genereret\n" "denne nye nøgle før du stoler pÃ¥ den." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Opretter RSA nøglepar for %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Dette kan tage et lille stykke tid..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Kunne ikke oprette nøgle. NSS fejl: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Fejl ved tolkning af RSANSS nøgle\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Ugyldig signatur pÃ¥ besked (længde %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 #, fuzzy msgid "Enable Encryption" msgstr "Pidgin-kryptering" #: state_ui.c:146 #, fuzzy msgid "Disable Encryption" msgstr "Pidgin-kryptering" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "Den sidste besked modtaget var krypteret med Pidgin-krypterings modulet" #, fuzzy #~ msgid "Encrypt Outgoing Messages" #~ msgstr "UdgÃ¥ende besked tabt." #~ msgid "Tx: capable" #~ msgstr "Tx: egnet" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "Din ven ser ud til at have Pidgin-krypterings modulet. Men din næste " #~ "udgÃ¥ende besked vil IKKE være krypteret af Pidgin-krypterings modulet." #~ msgid "Tx: secure" #~ msgstr "Tx: sikker" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Din næste udgÃ¥ende besked vil være krypteret med Pidgin-krypterings " #~ "modulet" #~ msgid "Tx: plain" #~ msgstr "Tx: almindelig" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "" #~ "Din næste udgÃ¥ende besked vil IKKE være krypteret med Pidgin-krypterings " #~ "modulet" #~ msgid "Rx: secure" #~ msgstr "Rx: sikker" #~ msgid "Rx: plain" #~ msgstr "Rx: almindelig" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Den sidste besked modtaget var IKKE krypteret med Pidgin-krypterings " #~ "modulet" #~ msgid "" #~ "Compiled with '%s', running with '%s'. Pidgin-Encryption will probably " #~ "not run right.\n" #~ msgstr "" #~ "Kompileret med '%s', kører med '%s'. Pidgin-kryptering vil sikkert ikke " #~ "køre ordentligt\n" #~ msgid "" #~ "Pidgin-Encryption plugin was compiled with a different version of " #~ "Pidgin. You may experience problems." #~ msgstr "" #~ "Pidgin-krypterings modulet var kompileret med en anden version af Pidgin. " #~ "Du kan opleve problemer." pidgin-encryption-3.1/po/ta.po0000644000175100017510000003437511365216010013333 00000000000000# TAMIL Gaim-Encryption Translation # Copyright (C) 2006 William Tompkins # This file is distributed under the same license as the Gaim-Encryption package # drtvasudevan agnihot3@gmail.com, 2006 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Gaim-Encryption 3.0beta4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: drtvasudevan agnihot3@gmail.com, 2006\n" "Language-Team: tamil \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "பிழையான விசை அளவà¯" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "512 பிடà¯à®Ÿà¯à®•ளà¯à®•à¯à®•௠கà¯à®±à¯ˆà®µà®¾à®© விசைகள௠மிக மிக பாதà¯à®•ாபà¯à®ªà®±à¯à®±à®µà¯ˆ" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" " 4096 பிடà¯à®Ÿà¯à®•ளà¯à®•à¯à®•௠அதிகமான விசைகள௠\n" "செயà¯à®¤à®¿à®•ளை மிகப௠பெரிதாகà¯à®•ி அவறà¯à®±à¯ˆ\n" "அனà¯à®ªà¯à®ªà¯à®µà®¤à¯ˆ சிகà¯à®•லாகà¯à®•à¯à®®à¯" #: config_ui.c:162 msgid "Generate Keys" msgstr "விசைகளை உரà¯à®µà®¾à®•à¯à®•வà¯à®®à¯" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "மீணà¯à®Ÿà¯à®®à¯ உரà¯à®µà®¾à®•à¯à®• விசை à®à®¤à¯à®®à¯ தேரà¯à®µà¯ செயà¯à®¯à®ªà¯ படவிலà¯à®²à¯ˆ" #: config_ui.c:180 msgid "OK" msgstr "சரி" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®• நெறிமà¯à®±à¯ˆ" #: config_ui.c:203 msgid "Key size:" msgstr "விசை அளவà¯:" #: config_ui.c:245 msgid "Cancel" msgstr "ரதà¯à®¤à¯ செயà¯à®•" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "சரி" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "விசையை நீகà¯à®•à¯à®•" #: config_ui.c:396 msgid "Account" msgstr "கணகà¯à®•à¯" #: config_ui.c:398 msgid "Name" msgstr "பெயரà¯" #: config_ui.c:402 msgid "Bits" msgstr "பிடà¯à®Ÿà¯à®•ளà¯" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "விசை" #: config_ui.c:498 msgid "Config" msgstr "வடிவமைகà¯à®•" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "கோபà¯à®ªà®¿à®²à¯ விசை இலà¯à®²à®¾à®µà®¿à®Ÿà¯à®Ÿà®¾à®²à¯ விசையை தானியஙà¯à®•ியாக à®à®±à¯à®±à¯à®•௠கொளà¯à®•" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "à®®à¯à®°à®£à¯à®ªà®¾à®Ÿà®¾à®© விசைகளை தானியஙà¯à®•ியாக à®à®±à¯à®±à¯à®•௠கொளà¯à®•" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ செயà¯à®¤à®¿à®•ளை தானியஙà¯à®•ியாக கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠செயà¯à®•" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠செயà¯à®¯à¯à®®à¯ திறனை அறிவிகà¯à®•வà¯à®®à¯" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "நணà¯à®ªà®°à®¿à®Ÿà®®à¯ சொரà¯à®•ி இரà¯à®ªà¯à®ªà®¿à®©à¯ தானியஙà¯à®•ியாக கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠செயà¯à®•" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "ஒவà¯à®µà¯Šà®°à¯ அரடà¯à®Ÿà¯ˆ வரிகà¯à®•à¯à®®à¯ பூடà¯à®Ÿà¯ சினà¯à®©à®¤à¯à®¤à¯ˆ காடà¯à®Ÿà®µà¯à®®à¯" #: config_ui.c:518 msgid "Keyfile location" msgstr "விசைகà¯à®•ோபà¯à®ªà¯ இரà¯à®ªà¯à®ªà®¿à®Ÿà®®à¯" #: config_ui.c:525 msgid "Create key files" msgstr "விசைகà¯à®•ோபà¯à®ªà¯à®•ளை உரà¯à®µà®¾à®•à¯à®•வà¯à®®à¯" #: config_ui.c:556 msgid "Regenerate Key" msgstr "விசையை மீணà¯à®Ÿà¯à®®à¯ உரà¯à®µà®¾à®•à¯à®•வà¯à®®à¯" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "ஒடà¯à®Ÿà¯à®ªà¯ பலகைகà¯à®•௠விரலà¯à®°à¯‡à®•ையை பிரதி எடà¯à®•à¯à®•வà¯à®®à¯" #: config_ui.c:571 msgid "Local Keys" msgstr "உளà¯à®³à®®à¯ˆ விசைகளà¯" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "நமà¯à®ªà®¿à®•à¯à®•ையான நணà¯à®ªà®°à¯ விசைகளà¯" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "சமீபதà¯à®¤à®¿à®¯ நணà¯à®ªà®°à¯ விசைகளà¯" #: config_ui.c:658 msgid "No key files found at path" msgstr "பாதையில௠விசையை காணவிலà¯à®²à¯ˆ" #: config_ui.c:667 msgid "Absolute path required" msgstr "à®®à¯à®´à¯à®ªà¯ பாதை தேவை" #: config_ui.c:678 msgid "Unable to create key files" msgstr "விசைகà¯à®•ோபà¯à®ªà¯à®•ளை உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•ாத பேஸà¯64 (Base64) தரவà¯, நீளமà¯%d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "இநà¯à®¤ கணகà¯à®•à¯à®•à¯à®•ான விசை இநà¯à®¤ நெறிமà¯à®±à¯ˆà®•à¯à®•௠மிக நீளமானதà¯. அனà¯à®ªà¯à®ª இயலவிலà¯à®²à¯ˆ." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "கடைசியாக வெளிச௠செனà¯à®± செயà¯à®¤à®¿ கிடைகà¯à®•ப௠பெறவிலà¯à®²à¯ˆ- மீடà¯à®Ÿà¯à®®à¯ அமைகà¯à®•ப௠படà¯à®•ினà¯à®±à®¤à¯" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "கிடைகà¯à®•ப௠பெறà¯à®± செயà¯à®¤à®¿ தவறான விசையால௠கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠செயà¯à®¯à®ªà¯ படà¯à®Ÿà®¤à¯" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "கà¯à®±à®¿à®®à¯à®±à¯ˆ மீளாகà¯à®•தà¯à®¤à®¿à®²à¯ பிழை- மீணà¯à®Ÿà¯à®®à¯ அனà¯à®ªà¯à®ª கோரà¯à®•ிறதà¯..." #: encrypt.c:941 msgid "Requesting key..." msgstr "விசை கேடà¯à®Ÿà¯à®•௠கோரிகà¯à®•ை..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "செயà¯à®¤à®¿à®¯à¯ˆ மீணà¯à®Ÿà¯à®®à¯ அனà¯à®ªà¯à®ª விசை இலà¯à®²à¯ˆ. செயà¯à®¤à®¿ இழகà¯à®•ப௠படà¯à®Ÿà®¤à¯" #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "வெளிச௠செலà¯à®²à¯à®®à¯ செயà¯à®¤à®¿ இழகà¯à®•ப௠படà¯à®Ÿà®¤à¯" #: encrypt.c:1429 #, fuzzy msgid "Pidgin-Encryption" msgstr "கெயà¯à®®à¯-கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•à®®à¯" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "ஆரà¯à®Žà®¸à¯à® கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®• à®®à¯à®±à¯ˆà®¯à®¿à®²à¯ உரையாடலà¯à®•ளை கà¯à®±à®¿à®¯à¯€à®Ÿà¯ செயà¯à®•ிறதà¯" #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "4096 பிடà¯à®Ÿà¯à®•ள௠வரை விசைகளை கொணà¯à®Ÿà¯ மோசிலà¯à®²à®¾ எனà¯à®Žà®©à¯à®Žà®¸à¯ கிரிபà¯à®Ÿà¯‹à®µà¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿ ஆரà¯à®Žà®¸à¯à® " "கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•à®®à¯\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "பில௠டாமà¯à®•ினà¯à®¸à¯, மொழியாகà¯à®•à®®à¯: தி.வாசà¯à®¤à¯‡à®µà®©à¯" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "தானியஙà¯à®•ி கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•தà¯à®¤à¯ˆ செயல௠விலகà¯à®•à¯à®•" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "தானியஙà¯à®•ி கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•தà¯à®¤à¯ˆ செயல௠படà¯à®¤à¯à®¤à¯à®•" #: keys.c:98 msgid "Making new key pair..." msgstr "பà¯à®¤à®¿à®¯ விசை ஜோடியை உரà¯à®µà®¾à®•à¯à®•ிறதà¯..." #: keys.c:115 msgid "Error trying to make key." msgstr "விசை உரà¯à®µà®¾à®•à¯à®•à¯à®µà®¤à®¿à®²à¯ பிழை" #: keys.c:280 msgid "Conflicting Key Received!" msgstr "à®®à¯à®°à®£à¯à®ªà®¾à®Ÿà®¾à®© விசை கிடைகà¯à®•ப௠பெறà¯à®±à®¤à¯!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "இநà¯à®¤ கோபà¯à®ªà¯à®•à¯à®•௠அணà¯à®•ல௠பாணியை மாறà¯à®±à¯à®µà®¤à®¿à®²à¯ பிழை: %s\n" "விசையை சேமிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "இநà¯à®¤ கோபà¯à®ªà¯à®•à¯à®•௠அணà¯à®•ல௠பாணியை மாறà¯à®±à¯à®µà®¤à®¿à®²à¯ பிழை (2): %s\n" "விசையை சேமிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." #: keys.c:484 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "இநà¯à®¤ விசை கோபà¯à®ªà®¿à®²à¯ மோசமான அனà¯à®®à®¤à®¿à®•ளà¯: %s\n" "கெயà¯à®®à¯-கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠உலக அலà¯à®²à®¤à¯ கà¯à®´à¯ அணà¯à®•ல௠உளà¯à®³ கோபà¯à®ªà¯à®•à¯à®•௠விசையை சேமிகà¯à®•ாதà¯" #: keys.c:746 #, fuzzy, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "இநà¯à®¤ விசை கோபà¯à®ªà®¿à®²à¯ மோசமான அனà¯à®®à®¤à®¿à®•ளà¯: %s\n" "கெயà¯à®®à¯-கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠உலக அலà¯à®²à®¤à¯ கà¯à®´à¯ அணà¯à®•ல௠உளà¯à®³ கோபà¯à®ªà¯à®•à¯à®•௠விசையை சேமிகà¯à®•ாதà¯" #: keys_ui.c:127 #, fuzzy msgid "Pidgin-Encryption Key Received" msgstr "கெயà¯à®®à¯-கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®• விசை கிடைகà¯à®•ப௠பெறà¯à®±à®¤à¯" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s விசை '%s' கà¯à®•ாக கிடைகà¯à®•ப௠பெறà¯à®±à®¤à¯" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "விசை விரல௠ரேகை:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "இநà¯à®¤ விசையை à®à®±à¯à®•லாமா?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "இலà¯à®²à¯ˆ" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "à®à®±à¯à®±à¯ சேமிகà¯à®•வà¯à®®à¯" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "இநà¯à®¤ அமரà¯à®µà¯à®•à¯à®•௠மடà¯à®Ÿà¯à®®à¯" #: keys_ui.c:224 #, fuzzy msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "à®®à¯à®°à®£à¯à®ªà®¾à®Ÿà®¾à®© கெயà¯à®®à¯-கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®• விசை கிடைகà¯à®•ப௠பெறà¯à®±à®¤à¯" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* எசà¯à®šà®°à®¿à®•à¯à®•ை ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "'%sகà¯à®•௠மà¯à®°à®£à¯à®ªà®¾à®Ÿà®¾à®© விசை %s கிடைகà¯à®•ப௠பெறà¯à®±à®¤à¯!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "இத௠கà¯à®±à¯à®•à¯à®•ே பà¯à®•à¯à®¨à¯à®¤ ஒர௠நபரின௠தாகà¯à®•à¯à®¤à®²à®¾à®• இரà¯à®•à¯à®•லாமà¯,\n" "அலà¯à®²à®¤à¯ யாரோ உஙà¯à®•ள௠நணà¯à®ªà®°à¯ போல நடிகà¯à®•லாமà¯.\n" "உஙà¯à®•ள௠நணà¯à®ªà®°à¯ உணà¯à®®à¯ˆà®¯à®¿à®²à¯ இநà¯à®¤ பà¯à®¤à®¿à®¯ விசையை\n" "உரà¯à®µà®¾à®•à¯à®•ினாரா என உறà¯à®¤à®¿ செயà¯à®¤à¯ கொணà¯à®Ÿà¯ இதை நமà¯à®ªà®µà¯à®®à¯." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "%s கà¯à®•௠ஆரà¯à®Žà®¸à¯à® விசை ஜோடி உரà¯à®µà®¾à®•à¯à®•ப௠படà¯à®•ிறதà¯" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "சறà¯à®±à¯‡ பொறà¯à®•à¯à®•வà¯à®®à¯..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "விசையை உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ. எனà¯à®Žà®©à¯à®Žà®¸à¯ பிழை: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "ஆரà¯à®Žà®¸à¯à®à®Žà®©à¯à®Žà®©à¯à®Žà®¸à¯ விசையை கூற௠பகà¯à®ªà¯à®ªà®¤à®¿à®²à¯ பிழை\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "செயà¯à®¤à®¿à®¯à®¿à®²à¯ மோசமான கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ எண௠(len %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•தà¯à®¤à¯ˆ செயல௠படà¯à®¤à¯à®¤à¯à®•" #: state_ui.c:146 msgid "Disable Encryption" msgstr "கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•தà¯à®¤à¯ˆ செயல௠விலகà¯à®•à¯à®•" #: state_ui.c:274 #, fuzzy msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "கடைசியாக கிடைதà¯à®¤ செயà¯à®¤à®¿ கெயà¯à®®à¯-கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®• சொரà¯à®•ியால௠கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠செயà¯à®¯à®ªà¯ படà¯à®Ÿà®¤à¯" pidgin-encryption-3.1/po/sv.gmo0000644000175100017510000001351011365216011013510 00000000000000Þ•> SüHIc|5Œ*Âí)õ2 R*_ Š˜%½*ã6'T |‡§+¼<è8%)^ˆ¢ ¼Êéù ! ]9 6— Î Ù ð õ ø ( A D G ^ p P )à   + J= @ˆ ·É  Ÿ ± Ä Ú Vï F`|=2Î068o10³äê,05f m{"›(¾çö,,GYC¡1å"":]nލ Æ&ÔdûC`¤³ÌÑ#Õ;ù58; [&fV0ä+>UOK¥ÖñÈäþ0 :3"+!-,=6>47&)* .5% 2'# ; (90/1<$8  ******* WARNING ******* %s key received for '%s'Accept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Delete KeyDo you want to accept this key?Encryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...The last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnProject-Id-Version: pidgin-encryption 2.38-1 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2006-01-15 21:38+0100 Last-Translator: Daniel Nylander Language-Team: Swedish MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit ******* VARNING ******* %s nyckel mottogs för '%s'Acceptera och sparaAcceptera konflikterande nycklar automatiskt (säkerhetsrisk)Acceptera nyckel automatiskt om ingen nyckel finnsKontoKryptera automatiskt om kompis har insticksmodulKryptera automatiskt om krypterat meddelande skickadesFel nyckelstorlekFelaktig signatur i meddelande (len %d, mod %d) Bill Tompkins, översättning av Daniel NylanderBitarMeddela krypteringsmöjlighetKONFLIKTERANDE %s nyckel mottagen för "%s"!KONFLIKTERANDE Pidgin-Encryption-nyckel mottagenAvbrytKonfigurationKonflikterande nyckel mottagen!Kopiera fingeravtryck till UrklippKunde inte generera nyckel. NSS-fel: %d Ta bort nyckelAccepterar du den här nyckeln?Krypteringsprotokoll:Krypterar konversationer med RSA-kryptering.Fel (2) vid byte av tillgÃ¥ngsläge för fil: %s Kan inte spara nyckel.Fel vid byte av tillgÃ¥ngsläge för fil: %s Kan inte spara nyckel.Fel i dekryptering - frÃ¥gar efter omsändning...Fel vid tolkning av RSANSS-nyckel Fel vid försök att skapa nyckel.Generera nycklarGenererar RSA-nyckelpar för %sFingeravtryck för nyckelFingeravtryck för nyckel:%*sNyckellängd:Nycklar < 512 bitar är MYCKET osäkraNycklar > 4096 bitar kommer att orsaka stora meddelanden och problem med överföring av meddelandenSenaste utgÃ¥ende meddelande togs inte emot korrekt - Ã¥terställerLokala nycklarSkapar nytt nyckelpar...NamnNejIngen nyckel vald att genereras om!Ingen nyckel att omsända meddelande. Meddelande förlorat.OKOkUtgÃ¥ende meddelande förlorat.KrypteringNyckel för Pidgin-Encryption mottagenRSA-kryptering med nycklar upp till 4096-bitar med Mozillas NSS-krypteringsbibliotek. Mottaget meddelande är krypterat med fel nyckelSenaste kompisnycklarGenerera om nyckelBegär nyckel...Senaste meddelandet som togs emot var krypterat med insticksmodulen Pidgin-EncryptionDenna kontonyckel är för stor för det här protokollet. Kan inte skicka.Det här kan vara en man-i-mitten-attack eller kan vara nÃ¥gon som utger sig för att vara din kompis. Du bör kontrollera med din kompis för att se om denne har genererat den nya nyckeln före den blev pÃ¥litlig.Det här kan ta lite tid...Endast den här sessionenPÃ¥litliga kompisnycklarStäng av autokrypteringAktivera autokrypteringpidgin-encryption-3.1/po/bg.po0000644000175100017510000002570311365216007013320 00000000000000# Pidgin-encryption po file for Bulgarian. # Copyright (C) 2007 Lachezar Dobrev # This file is distributed under the GPL # Lachezar Dobrev , Sofia 2007 # msgid "" msgstr "" "Project-Id-Version: Pidgin-encryption\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2007-09-22 20:10+0200\n" "Last-Translator: Лъчезар Добрев \n" "Language-Team: Lachezar Dobrev \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Лош размер на ключа" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Ключове под 512 бита Ñа МÐОГО неÑигурни" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Ключове над 4096 бита ще предизвикат\n" "прекомерно големи ÑъобщениÑ,\n" "които ще влошат комуникациÑта" #: config_ui.c:162 msgid "Generate Keys" msgstr "Генерирай ключове" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Ðе е избран ключ за пре-генериране!" #: config_ui.c:180 msgid "OK" msgstr "ОК" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Протокол:" #: config_ui.c:203 msgid "Key size:" msgstr "Дължина:" #: config_ui.c:245 msgid "Cancel" msgstr "Отказ" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "ОК" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Изтрий" #: config_ui.c:396 msgid "Account" msgstr "Сметка" #: config_ui.c:398 msgid "Name" msgstr "Име" #: config_ui.c:402 msgid "Bits" msgstr "Битове" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Отпечатък" #: config_ui.c:498 msgid "Config" msgstr "КонфигурациÑ" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "Ðвтоматично приемай ключа ако вÑе още нÑма такъв" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Приемай автоматично конфликтни ключове (РИСКОВÐÐО)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Ðвтоматично криптирай Ñлед получаване на криптирано Ñъобщение" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Излъчвай ÑпоÑобноÑтта за криптиране" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Ðвтоматично криптирай ако Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð¼Ð° приÑтавката" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "Показвай иконка-катинар за вÑеки отделен ред" #: config_ui.c:518 msgid "Keyfile location" msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° файловете Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ðµ" #: config_ui.c:525 msgid "Create key files" msgstr "Създай файловете Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ðµ" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Генерирай ключ наново" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Копирай отпечатъка в буфера за обмен" #: config_ui.c:571 msgid "Local Keys" msgstr "Локални ключове" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Доверени ключове на приÑтели" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Ключове използвани наÑкоро" #: config_ui.c:658 msgid "No key files found at path" msgstr "ÐÑма ключове в избраното мÑÑто" #: config_ui.c:667 msgid "Absolute path required" msgstr "ИзиÑква Ñе абÑолютен път" #: config_ui.c:678 msgid "Unable to create key files" msgstr "ÐеуÑпешно Ñъздаване на ключове" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Ðевалидни Base64 данни, дължина %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "Ключът за тази Ñметка е прекалено дълъг. ÐеуÑпешно изпращане." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "" "ПоÑледното изпратено Ñъобщение не бе получено правилно - реконфигуриране" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Получено Ñъобщение криптирано Ñ Ð³Ñ€ÐµÑˆÐµÐ½ ключ" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Грешка при декриптиране - заÑвено повторно изпращане" #: encrypt.c:941 msgid "Requesting key..." msgstr "ЗаÑвка за получаване на ключ..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "" "ÐÑма ключ за повторно изпращане на Ñъобщението. Съобщението бе загубено." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "ИзходÑщото Ñъобщение бе загубено" #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Криптира разговорите използвайки RSA алгоритъм." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "RSA криптиране Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ðµ до 4096 бита, използвайки Mozilla NSS " "библиотеката.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, преведен от Лъчезар Добрев" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Изключи автоматичното криптиране" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Включи автоматичното криптиране" #: keys.c:98 msgid "Making new key pair..." msgstr "Създаване на двойка ключове..." #: keys.c:115 msgid "Error trying to make key." msgstr "Грешка при опит да Ñе Ñъздаде ключ." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "Получен конфликтен ключ!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Грешка при промÑна на правата на файл: '%s'\n" "Ключа не бе запиÑан." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Грешка (2) при промÑна на правата на файл: '%s'\n" "Ключа не бе запиÑан." #: keys.c:484 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Правата на файла '%s' Ñа Ñменени.\n" "Pidgin-Encryption нÑма да запише ключ във файл, който може да Ñе чете от " "вÑички или групата." #: keys.c:746 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Правата на файла '%s' Ñа Ñменени.\n" "Pidgin-Encryption нÑма да използва ключ от файл, който може да Ñе чете от " "вÑички или групата." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Получи Ñе ключ за Pidgin-Encryption" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "Ключ '%s' бе получен за '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Отпечатък на ключа: %*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "ИÑкате ли да приемете този ключ?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Ðе" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Приеми и запиши" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Само за ÑеÑиÑта" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "Получи Ñе КОÐФЛИКТЕРключ за Pidgin-Encryption" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* Ð’ÐИМÐÐИЕ ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "Получи Ñе конфликтен ключ '%s' за '%s'!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Това може да е атака от вида човек-по-Ñредата, или\n" "може да е нÑкой който Ñе предÑÑ‚Ð°Ð²Ñ Ð·Ð° Ð²Ð°ÑˆÐ¸Ñ Ð¿Ñ€Ð¸Ñтел.\n" "Ðай-добре Ñе Ñвържете Ñ Ð²Ð°ÑˆÐ¸Ñ Ð¿Ñ€Ð¸Ñтел и Ñе уверете,\n" "че ключа наиÑтина е променен преди да го одобрите." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Създаване на RSA двойка ключове за '%s'" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Това може да отнеме извеÑтно време..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "ÐеуÑпешно генериране на ключ. NSS Грешка: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Грешка при прочитане на RSA NSS ключа\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Сгрешен Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð½Ð° Ñъобщението (l %d, m %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "Включи криптирането" #: state_ui.c:146 msgid "Disable Encryption" msgstr "Изключи криптирането" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "" "ПоÑледното Ñъобщение бе получено криптирано Ñ Ð¿Ñ€Ð¸Ñтавката Pidgin-Encryption" pidgin-encryption-3.1/po/fr.po0000644000175100017510000004134711365216007013341 00000000000000# Pidgin-Encryption translation file for French. # Copyright (C) 2004 Davy Defaud # This file is distributed under the GPL # Davy Defaud , avril 2004 # # msgid "" msgstr "" "Project-Id-Version: Pidgin-Encryption 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2007-10-26 12:06+0200\n" "Last-Translator: Davy Defaud \n" "Language-Team: Davy Defaud \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "Mauvaise longueur de clef" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "Les clefs < 512 bits sont TRÈS peu sûres !" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "Les clefs supérieures à 4096 bits\n" "dilatent les messages, causant des\n" "problèmes de transmission." #: config_ui.c:162 msgid "Generate Keys" msgstr "Génération de clefs" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "Sélectionnez une clef à régénérer !" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "Type de chiffrement :" #: config_ui.c:203 msgid "Key size:" msgstr "Longueur de clef :" #: config_ui.c:245 msgid "Cancel" msgstr "Annuler" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Valider" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "Effacer la clef" #: config_ui.c:396 msgid "Account" msgstr "Compte" #: config_ui.c:398 msgid "Name" msgstr "Nom" #: config_ui.c:402 msgid "Bits" msgstr "Longueur" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "Empreinte de la clef" #: config_ui.c:498 msgid "Config" msgstr "Configuration" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "" "Accepter automatiquement une clef si aucune n'est associée au correspondant" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "Accepter automatiquement les clefs en conflit (dangereux)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "Chiffrer automatiquement si le correspondant chiffre" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "Diffuser la capacité de chiffrement" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "Chiffrer automatiquement quand le contact possède le greffon" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "Afficher l'icône cadenas à chaque envoi/réception" #: config_ui.c:518 msgid "Keyfile location" msgstr "Emplacement du fichier de clefs" #: config_ui.c:525 msgid "Create key files" msgstr "Créer les fichiers de clefs" #: config_ui.c:556 msgid "Regenerate Key" msgstr "Régénérer des clefs" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "Copier l'empreinte de la clef dans le presse-papier" #: config_ui.c:571 msgid "Local Keys" msgstr "Clefs locales" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "Clefs des contacts de confiance" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "Clefs des contacts récents" #: config_ui.c:658 msgid "No key files found at path" msgstr "Aucun fichier de clefs à l'emplacement" #: config_ui.c:667 msgid "Absolute path required" msgstr "Un chemin d'accès absolu est requis" #: config_ui.c:678 msgid "Unable to create key files" msgstr "Impossible de créer les fichiers de clefs" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "Données en Base64 incorrectes, longueur de %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "Cette clef est trop grande pour ce protocole. Envoi impossible." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "Le dernier message envoyé a été mal réceptionné - réinitialisation" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "Message reçu chiffré avec une mauvaise clef" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "Erreur lors du déchiffrement, demande de renvoi..." #: encrypt.c:941 msgid "Requesting key..." msgstr "Demande de clef..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "Aucune clef pour renvoyer le message. Message perdu." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "Message sortant perdu." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-Encryption" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "Chiffre les conversations avec un chiffrement RSA." #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "" "Chiffrement RSA avec une longueur de clef jusqu'à 4096 bits, via la " "librairie de chiffrement Mozilla NSS.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, traduit par Davy Defaud" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "Désactiver le chiffrement automatique" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "Activer le chiffrement automatique" #: keys.c:98 msgid "Making new key pair..." msgstr "Génération d'une paire de clef..." #: keys.c:115 msgid "Error trying to make key." msgstr "Erreur lors de la génération de clef." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "La clef reçue est en conflit !" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "Erreur lors du changement des droits d'accès du fichier : %s\n" "Enregistrement de la clef impossible." #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "Erreur (2) lors du changement des droits d'accès au fichier : %s\n" "Enregistrement de la clef impossible." #: keys.c:484 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "Droits d'accès modifiés sur le fichier de clefs : %s\n" "Pidgin-Encryption n'enregistrera pas dans un fichier accessible à tous ou au " "groupe." #: keys.c:746 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "Droits d'accès modifiés sur le fichier de clefs : %s\n" "Pidgin-Encryption n'utilisera pas un fichier accessible à tous ou au groupe." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "Clef pour Pidgin-Encryption reçue" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "Clef %s reçue pour '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "Empreinte de la clef : %*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "Acceptez-vous cette clef ?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "Non" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "Accepter et enregistrer" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "Uniquement pour la session" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "CONFLIT de clef Pidgin-Encryption" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ******* ATTENTION ******* " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "La clef '%s' reçue pour '%s' est en CONFLIT !" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "Cela peut-être une attaque du type homme-au-milieu,\n" "ou bien quelqu'un se faisant passer pour votre contact.\n" "Vous devriez vérifier avec lui s'il a généré cette\n" "nouvelle clef avant de lui accorder votre confiance." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "Génération d'une paire de clefs RSA pour %s" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "Ceci peut prendre un peu de temps..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "Génération de clef impossible. Erreur NSS : %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "Erreur au cours de l'examen de la clef RSANSS\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "Mauvaise signature du message (long %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "Activer le chiffrement" #: state_ui.c:146 msgid "Disable Encryption" msgstr "Désactiver le chiffrement" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "Le dernier message reçu a été chiffré par le greffon Pidgin-Encryption" #~ msgid "Encrypt Outgoing Messages" #~ msgstr "Chiffrer les envois" #~ msgid "Tx: capable" #~ msgstr "Tx : activable" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "Votre contact semble posséder le greffon Pidgin-Encryption. Cependant, " #~ "votre prochain message sortant ne sera pas chiffré par Pidgin-Encryption." #~ msgid "Tx: secure" #~ msgstr "Tx : chiffrée" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Votre prochain message sortant sera chiffré par le greffon Pidgin-" #~ "Encryption" #~ msgid "Tx: plain" #~ msgstr "Tx : claire" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "" #~ "Votre prochain message sortant ne sera PAS chiffré par le greffon Pidgin-" #~ "Encryption" #~ msgid "Rx: secure" #~ msgstr "Rx : chiffrée" #~ msgid "Rx: plain" #~ msgstr "Rx : claire" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "" #~ "Le dernier message reçu n'a PAS été chiffré par le greffon Pidgin-" #~ "Encryption" #~ msgid "" #~ "Compiled with '%s', running with '%s'. Pidgin-Encryption will probably " #~ "not run right.\n" #~ msgstr "" #~ "Compilé avec '%s', exécuté avec '%s'. Pidgin-Encryption ne fonctionnera " #~ "probablement pas correctement.\n" #~ msgid "" #~ "Pidgin-Encryption plugin was compiled with a different version of " #~ "Pidgin. You may experience problems." #~ msgstr "" #~ "Pidgin-Encryption a été compilé avec une version différente de Pidgin. " #~ "Vous pouvez éprouver des problèmes." #~ msgid "Currently cached keys" #~ msgstr "Trousseau de clefs" #~ msgid "Key Type" #~ msgstr "Type de clef" #~ msgid "Protocol" #~ msgstr "Protocole" #~ msgid "private" #~ msgstr "privée" #~ msgid "public" #~ msgstr "publique" #~ msgid "Error parsing RSANSS nonce/key\n" #~ msgstr "Erreur à l'examen de l'ID de session RSANSS\n" #~ msgid "Error decoding Base64 RSANSS Public key\n" #~ msgstr "Erreur au décodage de la clef publique RSANSS Base64 \n" #~ msgid "Error Base64 decoding RSANSS Public key\n" #~ msgstr "Erreur Base64 au décodage de la clef publique RSANSS\n" #~ msgid "Error decoding RSANSS Public key\n" #~ msgstr "Erreur au décodage de la clef publique RSANSS\n" #~ msgid "Error parsing RSANSS Private key\n" #~ msgstr "Erreur à l'interprétation de la clef privée RSANSS\n" #~ msgid "Error parsing Base64 in RSANSS Private Key\n" #~ msgstr "Erreur à l'interprétation base 64 de la clef privée RSANSS\n" #~ msgid "Error creating symmetric key: unable to load private key\n" #~ msgstr "" #~ "Erreur à la création d'une clef symétrique: impossible de charger la clef " #~ "privée\n" #~ msgid "Error decoding RSANSS Private key\n" #~ msgstr "Erreur au décodage de la clef privée RSANSS\n" #~ msgid "No Nonce in message\n" #~ msgstr "Pas d'ID de session dans le message\n" #~ msgid "Bad Nonce in message\n" #~ msgstr "Mauvais identifiant de session dans le message\n" #~ msgid "Can't load the NSS plugin\n" #~ msgstr "Chargement du greffon NSS impossible.\n" #~ msgid "" #~ "Pidgin was not compiled with the NSS plugin enabled. Pidgin-Encryption " #~ "requires the NSS plugin to function." #~ msgstr "" #~ "Pidgin n'a pas été compilé avec le greffon NSS activé. Pidgin-Encryption " #~ "requiert le greffon NSS pour son fonctionnement." #~ msgid ", not this version." #~ msgstr ", pas cette version" #~ msgid "done loading\n" #~ msgstr "chargement effectué\n" #~ msgid "find key by name: %s\n" #~ msgstr "Recherche d'une clef pour: %s\n" #~ msgid "Error! Can't find own key for %s\n" #~ msgstr "Erreur! Aucune clef pour %s\n" #~ msgid "Dumping public keyring:\n" #~ msgstr "Clef publique:\n" #~ msgid "Encryption Manager" #~ msgstr "Gestionnaire de chiffrement" #~ msgid "Error! Can't make new key for %s\n" #~ msgstr "Erreur! Impossible de créer une nouvelle clef pour %s\n" #~ msgid "Key ring::%*s::%p\n" #~ msgstr "Key ring::%*s::%p\n" #~ msgid "Removing key for %s\n" #~ msgstr "Effacement de la clef de %s\n" #~ msgid "received_key\n" #~ msgstr "received_key\n" #~ msgid ": Prot " #~ msgstr ": Prot " #~ msgid "Error in received key\n" #~ msgstr "Erreur dans la clef reçue\n" #~ msgid "Unknown protocol type: %10s\n" #~ msgstr "Protocole inconnu: %10s\n" #~ msgid "Error in key header\n" #~ msgstr "Erreur dans l'entête de clef\n" #~ msgid "Length doesn't match in add_key\n" #~ msgstr "La longueur ne correspond pas dans add_key\n" #~ msgid "After key:%s\n" #~ msgstr "After key : %s\n" #~ msgid "Resend" #~ msgstr "Renvoi" #~ msgid "Checking key file %s for name %s\n" #~ msgstr "Verification du fichier de clef %s pour %s\n" #~ msgid "Invalid permissions, rejecting file: %s\n" #~ msgstr "Permission non accordée, rejet du fichier : %s\n" #~ msgid "Got Name\n" #~ msgstr "Nom\n" #~ msgid "Got Match\n" #~ msgstr "correspondance\n" #~ msgid "Saving key to file:%s:%p\n" #~ msgstr "Enregistrement de la clef dans le fichier : %s : %p\n" #~ msgid "Error opening key file %s for write\n" #~ msgstr "Erreur à l'ouverture du fichier %s en écriture\n" #~ msgid "Unable to change file mode, aborting\n" #~ msgstr "Impossible de changer les droits d'accès du fichier, abandon\n" #~ msgid "Changed mode, but still wonky. Aborting.\n" #~ msgstr "Droits d'accès changés, mais un problème subsiste. Abandon.\n" #~ msgid "Key file '%s' no longer read-only.\n" #~ msgstr "Le fichier des clefs '%s' n'est plus en lecture seule.\n" #~ msgid "Bad permissions on key file: %s\n" #~ msgstr "Mauvais droits d'accès au fichier de clef : %s\n" #~ msgid "I won't save to a world-accesible key file.\n" #~ msgstr "Refus d'enregistrer dans un fichier de clef accessible à tous.\n" #~ msgid "here\n" #~ msgstr "ici\n" #~ msgid "Error opening key file %s\n" #~ msgstr "Erreur à l'ouverture du fichier des clefs %s\n" #~ msgid "Error opening key file" #~ msgstr "Erreur à l'ouverture du fichier des clefs" #~ msgid "Wah! I moved a file and now it is gone\n" #~ msgstr "Waou ! J'ai déplacé un fichier et c'est parti\n" #~ msgid "Problem in key file. Increase key buffer size.\n" #~ msgstr "" #~ "Problème dans le fichier de clefs. Augmentez la taille du tampon de " #~ "clef.\n" #~ msgid "load_keys() %i: invalid protocol: %s\n" #~ msgstr "load_keys() %i : protocole incorrect : %s\n" #~ msgid "load_keys() %i: Added: %*s %s %s\n" #~ msgstr "load_keys() %i : Ajout de : %*s %s %s\n" #~ msgid "Bad key (%s) in file: %s\n" #~ msgstr "Mauvaise clef (%s) dans le fichier : %s\n" #~ msgid "Couldn't open file:%s\n" #~ msgstr "Impossible d'ouvrir le fichier :%s\n" #~ msgid "Error opening file" #~ msgstr "Erreur à l'ouverture du fichier" #~ msgid "No public key found for %s\n" #~ msgstr "Aucune clef publique trouvée pour %s\n" #~ msgid " Making one from private key and saving...\n" #~ msgstr "" #~ " Création d'une nouvelle à partir de la clef privée et sauvegarde...\n" #~ msgid "Built Nonce:%d:%s\n" #~ msgstr "ID de session : %d:%s\n" #~ msgid "Error parsing RSANSS nonce\n" #~ msgstr "Erreur d'identifiant de session RSANSS\n" #~ msgid "Checking for old prefs file (%s)...\n" #~ msgstr "Vérification de l'ancien fichier de préférences (%s)...\n" #~ msgid "Converting...\n" #~ msgstr "Conversion...\n" #~ msgid "Bad Preference Key %s\n" #~ msgstr "Mauvais mot clef de préférences '%s'\n" #~ msgid "Deleting old prefs\n" #~ msgstr "Effacement des anciennes préférences\n" #~ msgid "response" #~ msgstr "réponse" pidgin-encryption-3.1/po/zh_TW.gmo0000644000175100017510000001520011365216012014112 00000000000000Þ•H\aœ !;Tk5{*±Ü)ä2 A*N y‡Œ%¬*Òý %'Ck |‡šºÌ+á< 8J )ƒ ­ Ç á ï   2 < !M ]o 6Í   & + . I (i ’ • ˜ r¯ q" ” ¦ PÅ ) @ R a $s J˜ @ã ·$Üú 5JXe¾Ôì;Ng6n<¥â0ý%.T[.w0¦×Þåÿ$= P]p  ­AÅ<'D"l ¬¹ Øå ö2cJ9® èõ:2-m›ž¡u»f1˜'¬MÔ-"Pl<˜EÕ$¬@$í(ATgAH &?CE= 68"></!@ .#%4F:);2D5G(9+B7,'- $31 *0 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Permissions on key file changed for: %s Pidgin-Encryption will not save keys to a world- or group-accessible file.Permissions on key file changed for: %s Pidgin-Encryption will not use keys in a world- or group-accessible file.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: pidgin-encryption 2.32 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2007-11-02 15:04+0800 Last-Translator: Tim Hsu Language-Team: Chinese/Traditional MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ***** è­¦ 告 ***** %s 金錀接收於 '%s'請使用絕å°è·¯å¾‘接å—並儲存自動接å—與使用中ä¸ä¸€è‡´çš„金鑰(有安全風險)è‡ªå‹•æŽ¥å—æ–°çš„é‡‘éŒ€å¸³è™Ÿå¦‚æžœå°æ–¹æ”¯æ´åŠ å¯†æ¨¡çµ„ï¼Œå‰‡è¨Šæ¯è‡ªå‹•加密一但é€å‡ºåŠ å¯†è¨Šæ¯å¾Œï¼Œå¾€å¾Œçš„訊æ¯å°‡è‡ªå‹•åŠ å¯†ä¸æ­£ç¢ºçš„金鑰長度pl訊æ¯å…§å«ä¸æ­£ç¢ºçš„ç°½å (len %d, mod %d) Bill Tompkins, translation by Tim Hsuä½å…ƒå»£æ’­å‚³é€åŠ å¯†ç›¸å®¹æ€§ç™¼ç¾ä¸ä¸€è‡´çš„ %s é‡‘éŒ€ï¼Œå°æ–¹ç‚º '%s'!接收到ä¸ä¸€è‡´çš„ Pidgin-通訊加密 é‡‘éŒ€å–æ¶ˆè¨­å®šæ”¶åˆ°ä¸ä¸€è‡´çš„金錀!複製指紋至剪貼æ¿ç„¡æ³•產生金鑰. NSS 錯誤: %d 建立金錀檔案刪除金鑰關閉通訊加密是å¦è¦æŽ¥å—此把金錀?開啟通訊加密加密å”定使用 RSA 加密通訊錯誤: (2) è©¦åœ–æ”¹è®Šæª”æ¡ˆå­˜å–æ¨¡å¼: %s 無法儲存金錀錯誤:è©¦åœ–æ”¹è®Šæª”æ¡ˆå­˜å–æ¨¡å¼: %s 無法儲存金錀解密時發生錯誤 - è¦æ±‚é‡é€...è™•ç† RSANSS key 時發生錯誤 產生金錀時發生錯誤.產生金鑰正在產生 %s çš„ RSA 金錀金鑰指紋金錀指紋:%*s金鑰長度:金鑰檔案ä½ç½®é‡‘é‘°é•·åº¦å°æ–¼ 512 ä½å…ƒæ˜¯éžå¸¸ä¸å®‰å…¨çš„金鑰長度大於 4096 ä½å…ƒå°‡ä½¿å¾—è¨Šæ¯ å…§å®¹éŽé•·ï¼Œ æå°Žè‡´å‚³é€è¨Šæ¯æ™‚發生 å•題上一則é€å‡ºçš„訊æ¯å¯èƒ½æ²’被接收到 - é‡ç½®ä¸­é‡‘錀管ç†ç”¢ç”Ÿæ–°çš„金錀中...å稱拒絕找ä¸åˆ°é‡‘éŒ€æª”æ¡ˆè«‹é¸æ“‡ä¸€æŠŠåŽŸå…ˆçš„é‡‘é‘°ä¾†é‡æ–°ç”¢ç”Ÿæ–°çš„金鑰!沒有金錀å¯ä»¥é‡é€è¨Šæ¯. 訊æ¯éºå¤±.OKOkéºå¤±äº†é€å‡ºçš„訊æ¯.金錀檔案權é™ä¸æ­£ç¢º: %s"Pidgin-Encryption 䏿œƒå°‡é‡‘錀檔案存æˆä»»ä½•人或群組å¯ä»¥å­˜å–的權é™.金錀檔案權é™ä¸æ­£ç¢º: %s"Pidgin-Encryption 䏿œƒä½¿ç”¨ä»»ä½•人或群組å¯ä»¥å­˜å–的金錀.Pidgin-通訊加密已接收到 Pidgin-通訊加密 金錀RSA 加密金錀長度為 4096 ä½å…ƒï¼Œ 使用 Mozilla NSS 密碼函å¼åº«. æ”¶åˆ°çš„è¨Šæ¯æ˜¯ç”±éŒ¯èª¤çš„金錀所加密最近收到的好å‹é‡‘éŒ€é‡æ–°ç”¢ç”Ÿé‡‘é‘°å‘å°æ–¹è«‹æ±‚金錀...æ¯ä¸€è¡Œå°è©±ä¸­é¡¯ç¤ºå°åœ–示,代表已加密該訊æ¯ä¸Šä¸€å‰‡å·²æ”¶åˆ°çš„è¨Šæ¯æ˜¯ä½¿ç”¨ Pidgin-通訊加密 所加密的此帳號金錀太長. 無法é€å‡º.å¯èƒ½å‡ºç¾ 中間人(man-in-the-middle)攻擊, 或 者有人在å‡è£æˆä½ çš„好å‹. ä½ æ‡‰è©²å’Œä½ çš„å¥½å‹æª¢æŸ¥ä¸€ä¸‹, ç¢ºèªæ˜¯å¦ä¹‹å‰ä»–們有產生新的金錀.å¯èƒ½æœƒèŠ±é»žæ™‚é–“ï¼Œè«‹ç¨ç­‰...åªåœ¨æ­¤é€£ç·šç”Ÿæ•ˆå·²ä¿¡ä»»çš„好å‹é‡‘錀關閉自動加密啟動自動加密無法建立金錀檔案pidgin-encryption-3.1/po/bg.gmo0000644000175100017510000002166611365216011013463 00000000000000Þ•H\aœ !;Tk5{*±Ü)ä2 A*N y‡Œ%¬*Òý %'Ck |‡šºÌ+á< 8J )ƒ ­ Ç á ï   2 < !M ]o 6Í   & + . I (i ’ • ˜ r¯ q" ” ¦ PÅ ) @ R a $s J˜ @ã ·$Üú 5J^e"Ä+ç-A^^Y½ c$tˆ#ýE!@g ¨Cµ?ùF9 €‹-¤CÒL1c •'¢:Ê%+V=s”oax?Ú?!ZA|¾'Ñù> EH­Ž‡<Ä6â 8%?^…ž$)=.ÏlÑ<1 |RQÏ2!(T7}Rµ~ p‡ qø Bj"­"5Ê">#<?#9|#AH &?CE= 68"></!@ .#%4F:);2D5G(9+B7,'- $31 *0 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CONFLICTING Pidgin-Encryption Key ReceivedCancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.Permissions on key file changed for: %s Pidgin-Encryption will not save keys to a world- or group-accessible file.Permissions on key file changed for: %s Pidgin-Encryption will not use keys in a world- or group-accessible file.Pidgin-EncryptionPidgin-Encryption Key ReceivedRSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThe last message received was encrypted with the Pidgin-Encryption pluginThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Pidgin-encryption Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: 2007-09-22 20:10+0200 Last-Translator: Лъчезар Добрев Language-Team: Lachezar Dobrev MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit ******* Ð’ÐИМÐÐИЕ ******* Ключ '%s' бе получен за '%s'ИзиÑква Ñе абÑолютен пътПриеми и запишиПриемай автоматично конфликтни ключове (РИСКОВÐÐО)Ðвтоматично приемай ключа ако вÑе още нÑма такъвСметкаÐвтоматично криптирай ако Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð¼Ð° приÑтавкатаÐвтоматично криптирай Ñлед получаване на криптирано ÑъобщениеЛош размер на ключаСгрешен Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð½Ð° Ñъобщението (l %d, m %d) Bill Tompkins, преведен от Лъчезар ДобревБитовеИзлъчвай ÑпоÑобноÑтта за криптиранеПолучи Ñе конфликтен ключ '%s' за '%s'!Получи Ñе КОÐФЛИКТЕРключ за Pidgin-EncryptionОтказКонфигурациÑПолучен конфликтен ключ!Копирай отпечатъка в буфера за обменÐеуÑпешно генериране на ключ. NSS Грешка: %d Създай файловете Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²ÐµÐ˜Ð·Ñ‚Ñ€Ð¸Ð¹Ð˜Ð·ÐºÐ»ÑŽÑ‡Ð¸ криптиранетоИÑкате ли да приемете този ключ?Включи криптиранетоПротокол:Криптира разговорите използвайки RSA алгоритъм.Грешка (2) при промÑна на правата на файл: '%s' Ключа не бе запиÑан.Грешка при промÑна на правата на файл: '%s' Ключа не бе запиÑан.Грешка при декриптиране - заÑвено повторно изпращанеГрешка при прочитане на RSA NSS ключа Грешка при опит да Ñе Ñъздаде ключ.Генерирай ключовеСъздаване на RSA двойка ключове за '%s'ОтпечатъкОтпечатък на ключа: %*sДължина:Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° файловете Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²ÐµÐšÐ»ÑŽÑ‡Ð¾Ð²Ðµ под 512 бита Ñа МÐОГО неÑигурниКлючове над 4096 бита ще предизвикат прекомерно големи ÑъобщениÑ, които ще влошат комуникациÑтаПоÑледното изпратено Ñъобщение не бе получено правилно - реконфигуриранеЛокални ключовеСъздаване на двойка ключове...ИмеÐеÐÑма ключове в избраното мÑÑтоÐе е избран ключ за пре-генериране!ÐÑма ключ за повторно изпращане на Ñъобщението. Съобщението бе загубено.ОКОКИзходÑщото Ñъобщение бе загубеноПравата на файла '%s' Ñа Ñменени. Pidgin-Encryption нÑма да запише ключ във файл, който може да Ñе чете от вÑички или групата.Правата на файла '%s' Ñа Ñменени. Pidgin-Encryption нÑма да използва ключ от файл, който може да Ñе чете от вÑички или групата.Pidgin-EncryptionПолучи Ñе ключ за Pidgin-EncryptionRSA криптиране Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ðµ до 4096 бита, използвайки Mozilla NSS библиотеката. Получено Ñъобщение криптирано Ñ Ð³Ñ€ÐµÑˆÐµÐ½ ключКлючове използвани наÑкороГенерирай ключ нановоЗаÑвка за получаване на ключ...Показвай иконка-катинар за вÑеки отделен редПоÑледното Ñъобщение бе получено криптирано Ñ Ð¿Ñ€Ð¸Ñтавката Pidgin-EncryptionКлючът за тази Ñметка е прекалено дълъг. ÐеуÑпешно изпращане.Това може да е атака от вида човек-по-Ñредата, или може да е нÑкой който Ñе предÑÑ‚Ð°Ð²Ñ Ð·Ð° Ð²Ð°ÑˆÐ¸Ñ Ð¿Ñ€Ð¸Ñтел. Ðай-добре Ñе Ñвържете Ñ Ð²Ð°ÑˆÐ¸Ñ Ð¿Ñ€Ð¸Ñтел и Ñе уверете, че ключа наиÑтина е променен преди да го одобрите.Това може да отнеме извеÑтно време...Само за ÑеÑиÑтаДоверени ключове на приÑтелиИзключи автоматичното криптиранеВключи автоматичното криптиранеÐеуÑпешно Ñъздаване на ключовеpidgin-encryption-3.1/po/ta.gmo0000644000175100017510000002465011365216012013474 00000000000000Þ•B,Y< ¡»Ôë5û*1\)d2Ž Á*Î ù %,RY`z'˜À ÑÜï!+6<b8Ÿ)Ø  6 D c s ‡ ‘ !¢ ]Ä 6" Y d { € ƒ ž (¾ ç ê í P )U  ‘   $² @× · Ð î   ) > ^Y 0¸Vé,@1mŸ«Ë­ÞŒ/*lZrÇ:{VqÒDd^€ß|_RÜ(/\X9µ\ï@L­Ô;Йá}{Dù:>wy ñ-þ,CG–‹ÿ"Ø"(ûW$|ŒGœäžu ! !g(!!¾Ÿ"D^#P£#Aô#6$ÁÆ$ÿˆ%4ˆ'A½'Mÿ'xM(xÆ(h?)+)<@ 3: 0 -9/6#>2'418$? *"=,A&! ( .B5;%7 ******* WARNING ******* %s key received for '%s'Absolute path requiredAccept and SaveAccept conflicting keys automatically (security risk)Accept key automatically if no key on fileAccountAutomatically encrypt if buddy has pluginAutomatically encrypt if sent an encrypted messageBad key sizeBad signature on message (len %d, mod %d) Bill TompkinsBitsBroadcast encryption capabilityCONFLICTING %s key received for '%s'!CancelConfigConflicting Key Received!Copy Fingerprint to ClipboardCould not generate key. NSS Error: %d Create key filesDelete KeyDisable EncryptionDo you want to accept this key?Enable EncryptionEncryption protocol:Encrypts conversations with RSA encryption.Error (2) changing access mode for file: %s Cannot save key.Error changing access mode for file: %s Cannot save key.Error in decryption- asking for resend...Error parsing RSANSS key Error trying to make key.Generate KeysGenerating RSA Key Pair for %sKey FingerprintKey Fingerprint:%*sKey size:Keyfile locationKeys < 512 bits are VERY insecureKeys > 4096 bits will cause extreme message bloat, causing problems with message transmissionLast outgoing message not received properly- resettingLocal KeysMaking new key pair...NameNoNo key files found at pathNo key selected to re-generate!No key to resend message. Message lost.OKOkOutgoing message lost.RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto library. Received message encrypted with wrong keyRecent Buddy KeysRegenerate KeyRequesting key...Show lock icon for each line of chatThis account key is too large for this protocol. Unable to send.This could be a man-in-the-middle attack, or could be someone impersonating your buddy. You should check with your buddy to see if they have generated this new key before trusting it.This may take a little bit...This session onlyTrusted Buddy KeysTurn Auto-Encrypt OffTurn Auto-Encrypt OnUnable to create key filesProject-Id-Version: Gaim-Encryption 3.0beta4 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-04-26 00:52-0400 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: drtvasudevan agnihot3@gmail.com, 2006 Language-Team: tamil MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ******* எசà¯à®šà®°à®¿à®•à¯à®•ை ******* %s விசை '%s' கà¯à®•ாக கிடைகà¯à®•ப௠பெறà¯à®±à®¤à¯à®®à¯à®´à¯à®ªà¯ பாதை தேவைà®à®±à¯à®±à¯ சேமிகà¯à®•வà¯à®®à¯à®®à¯à®°à®£à¯à®ªà®¾à®Ÿà®¾à®© விசைகளை தானியஙà¯à®•ியாக à®à®±à¯à®±à¯à®•௠கொளà¯à®•கோபà¯à®ªà®¿à®²à¯ விசை இலà¯à®²à®¾à®µà®¿à®Ÿà¯à®Ÿà®¾à®²à¯ விசையை தானியஙà¯à®•ியாக à®à®±à¯à®±à¯à®•௠கொளà¯à®•கணகà¯à®•à¯à®¨à®£à¯à®ªà®°à®¿à®Ÿà®®à¯ சொரà¯à®•ி இரà¯à®ªà¯à®ªà®¿à®©à¯ தானியஙà¯à®•ியாக கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠செயà¯à®•கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ செயà¯à®¤à®¿à®•ளை தானியஙà¯à®•ியாக கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠செயà¯à®•பிழையான விசை அளவà¯à®šà¯†à®¯à¯à®¤à®¿à®¯à®¿à®²à¯ மோசமான கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ எண௠(len %d, mod %d) பில௠டாமà¯à®•ினà¯à®¸à¯, மொழியாகà¯à®•à®®à¯: தி.வாசà¯à®¤à¯‡à®µà®©à¯à®ªà®¿à®Ÿà¯à®Ÿà¯à®•ளà¯à®•à¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠செயà¯à®¯à¯à®®à¯ திறனை அறிவிகà¯à®•வà¯à®®à¯'%sகà¯à®•௠மà¯à®°à®£à¯à®ªà®¾à®Ÿà®¾à®© விசை %s கிடைகà¯à®•ப௠பெறà¯à®±à®¤à¯!ரதà¯à®¤à¯ செயà¯à®•வடிவமைகà¯à®•à®®à¯à®°à®£à¯à®ªà®¾à®Ÿà®¾à®© விசை கிடைகà¯à®•ப௠பெறà¯à®±à®¤à¯!ஒடà¯à®Ÿà¯à®ªà¯ பலகைகà¯à®•௠விரலà¯à®°à¯‡à®•ையை பிரதி எடà¯à®•à¯à®•வà¯à®®à¯à®µà®¿à®šà¯ˆà®¯à¯ˆ உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ. எனà¯à®Žà®©à¯à®Žà®¸à¯ பிழை: %d விசைகà¯à®•ோபà¯à®ªà¯à®•ளை உரà¯à®µà®¾à®•à¯à®•வà¯à®®à¯à®µà®¿à®šà¯ˆà®¯à¯ˆ நீகà¯à®•à¯à®•கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•தà¯à®¤à¯ˆ செயல௠விலகà¯à®•à¯à®•இநà¯à®¤ விசையை à®à®±à¯à®•லாமா?கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•தà¯à®¤à¯ˆ செயல௠படà¯à®¤à¯à®¤à¯à®•கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®• நெறிமà¯à®±à¯ˆà®†à®°à¯à®Žà®¸à¯à® கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®• à®®à¯à®±à¯ˆà®¯à®¿à®²à¯ உரையாடலà¯à®•ளை கà¯à®±à®¿à®¯à¯€à®Ÿà¯ செயà¯à®•ிறதà¯à®‡à®¨à¯à®¤ கோபà¯à®ªà¯à®•à¯à®•௠அணà¯à®•ல௠பாணியை மாறà¯à®±à¯à®µà®¤à®¿à®²à¯ பிழை (2): %s விசையை சேமிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.இநà¯à®¤ கோபà¯à®ªà¯à®•à¯à®•௠அணà¯à®•ல௠பாணியை மாறà¯à®±à¯à®µà®¤à®¿à®²à¯ பிழை: %s விசையை சேமிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.கà¯à®±à®¿à®®à¯à®±à¯ˆ மீளாகà¯à®•தà¯à®¤à®¿à®²à¯ பிழை- மீணà¯à®Ÿà¯à®®à¯ அனà¯à®ªà¯à®ª கோரà¯à®•ிறதà¯...ஆரà¯à®Žà®¸à¯à®à®Žà®©à¯à®Žà®©à¯à®Žà®¸à¯ விசையை கூற௠பகà¯à®ªà¯à®ªà®¤à®¿à®²à¯ பிழை விசை உரà¯à®µà®¾à®•à¯à®•à¯à®µà®¤à®¿à®²à¯ பிழைவிசைகளை உரà¯à®µà®¾à®•à¯à®•வà¯à®®à¯%s கà¯à®•௠ஆரà¯à®Žà®¸à¯à® விசை ஜோடி உரà¯à®µà®¾à®•à¯à®•ப௠படà¯à®•ிறதà¯à®µà®¿à®šà¯ˆà®µà®¿à®šà¯ˆ விரல௠ரேகை:%*sவிசை அளவà¯:விசைகà¯à®•ோபà¯à®ªà¯ இரà¯à®ªà¯à®ªà®¿à®Ÿà®®à¯512 பிடà¯à®Ÿà¯à®•ளà¯à®•à¯à®•௠கà¯à®±à¯ˆà®µà®¾à®© விசைகள௠மிக மிக பாதà¯à®•ாபà¯à®ªà®±à¯à®±à®µà¯ˆ 4096 பிடà¯à®Ÿà¯à®•ளà¯à®•à¯à®•௠அதிகமான விசைகள௠செயà¯à®¤à®¿à®•ளை மிகப௠பெரிதாகà¯à®•ி அவறà¯à®±à¯ˆ அனà¯à®ªà¯à®ªà¯à®µà®¤à¯ˆ சிகà¯à®•லாகà¯à®•à¯à®®à¯à®•டைசியாக வெளிச௠செனà¯à®± செயà¯à®¤à®¿ கிடைகà¯à®•ப௠பெறவிலà¯à®²à¯ˆ- மீடà¯à®Ÿà¯à®®à¯ அமைகà¯à®•ப௠படà¯à®•ினà¯à®±à®¤à¯à®‰à®³à¯à®³à®®à¯ˆ விசைகளà¯à®ªà¯à®¤à®¿à®¯ விசை ஜோடியை உரà¯à®µà®¾à®•à¯à®•ிறதà¯...பெயரà¯à®‡à®²à¯à®²à¯ˆà®ªà®¾à®¤à¯ˆà®¯à®¿à®²à¯ விசையை காணவிலà¯à®²à¯ˆà®®à¯€à®£à¯à®Ÿà¯à®®à¯ உரà¯à®µà®¾à®•à¯à®• விசை à®à®¤à¯à®®à¯ தேரà¯à®µà¯ செயà¯à®¯à®ªà¯ படவிலà¯à®²à¯ˆà®šà¯†à®¯à¯à®¤à®¿à®¯à¯ˆ மீணà¯à®Ÿà¯à®®à¯ அனà¯à®ªà¯à®ª விசை இலà¯à®²à¯ˆ. செயà¯à®¤à®¿ இழகà¯à®•ப௠படà¯à®Ÿà®¤à¯à®šà®°à®¿à®šà®°à®¿à®µà¯†à®³à®¿à®šà¯ செலà¯à®²à¯à®®à¯ செயà¯à®¤à®¿ இழகà¯à®•ப௠படà¯à®Ÿà®¤à¯4096 பிடà¯à®Ÿà¯à®•ள௠வரை விசைகளை கொணà¯à®Ÿà¯ மோசிலà¯à®²à®¾ எனà¯à®Žà®©à¯à®Žà®¸à¯ கிரிபà¯à®Ÿà¯‹à®µà¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿ ஆரà¯à®Žà®¸à¯à® கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠கிடைகà¯à®•ப௠பெறà¯à®± செயà¯à®¤à®¿ தவறான விசையால௠கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•ம௠செயà¯à®¯à®ªà¯ படà¯à®Ÿà®¤à¯à®šà®®à¯€à®ªà®¤à¯à®¤à®¿à®¯ நணà¯à®ªà®°à¯ விசைகளà¯à®µà®¿à®šà¯ˆà®¯à¯ˆ மீணà¯à®Ÿà¯à®®à¯ உரà¯à®µà®¾à®•à¯à®•வà¯à®®à¯à®µà®¿à®šà¯ˆ கேடà¯à®Ÿà¯à®•௠கோரிகà¯à®•ை...ஒவà¯à®µà¯Šà®°à¯ அரடà¯à®Ÿà¯ˆ வரிகà¯à®•à¯à®®à¯ பூடà¯à®Ÿà¯ சினà¯à®©à®¤à¯à®¤à¯ˆ காடà¯à®Ÿà®µà¯à®®à¯à®‡à®¨à¯à®¤ கணகà¯à®•à¯à®•à¯à®•ான விசை இநà¯à®¤ நெறிமà¯à®±à¯ˆà®•à¯à®•௠மிக நீளமானதà¯. அனà¯à®ªà¯à®ª இயலவிலà¯à®²à¯ˆ.இத௠கà¯à®±à¯à®•à¯à®•ே பà¯à®•à¯à®¨à¯à®¤ ஒர௠நபரின௠தாகà¯à®•à¯à®¤à®²à®¾à®• இரà¯à®•à¯à®•லாமà¯, அலà¯à®²à®¤à¯ யாரோ உஙà¯à®•ள௠நணà¯à®ªà®°à¯ போல நடிகà¯à®•லாமà¯. உஙà¯à®•ள௠நணà¯à®ªà®°à¯ உணà¯à®®à¯ˆà®¯à®¿à®²à¯ இநà¯à®¤ பà¯à®¤à®¿à®¯ விசையை உரà¯à®µà®¾à®•à¯à®•ினாரா என உறà¯à®¤à®¿ செயà¯à®¤à¯ கொணà¯à®Ÿà¯ இதை நமà¯à®ªà®µà¯à®®à¯.சறà¯à®±à¯‡ பொறà¯à®•à¯à®•வà¯à®®à¯...இநà¯à®¤ அமரà¯à®µà¯à®•à¯à®•௠மடà¯à®Ÿà¯à®®à¯à®¨à®®à¯à®ªà®¿à®•à¯à®•ையான நணà¯à®ªà®°à¯ விசைகளà¯à®¤à®¾à®©à®¿à®¯à®™à¯à®•ி கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•தà¯à®¤à¯ˆ செயல௠விலகà¯à®•à¯à®•தானியஙà¯à®•ி கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•தà¯à®¤à¯ˆ செயல௠படà¯à®¤à¯à®¤à¯à®•விசைகà¯à®•ோபà¯à®ªà¯à®•ளை உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆpidgin-encryption-3.1/po/zh_TW.po0000644000175100017510000002707611365216011013763 00000000000000# LANGUAGE translation of pidgin-encryption for Traditional Chinese. # Copyright (C) 2004 THE pidgin-encryption'S COPYRIGHT HOLDER # This file is distributed under the same license as the pidgin-encryption package. # Tim Hsu , 2004. # # msgid "" msgstr "" "Project-Id-Version: pidgin-encryption 2.32\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-26 00:52-0400\n" "PO-Revision-Date: 2007-11-02 15:04+0800\n" "Last-Translator: Tim Hsu \n" "Language-Team: Chinese/Traditional \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: config_ui.c:89 msgid "Bad key size" msgstr "䏿­£ç¢ºçš„金鑰長度pl" #: config_ui.c:95 msgid "Keys < 512 bits are VERY insecure" msgstr "é‡‘é‘°é•·åº¦å°æ–¼ 512 ä½å…ƒæ˜¯éžå¸¸ä¸å®‰å…¨çš„" #: config_ui.c:101 msgid "" "Keys > 4096 bits will cause extreme\n" "message bloat, causing problems with\n" "message transmission" msgstr "" "金鑰長度大於 4096 ä½å…ƒå°‡ä½¿å¾—訊æ¯\n" "內容éŽé•·ï¼Œ æå°Žè‡´å‚³é€è¨Šæ¯æ™‚發生\n" "å•題" #: config_ui.c:162 msgid "Generate Keys" msgstr "產生金鑰" #: config_ui.c:172 msgid "No key selected to re-generate!" msgstr "è«‹é¸æ“‡ä¸€æŠŠåŽŸå…ˆçš„é‡‘é‘°ä¾†é‡æ–°ç”¢ç”Ÿæ–°çš„金鑰!" #: config_ui.c:180 msgid "OK" msgstr "OK" #. First column #: config_ui.c:196 msgid "Encryption protocol:" msgstr "加密å”定" #: config_ui.c:203 msgid "Key size:" msgstr "金鑰長度:" #: config_ui.c:245 msgid "Cancel" msgstr "å–æ¶ˆ" #: config_ui.c:252 state_ui.c:541 msgid "Ok" msgstr "Ok" #: config_ui.c:284 config_ui.c:328 config_ui.c:549 config_ui.c:584 #: config_ui.c:612 msgid "Delete Key" msgstr "刪除金鑰" #: config_ui.c:396 msgid "Account" msgstr "帳號" #: config_ui.c:398 msgid "Name" msgstr "å稱" #: config_ui.c:402 msgid "Bits" msgstr "ä½å…ƒ" #: config_ui.c:405 msgid "Key Fingerprint" msgstr "金鑰指紋" #: config_ui.c:498 msgid "Config" msgstr "設定" #: config_ui.c:500 msgid "Accept key automatically if no key on file" msgstr "è‡ªå‹•æŽ¥å—æ–°çš„金錀" #: config_ui.c:503 msgid "Accept conflicting keys automatically (security risk)" msgstr "自動接å—與使用中ä¸ä¸€è‡´çš„金鑰(有安全風險)" #: config_ui.c:506 msgid "Automatically encrypt if sent an encrypted message" msgstr "一但é€å‡ºåŠ å¯†è¨Šæ¯å¾Œï¼Œå¾€å¾Œçš„訊æ¯å°‡è‡ªå‹•加密" #: config_ui.c:509 msgid "Broadcast encryption capability" msgstr "廣播傳é€åŠ å¯†ç›¸å®¹æ€§" #: config_ui.c:512 msgid "Automatically encrypt if buddy has plugin" msgstr "å¦‚æžœå°æ–¹æ”¯æ´åŠ å¯†æ¨¡çµ„ï¼Œå‰‡è¨Šæ¯è‡ªå‹•加密" #: config_ui.c:515 msgid "Show lock icon for each line of chat" msgstr "æ¯ä¸€è¡Œå°è©±ä¸­é¡¯ç¤ºå°åœ–示,代表已加密該訊æ¯" #: config_ui.c:518 msgid "Keyfile location" msgstr "金鑰檔案ä½ç½®" #: config_ui.c:525 msgid "Create key files" msgstr "建立金錀檔案" #: config_ui.c:556 msgid "Regenerate Key" msgstr "釿–°ç”¢ç”Ÿé‡‘é‘°" #: config_ui.c:563 config_ui.c:591 config_ui.c:619 msgid "Copy Fingerprint to Clipboard" msgstr "複製指紋至剪貼æ¿" #: config_ui.c:571 msgid "Local Keys" msgstr "金錀管ç†" #: config_ui.c:599 msgid "Trusted Buddy Keys" msgstr "已信任的好å‹é‡‘錀" #: config_ui.c:627 msgid "Recent Buddy Keys" msgstr "最近收到的好å‹é‡‘錀" #: config_ui.c:658 msgid "No key files found at path" msgstr "找ä¸åˆ°é‡‘錀檔案" #: config_ui.c:667 msgid "Absolute path required" msgstr "請使用絕å°è·¯å¾‘" #: config_ui.c:678 msgid "Unable to create key files" msgstr "無法建立金錀檔案" #: cryptutil.c:132 #, fuzzy, c-format msgid "Invalid Base64 data, length %u\n" msgstr "無效的 Base64 編碼資料, 長度 %d\n" #: encrypt.c:213 msgid "This account key is too large for this protocol. Unable to send." msgstr "此帳號金錀太長. 無法é€å‡º." #: encrypt.c:672 msgid "Last outgoing message not received properly- resetting" msgstr "上一則é€å‡ºçš„訊æ¯å¯èƒ½æ²’被接收到 - é‡ç½®ä¸­" #: encrypt.c:757 msgid "Received message encrypted with wrong key" msgstr "æ”¶åˆ°çš„è¨Šæ¯æ˜¯ç”±éŒ¯èª¤çš„金錀所加密" #: encrypt.c:794 msgid "Error in decryption- asking for resend..." msgstr "解密時發生錯誤 - è¦æ±‚é‡é€..." #: encrypt.c:941 msgid "Requesting key..." msgstr "å‘å°æ–¹è«‹æ±‚金錀..." #: encrypt.c:1075 msgid "No key to resend message. Message lost." msgstr "沒有金錀å¯ä»¥é‡é€è¨Šæ¯. 訊æ¯éºå¤±." #: encrypt.c:1128 msgid "Outgoing message lost." msgstr "éºå¤±äº†é€å‡ºçš„訊æ¯." #: encrypt.c:1429 msgid "Pidgin-Encryption" msgstr "Pidgin-通訊加密" #: encrypt.c:1430 msgid "Encrypts conversations with RSA encryption." msgstr "使用 RSA 加密通訊" #: encrypt.c:1431 msgid "" "RSA encryption with keys up to 4096 bits, using the Mozilla NSS crypto " "library.\n" msgstr "RSA 加密金錀長度為 4096 ä½å…ƒï¼Œ 使用 Mozilla NSS 密碼函å¼åº«.\n" #. Translators: Feel free to add your name to the author field, with text like #. "Bill Tompkins, translation by Phil McGee" #: encrypt.c:1435 msgid "Bill Tompkins" msgstr "Bill Tompkins, translation by Tim Hsu" #: pe_blist.c:67 msgid "Turn Auto-Encrypt Off" msgstr "關閉自動加密" #: pe_blist.c:70 msgid "Turn Auto-Encrypt On" msgstr "啟動自動加密" #: keys.c:98 msgid "Making new key pair..." msgstr "產生新的金錀中..." #: keys.c:115 msgid "Error trying to make key." msgstr "產生金錀時發生錯誤." #: keys.c:280 msgid "Conflicting Key Received!" msgstr "收到ä¸ä¸€è‡´çš„金錀!" #: keys.c:460 #, c-format msgid "" "Error changing access mode for file: %s\n" "Cannot save key." msgstr "" "錯誤:è©¦åœ–æ”¹è®Šæª”æ¡ˆå­˜å–æ¨¡å¼: %s\n" "無法儲存金錀" #: keys.c:469 #, c-format msgid "" "Error (2) changing access mode for file: %s\n" "Cannot save key." msgstr "" "錯誤: (2) è©¦åœ–æ”¹è®Šæª”æ¡ˆå­˜å–æ¨¡å¼: %s\n" "無法儲存金錀" #: keys.c:484 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not save keys to a world- or group-accessible file." msgstr "" "金錀檔案權é™ä¸æ­£ç¢º: %s\"Pidgin-Encryption 䏿œƒå°‡é‡‘錀檔案存æˆä»»ä½•人或群組å¯ä»¥" "å­˜å–的權é™." #: keys.c:746 #, c-format msgid "" "Permissions on key file changed for: %s\n" "Pidgin-Encryption will not use keys in a world- or group-accessible file." msgstr "" "金錀檔案權é™ä¸æ­£ç¢º: %s\"Pidgin-Encryption 䏿œƒä½¿ç”¨ä»»ä½•人或群組å¯ä»¥å­˜å–的金錀." #: keys_ui.c:127 msgid "Pidgin-Encryption Key Received" msgstr "已接收到 Pidgin-通訊加密 金錀" #: keys_ui.c:137 #, c-format msgid "%s key received for '%s'" msgstr "%s 金錀接收於 '%s'" #: keys_ui.c:144 keys_ui.c:246 #, c-format msgid "Key Fingerprint:%*s" msgstr "金錀指紋:%*s" #: keys_ui.c:151 keys_ui.c:266 msgid "Do you want to accept this key?" msgstr "是å¦è¦æŽ¥å—此把金錀?" #: keys_ui.c:161 keys_ui.c:276 msgid "No" msgstr "拒絕" #: keys_ui.c:169 keys_ui.c:284 msgid "Accept and Save" msgstr "接å—並儲存" #: keys_ui.c:177 keys_ui.c:292 msgid "This session only" msgstr "åªåœ¨æ­¤é€£ç·šç”Ÿæ•ˆ" #: keys_ui.c:224 msgid "CONFLICTING Pidgin-Encryption Key Received" msgstr "接收到ä¸ä¸€è‡´çš„ Pidgin-通訊加密 金錀" #: keys_ui.c:234 keys_ui.c:253 msgid " ******* WARNING ******* " msgstr " ***** è­¦ 告 ***** " #: keys_ui.c:239 #, c-format msgid "CONFLICTING %s key received for '%s'!" msgstr "發ç¾ä¸ä¸€è‡´çš„ %s é‡‘éŒ€ï¼Œå°æ–¹ç‚º '%s'!" #: keys_ui.c:258 msgid "" "This could be a man-in-the-middle attack, or\n" "could be someone impersonating your buddy.\n" "You should check with your buddy to see if they have\n" "generated this new key before trusting it." msgstr "" "å¯èƒ½å‡ºç¾ 中間人(man-in-the-middle)攻擊, 或\n" "者有人在å‡è£æˆä½ çš„好å‹.\n" "ä½ æ‡‰è©²å’Œä½ çš„å¥½å‹æª¢æŸ¥ä¸€ä¸‹, ç¢ºèªæ˜¯å¦ä¹‹å‰ä»–們有產生新的金錀." #: rsa_nss.c:247 #, c-format msgid "Generating RSA Key Pair for %s" msgstr "正在產生 %s çš„ RSA 金錀" #: rsa_nss.c:250 msgid "This may take a little bit..." msgstr "å¯èƒ½æœƒèŠ±é»žæ™‚é–“ï¼Œè«‹ç¨ç­‰..." #: rsa_nss.c:285 #, c-format msgid "Could not generate key. NSS Error: %d\n" msgstr "無法產生金鑰. NSS 錯誤: %d\n" #: rsa_nss.c:500 rsa_nss.c:510 rsa_nss.c:522 rsa_nss.c:532 rsa_nss.c:562 #: rsa_nss.c:575 rsa_nss.c:596 rsa_nss.c:620 msgid "Error parsing RSANSS key\n" msgstr "è™•ç† RSANSS key 時發生錯誤\n" #: rsa_nss.c:873 #, c-format msgid "Bad signature on message (len %d, mod %d)\n" msgstr "訊æ¯å…§å«ä¸æ­£ç¢ºçš„ç°½å (len %d, mod %d)\n" #: state_ui.c:106 state_ui.c:126 msgid "Enable Encryption" msgstr "開啟通訊加密" #: state_ui.c:146 msgid "Disable Encryption" msgstr "關閉通訊加密" #: state_ui.c:274 msgid "" "The last message received was encrypted with the Pidgin-Encryption plugin" msgstr "ä¸Šä¸€å‰‡å·²æ”¶åˆ°çš„è¨Šæ¯æ˜¯ä½¿ç”¨ Pidgin-通訊加密 所加密的" #~ msgid "Encrypt Outgoing Messages" #~ msgstr "加密é€å‡ºçš„訊æ¯" #~ msgid "Tx: capable" #~ msgstr "傳é€: capable" #~ msgid "" #~ "Your buddy appears to have the Pidgin-Encryption plugin. Still, your next " #~ "outgoing message will NOT be encrypted by the Pidgin-Encryption plugin" #~ msgstr "" #~ "æ‚¨çš„å¥½å‹æœ‰æ”¯æ´ Pidgin-Encryption. ä¸éŽæ‚¨çš„下則訊æ¯ä»æ²’有用 Pidgin-" #~ "Encryption 加密" #~ msgid "Tx: secure" #~ msgstr "傳é€: 密文" #~ msgid "" #~ "Your next outgoing message will be encrypted by the Pidgin-Encryption " #~ "plugin" #~ msgstr "下一則é€å‡ºçš„訊æ¯å°‡æœƒè¢« Pidgin-Encryption 加密" #~ msgid "Tx: plain" #~ msgstr "傳é€: 明文" #~ msgid "" #~ "Your next outgoing message will NOT be encrypted by the Pidgin-" #~ "Encryption plugin" #~ msgstr "下一則é€å‡ºçš„訊æ¯å°‡ä¸æœƒè¢« Pidgin-Encryption 加密" #~ msgid "Rx: secure" #~ msgstr "接收: 密文" #~ msgid "Rx: plain" #~ msgstr "接收: 明文" #~ msgid "" #~ "The last message received was NOT encrypted with the Pidgin-Encryption " #~ "plugin" #~ msgstr "上一則已收到的訊æ¯ä¸¦éžä½¿ç”¨ Pidgin-Encryption 加密的" #~ msgid "" #~ "Compiled with '%s', running with '%s'. Pidgin-Encryption will probably " #~ "not run right.\n" #~ msgstr "" #~ "使用 '%s' 編譯, 在 '%s' 下執行. Pidgin-Encryption ä¸ä¸€å®šå¯æ­£ç¢ºåŸ·è¡Œ.\n" #~ msgid "" #~ "Pidgin-Encryption plugin was compiled with a different version of " #~ "Pidgin. You may experience problems." #~ msgstr "" #~ "Pidgin-Encryption 模組是由ä¸ç›¸åŒçš„ Pidgin 所編譯的.也許會有一些å•題發生." #~ msgid "Currently cached keys" #~ msgstr "ç›®å‰ä½¿ç”¨ä¸­çš„金鑰" #~ msgid "Key Type" #~ msgstr "金鑰型態" #~ msgid "Protocol" #~ msgstr "å”定" #~ msgid "private" #~ msgstr "ç§é‘°" #~ msgid "public" #~ msgstr "公鑰" #~ msgid "Error parsing RSANSS nonce/key\n" #~ msgstr "è™•ç† RSANSS nonce/key 時發生錯誤\n" #~ msgid "Error decoding Base64 RSANSS Public key\n" #~ msgstr "è™•ç† RSANSS Public key çš„ Base64 部份時發生錯誤\n" #~ msgid "Error Base64 decoding RSANSS Public key\n" #~ msgstr "處ç†Â·RSANSS·Public·key·的·Base64·部份時發生錯誤\n" #~ msgid "Error decoding RSANSS Public key\n" #~ msgstr "è™•ç† RSANSS Public key 時發生錯誤\n" #~ msgid "Error parsing RSANSS Private key\n" #~ msgstr "è™•ç† RSANSS Private key 時發生出ç¾éŒ¯èª¤\n" #~ msgid "Error parsing Base64 in RSANSS Private Key\n" #~ msgstr "è™•ç† RSANSS Private key çš„ Base64 部份時發生錯誤\n" #~ msgid "Error creating symmetric key: unable to load private key\n" #~ msgstr "建立å°ç¨±é‡‘鑰時發生錯誤: 無法載入ç§éŒ€(private key)\n" #~ msgid "Error decoding RSANSS Private key\n" #~ msgstr "è™•ç† RSANSS Private key 時發生錯誤\n" #~ msgid "No Nonce in message\n" #~ msgstr "訊æ¯å…§ç„¡ Nonce \n" #~ msgid "Bad Nonce in message\n" #~ msgstr "訊æ¯å…§çš„ Nonce 䏿­£ç¢º\n" pidgin-encryption-3.1/icon_out_capable.xpm0000644000175100017510000000612711365171052015765 00000000000000/* XPM */ static char * icon_out_capable_xpm[] = { "48 48 40 1", " c None", ". c #000000", "+ c #FFFC03", "@ c #FFFC0F", "# c #FFFC07", "$ c #FFFC01", "% c #EDEB3D", "& c #F0EE4E", "* c #F2F054", "= c #F2F030", "- c #F5F32B", "; c #FFFC11", "> c #F0EE4A", ", c #EEEC42", "' c #FFFC05", ") c #FDFA17", "! c #FFFC0D", "~ c #FAF71E", "{ c #FFFC0B", "] c #EFED39", "^ c #EFED45", "/ c #F8F480", "( c #F6F272", "_ c #F5F36D", ": c #F3F161", "< c #F2F15E", "[ c #F2F056", "} c #F2F052", "| c #EDEB41", "1 c #FAF68C", "2 c #F5F367", "3 c #F4F264", "4 c #F1EF33", "5 c #FFFC13", "6 c #F9F585", "7 c #F7F525", "8 c #F3F159", "9 c #FAF700", "0 c #F3F15B", "a c #FCF900", " ", " ", " ", " ", " ...... ", " ....+@#$.... ", " ..$#%&*=-;+$.. ", " ..$-*>,=---;'$.. ", " ..$,*%-)!;)-~{'$.. ", " .$,*])'$$$'-~)#'$. ", " ..-*];$......~-;''.. ", " .'*%;$.. ..)~!'$. ", " .%&~#$. ..=~#'.. ", " ..&]#$.. ..%@'$. ", " .-&)#$. .^)'+. ", " .-&{#.. .,-#+. ", " .=>{'. .]=#'. ", " .)%{'. .=-{'. ", " .......................... ...... ", " .=//(_:<<[[[[[[[[[[[}&&>^|'. ", " .123*>%%%]444444444=~)5;{#$. ", " .6:<&^%]==---------7));;{#$. ", " .13:&>%%%]===444444-~);@{'$. ", " .63<&^%]==----------)))5@#$. ", " .6:<&>%%%]4====4444=~);@@#$. ... ", " ./<8>^%]==----------)));@#$. .9.. ", " .6<<&>%%%]==4444=4==~));!#$. .99.. ", " ./<0>^%]4=---------7))@@{'$. .999.. ", " .6<<>>%%%]==========~)@@{#$. ......9999.. ", " .13<&^%]==---------7))@@{#$. .9999999999. ", " ./<8>>%%%]=========-~);@!{$. .9999999999. ", " .6<<>^%]==----------))@{{{$. ......9999.. ", " .13<&>%%%]=444======~)@@{5$. .999.. ", " ./<[>^%]==----------));@{)$. .99.. ", " ./<[^>%%%]======4=4=~)@@{)$. .9.. ", " ./0[^^%]==----------))@!{=$. ... ", " ./<[>>%%%]==4444444=~)@@{4$. ", " .6<8>^%]==----------))@;;4$. ", " ./<8>%4=-7~~~~~~~~~~5;@;)4$. ", " ./[[>%4=--777---7-7-)))-)=$. ", " ./[*^%=-~~~~~~7----]%%%%){$. ", " .{=-);{{{{{{{{{{#{#{'''''$a. ", " .......................... ", " ", " ", " ", " ", " "}; pidgin-encryption-3.1/ABOUT-NLS0000644000175100017510000004464411365171215013207 00000000000000Notes on the Free Translation Project ************************************* Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work at translations should contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. Quick configuration advice ========================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. INSTALL Matters =============== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the GNU `gettext' own library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will respectively bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might be not what is desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages have usually many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. Using This Package ================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. Translating Teams ================= For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skill are praised more than programming skill, here. Available Packages ================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of September 2001. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files bg cs da de el en eo es et fi fr gl he hr id it ja +----------------------------------------------------+ a2ps | [] [] [] | bash | [] [] [] [] | bfd | | binutils | [] | bison | [] [] [] [] [] | clisp | [] [] [] [] | cpio | [] [] [] [] [] | diffutils | [] [] [] [] [] [] [] | enscript | [] [] | error | [] [] | fetchmail | | fileutils | [] [] [] [] [] [] [] [] | findutils | [] [] [] [] [] [] [] [] | flex | [] [] [] | freetype | | gas | | gawk | [] [] | gcal | | gcc | | gettext | [] [] [] [] [] [] [] [] [] [] | gnupg | [] [] [] [] [] [] [] | gprof | | grep | [] [] [] [] [] [] [] [] | hello | [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] | indent | [] [] [] [] [] | jpilot | [] | kbd | | ld | [] | libc | [] [] [] [] [] [] [] [] | lilypond | [] | lynx | [] [] [] [] | m4 | [] [] [] [] [] [] [] [] | make | [] [] [] [] [] [] | mysecretdiary | [] | nano | [] [] [] | opcodes | | parted | [] [] [] | ptx | [] [] [] [] [] [] [] | python | | recode | [] [] [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] [] | sketch | | soundtracker | [] [] [] | sp | | tar | [] [] [] [] [] [] [] [] | texinfo | [] [] [] [] [] [] | textutils | [] [] [] [] [] [] [] [] | util-linux | [] [] | wdiff | [] [] [] | wget | [] [] [] [] [] [] [] [] [] [] | +----------------------------------------------------+ bg cs da de el en eo es et fi fr gl he hr id it ja 0 14 24 32 11 1 8 23 13 1 33 22 4 0 7 9 18 ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh +----------------------------------------------------+ a2ps | [] [] [] | 6 bash | | 4 bfd | | 0 binutils | | 1 bison | [] | 6 clisp | [] | 5 cpio | [] [] [] [] [] | 10 diffutils | [] [] [] [] | 11 enscript | [] [] [] | 5 error | [] [] | 4 fetchmail | | 0 fileutils | [] [] [] [] [] [] [] [] [] | 17 findutils | [] [] [] [] [] [] [] [] | 16 flex | [] [] [] | 6 freetype | | 0 gas | | 0 gawk | [] | 3 gcal | | 0 gcc | | 0 gettext | [] [] [] [] [] [] [] [] | 18 gnupg | [] [] [] | 10 gprof | | 0 grep | [] [] [] [] | 12 hello | [] [] [] [] [] [] [] [] [] [] [] | 22 id-utils | [] [] [] | 6 indent | [] [] [] [] [] [] [] | 12 jpilot | | 1 kbd | [] | 1 ld | | 1 libc | [] [] [] [] [] [] [] [] | 16 lilypond | [] [] | 3 lynx | [] [] [] [] | 8 m4 | [] [] [] [] | 12 make | [] [] [] [] [] [] | 12 mysecretdiary | | 1 nano | [] | 4 opcodes | [] | 1 parted | [] [] | 5 ptx | [] [] [] [] [] [] [] [] | 15 python | | 0 recode | [] [] [] [] | 13 sed | [] [] [] [] [] [] [] | 19 sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 21 sharutils | [] [] [] | 11 sketch | | 0 soundtracker | | 3 sp | | 0 tar | [] [] [] [] [] [] [] | 15 texinfo | [] | 7 textutils | [] [] [] [] [] [] [] [] | 16 util-linux | [] [] | 4 wdiff | [] [] [] [] | 7 wget | [] [] [] [] [] [] [] | 17 +----------------------------------------------------+ 33 teams ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh 53 domains 9 1 6 20 0 6 17 1 13 25 10 11 23 21 2 2 387 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If September 2001 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. Using `gettext' in new packages =============================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle to use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. pidgin-encryption-3.1/COPYING0000644000175100017510000004310511365171052013001 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 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. pidgin-encryption-3.1/nonce.c0000644000175100017510000000714011365171052013213 00000000000000/* Nonces for the Pidgin encryption plugin */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #include "internal.h" #include #include "debug.h" #include "base64.h" #include "pk11func.h" #include "nonce.h" static GHashTable *incoming_nonces; static const int MaxNonceIncr = 20; void PE_nonce_map_init() { incoming_nonces = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); } int PE_nonce_str_len() { return (sizeof(Nonce) * 4 / 3); } void PE_incr_nonce(Nonce* nonce) { int i = sizeof(Nonce); unsigned char carry = 1; while (carry && i > 0) { ++((*nonce)[--i]); carry = (nonce[i] == 0); } } gchar* PE_nonce_to_str(Nonce* nonce) { char * tmp = BTOA_DataToAscii(*nonce, sizeof(Nonce)); gchar* out = g_strdup(tmp); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Built Nonce:%u:%s\n", (unsigned)sizeof(Nonce), tmp); PORT_Free(tmp); return out; } /* Intentionally un-optimized compare: should take constant time no matter */ /* where nonces may differ. */ static int nonce_cmp(Nonce* n1, Nonce* n2) { int retval = 0; int i; for (i = 0; i < sizeof(Nonce); ++i) { if ((*n1)[i] != (*n2)[i]) retval = 1; } return retval; } void PE_str_to_nonce(Nonce* nonce, char* nonce_str) { unsigned int tmp_len; unsigned char* tmp_bin; tmp_bin = ATOB_AsciiToData(nonce_str, &tmp_len); if (tmp_len != sizeof(Nonce)) { PORT_Free(tmp_bin); memset(nonce, 0, sizeof(Nonce)); purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error parsing RSANSS nonce\n"); return; } memcpy(nonce, tmp_bin, sizeof(Nonce)); PORT_Free(tmp_bin); } gchar* PE_new_incoming_nonce(const char* name) { Nonce *nonce = g_malloc(sizeof(Nonce)); SECStatus rv = PK11_GenerateRandom(*nonce, sizeof(Nonce)); g_assert(rv == SECSuccess); g_hash_table_replace(incoming_nonces, g_strdup(name), nonce); return PE_nonce_to_str(nonce); } int PE_check_incoming_nonce(const char* name, char* nonce_str) { Nonce new_nonce; Nonce* orig_nonce = g_hash_table_lookup(incoming_nonces, name); Nonce try_nonce; int i; /* purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Nonce Check start\n"); */ if (orig_nonce == 0) return 0; memcpy(&try_nonce, orig_nonce, sizeof(Nonce)); PE_str_to_nonce(&new_nonce, nonce_str); for (i = 0; i < MaxNonceIncr; ++i) { if (nonce_cmp(&new_nonce, &try_nonce) == 0) { memcpy(orig_nonce, &try_nonce, sizeof(Nonce)); PE_incr_nonce(orig_nonce); return 1; } PE_incr_nonce(&try_nonce); } return 0; } pidgin-encryption-3.1/depcomp0000755000175100017510000004426711365171226013340 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. 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 $stat -eq 0; then : else 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 # 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,^.*\.[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 # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. 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.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. 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 # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then 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 echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pidgin-encryption-3.1/cryptproto.h0000644000175100017510000000737611365171052014356 00000000000000/* Wrapper for encryption protocols */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #ifndef CRYPTPROTO_H #define CRYPTPROTO_H #include "debug.h" #include "rsa_nss.h" /* Defined so that keys.h can use it: */ typedef union { /* rsa_crypt_key rsa; */ /* RSA* rsa_ssl; */ RSA_NSS_KEY rsa_nss; } proto_union; struct crypt_key; struct crypt_proto { /*Crypto operations: each returns the length, and g_malloc's the first argument for you */ int (*encrypt) (unsigned char** encrypted, unsigned char* msg, int msg_len, struct crypt_key* key); int (*decrypt) (unsigned char** decrypted, unsigned char* msg, int msg_len, struct crypt_key* key); int (*sign) (unsigned char** signedmsg, unsigned char* msg, int msg_len, struct crypt_key* key, struct crypt_key* to_key); int (*auth) (unsigned char** authed, unsigned char* msg, int msg_len, struct crypt_key* key, const char* name); int (*calc_unencrypted_size) (struct crypt_key* key, int size); int (*calc_unsigned_size) (struct crypt_key* key, int size); /* Key <-> String operations */ struct crypt_key* (*make_key_from_str) (char *); GString* (*key_to_gstr) (struct crypt_key* key); char * (*parseable) (char *keymsg); struct crypt_key* (*parse_sent_key) (char *); GString* (*make_sendable_key) (struct crypt_key* key, const char* name); gchar* (*make_key_id) (struct crypt_key* key); /* Key creation / destruction */ struct crypt_key* (*make_pub_from_priv) (struct crypt_key* priv_key); void (*free) (struct crypt_key*); void (*gen_key_pair) (struct crypt_key **, struct crypt_key **, const char* name, int keysize); /* Name of the protocol */ char* name; }; typedef struct crypt_proto crypt_proto; extern GSList* crypt_proto_list; int PE_calc_unencrypted_size(struct crypt_key* enc_key, struct crypt_key* sign_key, int size); char* PE_encrypt(char* msg, struct crypt_key* key); char* PE_decrypt(char* msg, struct crypt_key* key); void PE_encrypt_signed(char** out, char* msg, struct crypt_key* key1, struct crypt_key* key2); int PE_decrypt_signed(char** authed, char* msg, struct crypt_key* key1, struct crypt_key* key2, const char* name); GString* PE_key_to_gstr(struct crypt_key* key); void PE_free_key(struct crypt_key*); GString* PE_make_sendable_key(struct crypt_key* key, const char* name); gchar* PE_make_key_id(struct crypt_key* key); #endif pidgin-encryption-3.1/cryptutil.h0000644000175100017510000000455111365171052014160 00000000000000/* Misc utility functions for the Pidgin-Encryption plugin */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #ifndef CRYPTUTIL_H #define CRYPTUTIL_H #include "debug.h" #define MSG_HUNK_SIZE 126 #define CRYPT_HUNK_SIZE 256 /* Utility Functions: */ /* Convert a byte array to ascii-encoded character array. */ void PE_bytes_to_str(char* str, unsigned char* bytes, int numbytes); /* Convert a byte array to hex like a5:38:49:... . */ /* returns number of chars in char array. No null termination! */ /* int PE_bytes_to_colonstr(unsigned char* hex, unsigned char* bytes, int numbytes); */ /* Convert ascii-encoded bytes in a null terminated char* into a byte array */ unsigned int PE_str_to_bytes(unsigned char* bytes, char* hex); /* Strip returns from a block encoded string */ GString* PE_strip_returns(GString* s); /* Zero out a string (use for plaintext before freeing memory) */ void PE_clear_string(char* s); /* Escape all spaces in name so it can go in a key file */ void PE_escape_name(GString* name); /* Reverse the previous escaping. Since it will only get shorter, allow char* */ void PE_unescape_name(char* name); /* Returns true if the message starts with an HTML link */ gboolean PE_msg_starts_with_link(const char* c); /* Split a message (hopefully on a space) so we can send it in pieces */ GSList *PE_message_split(char *message, int limit); #endif pidgin-encryption-3.1/config.sub0000755000175100017510000010224011365171226013730 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2009-04-17' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 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. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: pidgin-encryption-3.1/icon_in_unlock.xpm0000644000175100017510000000701011365171052015460 00000000000000/* XPM */ static char * icon_in_unlock_xpm[] = { "48 48 69 1", " c None", ". c #555555", "+ c #565656", "@ c #626262", "# c #5D5D5D", "$ c #5C5C5C", "% c #818181", "& c #919191", "* c #999999", "= c #787878", "- c #737373", "; c #666666", "> c #757575", ", c #8D8D8D", "' c #868686", ") c #5A5A5A", "! c #696969", "~ c #616161", "{ c #646464", "] c #6B6B6B", "^ c #6E6E6E", "/ c #5E5E5E", "( c #7D7D7D", "_ c #5B5B5B", ": c #6F6F6F", "< c #7E7E7E", "[ c #595959", "} c #585858", "| c #8B8B8B", "1 c #606060", "2 c #575757", "3 c #777777", "4 c #505050", "5 c #BDBDBD", "6 c #B3B3B3", "7 c #ADADAD", "8 c #A6A6A6", "9 c #A1A1A1", "0 c #9C9C9C", "a c #9B9B9B", "b c #979797", "c c #939393", "d c #909090", "e c #8A8A8A", "f c #838383", "g c #C5C5C5", "h c #ABABAB", "i c #808080", "j c #7F7F7F", "k c #797979", "l c #6A6A6A", "m c #676767", "n c #C1C1C1", "o c #878787", "p c #767676", "q c #747474", "r c #727272", "s c #6C6C6C", "t c #A3A3A3", "u c #636363", "v c #000000", "w c #9E9E9E", "x c #9F9F9F", "y c #8E8E8E", "z c #7C7C7C", "A c #717171", "B c #6D6D6D", "C c #707070", "D c #515151", " ", " ", " ", " ", " .... ", " ...+@#+... ", " ..$%&*=-;+.. ", " ..>*,'=---;).. ", " ..'*%>!~{]-^/).. ", " ..'*(]_..._-:]#_.. ", " ..-*<;+.....+^-;_). ", " .)*%;+. .+]:~[+. ", " .%&^#.. .+=^#). ", " +&(#.. .]%@}.. ", " .@&!#.. .|][+. ", " .-&1#. .'-#2. ", " .=,1). .<=#}. ", " .!%1}. .3>1}. ", " 44 444 444+/4444444444444411+4444 ", " 4355678990aaaaa0000abc&def[4 ", " 4gh8*,%ij>-qqqqqq-s!!m{$+4 ", " 4n8tc,%ij(kp333kkkk=:l{{u$+4 ", " v 459wdoi<=p---qqqqqq-]l!;{$+4 ", " vv 4n99&,%ij<==kkkk3k3p^l!{~$+4 ", " vvv 459xyoi-qqqqqqqrl!{u/_+4 ", " vvvv 4n99d,%i c #057905", ", c #000200", "' c #229322", ") c #51B151", "! c #45AA45", "~ c #012A01", "{ c #000100", "] c #000600", "^ c #0A7F0A", "/ c #035B03", "( c #047304", "_ c #108410", ": c #158815", "< c #034B03", "[ c #012E01", "} c #329E32", "| c #023202", "1 c #000400", "2 c #013401", "3 c #168916", "4 c #024202", "5 c #35A035", "6 c #000C00", "7 c #000800", "8 c #012301", "9 c #000A00", "0 c #023C02", "a c #001400", "b c #001100", "c c #011E01", "d c #4CAE4C", "e c #012501", "f c #035903", "g c #011801", "h c #035403", "i c #011B01", "j c #269626", "k c #011C01", "l c #002400", "m c #004500", "n c #006500", "o c #005100", "p c #005300", "q c #006B00", "r c #006900", "s c #159215", "t c #95D895", "u c #83D083", "v c #76CA76", "w c #6DC66D", "x c #6BC56B", "y c #67C367", "z c #61C061", "A c #59BC59", "B c #55BA55", "C c #4FB74F", "D c #4BB54B", "E c #46B246", "F c #3DAD3D", "G c #35A835", "H c #28A028", "I c #9FDC9F", "J c #71C871", "K c #3CAC3C", "L c #38AA38", "M c #2EA42E", "N c #2BA22B", "O c #279F27", "P c #229C22", "Q c #209A20", "R c #1E991E", "S c #179417", "T c #169316", "U c #139113", "V c #108E10", "W c #0C8B0C", "X c #098809", "Y c #038303", "Z c #007800", "` c #005B00", " . c #004200", ".. c #9DDB9D", "+. c #42B042", "@. c #30A530", "#. c #2AA12A", "$. c #129012", "%. c #0B8A0B", "&. c #058505", "*. c #028202", "=. c #48B348", "-. c #199519", ";. c #0D8C0D", ">. c #007E00", ",. c #007400", "'. c #005600", "). c #004000", "!. c #0E8D0E", "~. c #078707", "{. c #63C163", "]. c #44B144", "^. c #33A733", "/. c #1A961A", "(. c #007600", "_. c #007000", ":. c #005900", "<. c #5BBD5B", "[. c #048404", "}. c #007A00", "|. c #006D00", "1. c #005800", "2. c #006200", "3. c #006400", "4. c #003E00", "5. c #57BB57", "6. c #018101", "7. c #3AAB3A", "8. c #51B851", "9. c #005E00", "0. c #005400", "a. c #004E00", "b. c #004C00", "c. c #002C00", "d. c #002300", " ", " ", " ", " ", " . . . . ", " . . . + @ # $ . . . ", " . . % & * = - ; > + . . ", " . , ' = ) ! - ; ; ; > ~ { . ", " . ] ! = & ' ^ / ( _ ; : < [ , . ", " . , ! = } _ | . . 1 2 ; 3 _ 4 | { . ", " . . ; = 5 > 6 . . . . . + : ; > | ~ . ", " . [ = & > 7 . . $ _ 3 / 8 9 . ", " . & * : 0 . . . a - : 0 ~ . ", " b * } # ] . . _ & @ c 1 . ", " . @ * ^ 0 . . ] d _ e b . ", " . ; * f 0 . . ! ; 0 g . ", " . - ) h ~ . . 5 - # c . ", " . ^ & h i . . j ' h k . ", " l l l m n n o l l l l l l l l l l l l p q r l l l l ", " l s t t u v w w x y z z A B B A A B B B C D E F G H p l ", " l I J x C K L M N O P Q R S S S S T U V W X Y Z q ` .l ", " l ..y z +.@.#.O P P R T U V $.$.$.V V %.X &.*.Z q ` .l ", " l I x y =.G M O P Q -.T $.$.$.$.;.V W X X &.>.,.n '.).l ", " l ..x z +.#.O P R S s V !.%.%.%.~.X X &.*.X &.>.,.` m l ", " l ..y {.].G ^.Q /.S U $.V V V $.;.V %.%.X &.*.(._.:. .l ", " l t z <.F #.O O P Q -.T $.$.$.$.;.V W X X X [.}.,.` .l . ", " l ..z z +.M N P R S s V !.%.%.%.~.X X &.*.&.[.Z |.` .l . . ", " l t z <.F N O Q /.S U $.V V V $.;.V %.%.X *.}._.n 1.).l . . . ", " l ..z z F #.O O P Q -.T $.$.$.$.;.V W X X Y >.,.q :.).l . . . . ", " l I x {.].G ^.P R S s V !.%.%.%.~.X X &.*.[.>._.q :. .l . . . . . . . . . . . ", " l t {.<.K O Q Q /.S U $.V V V $.;.V %.%.X [.*.,.|.2.).l . . . . . . . . . . . ", " l ..{.z F N O O P Q -.T $.$.$.$.;.V W X X >.}.q 3.2.4.l . . . . ", " l I x {.E G M P R S s V !.%.%.%.~.X X &.*.*.>._.n >.).l . . . ", " l t z B K O O Q /.S U $.V V V $.;.V %.%.X Y >._.q &.).l . . ", " l t z B ^.O Q O P Q -.T $.$.$.$.;.V W X X *.}._.r &.4.l . ", " l t <.B G O P P R S s V !.%.%.%.~.X X &.*.}.(.|.3.s 4.l ", " l t z 5.K O P Q /.S U $.V V V $.;.V %.%.X Y >.,.q -.).l ", " l ..z <.F #.O O P Q -.T $.$.$.$.;.V W X X *.>.Z }./.).l ", " l t z <.K O Q P R S s V !.%.%.%.~.X X &.*.>.}.Z 6./.).l ", " l t A B 7.P P Q /.S U $.V V V $.;.V %.%.X [.*.V [.U ).l ", " l t 5.8.^.Q Q R T U V W %.X !.$.$.R R /./.O O P [.r 4.l ", " l q U V [.Z Z _._.q q n n 3.n n 9.3.9.` :.'.0.a.b.m c.d. ", " d.l l l l l l l l l l l l l l l l l l l l l l l l d. ", " ", " ", " ", " ", " "}; pidgin-encryption-3.1/mkinstalldirs0000755000175100017510000000131611365171052014552 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs 340 2005-12-19 01:16:19Z obobo $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here pidgin-encryption-3.1/state_ui.h0000644000175100017510000000135411365171052013734 00000000000000#ifndef PE_STATE_UI_H #define PE_STATE_UI_H #include "pidgin-encryption-config.h" #include #include #include "gtkplugin.h" #include #include #include #include #include void PE_state_ui_init(); void PE_state_ui_delete(); void PE_set_rx_encryption_icon(PurpleConversation *c, gboolean encrypted); void PE_set_tx_encryption_icon(PurpleConversation *c, gboolean do_encrypt, gboolean is_capable); void PE_pixmap_init(); void PE_error_window(const char* message); void PE_log_displaying_cb(PidginLogViewer *viewer, PurpleLog *log, gpointer data); void PE_remove_decorations(PurpleConversation *conv); void PE_add_smiley(PurpleConversation *conv); #endif pidgin-encryption-3.1/gpg.c0000755000175100017510000000631411365171052012673 00000000000000/* Fake wrapper to illustrate using a different encryption protocol */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #include "internal.h" #include "cryptproto.h" #include "gpg.h" #include "cryptutil.h" #include "keys.h" char* gpg_proto_string="GPG 1.00"; crypt_proto* gpg_proto; /*Functions exported through crypt_proto structure */ static int gpg_encrypt(unsigned char** encrypted, unsigned char* msg, int msg_len, crypt_key* inkey); static int gpg_decrypt(unsigned char** decrypted, unsigned char* msg, int msg_len, crypt_key* inkey); static int gpg_sign(unsigned char** signedmsg, unsigned char* msg, int msg_len, crypt_key* key, crypt_key* tokey); static int gpg_auth(unsigned char** authed, unsigned char* msg, int msg_len, crypt_key* key, const char* name); static crypt_key* gpg_make_key_from_str(char *key_str); static GString* gpg_key_to_gstr(crypt_key* inkey); static char* gpg_parseable(char* key); void gpg_init(int isdefault) { gpg_proto = g_malloc(sizeof(crypt_proto)); crypt_proto_list = g_slist_prepend(crypt_proto_list, gpg_proto); gpg_proto->encrypt = gpg_encrypt; gpg_proto->decrypt = gpg_decrypt; gpg_proto->sign = gpg_sign; gpg_proto->auth = gpg_auth; gpg_proto->make_key_from_str = gpg_make_key_from_str; gpg_proto->key_to_gstr = gpg_key_to_gstr; gpg_proto->parseable = gpg_parseable; gpg_proto->name = gpg_proto_string; } static int gpg_encrypt(unsigned char** encrypted, unsigned char* msg, int msg_len, crypt_key* inkey) { return 0;} static int gpg_decrypt(unsigned char** decrypted, unsigned char* msg, int msg_len, crypt_key* inkey) { return 0;} static int gpg_sign(unsigned char** signedmsg, unsigned char* msg, int msg_len, crypt_key* key, crypt_key* tokey) { return 0;} static int gpg_auth(unsigned char** authed, unsigned char* msg, int msg_len, crypt_key* key, const char* name) { return 0;} static crypt_key* gpg_make_key_from_str(char *key_str) { return 0;} static GString* gpg_key_to_gstr(crypt_key* key) { return 0;} static char* gpg_parseable(char* key) { return 0; } pidgin-encryption-3.1/missing0000755000175100017510000002623311365171226013353 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pidgin-encryption-3.1/config.guess0000755000175100017510000013226411365171226014276 00000000000000#! /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, 2007, 2008 # Free Software Foundation, Inc. timestamp='2009-04-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 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. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." 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, 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[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 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd | genuineintel) 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 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; 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 # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: pidgin-encryption-3.1/nss_pss.h0000644000175100017510000000237611365171052013614 00000000000000/* * Pidgin-Encryption PSS signature routines, from PKCS#1 v2.1 * * Copyright (C) 2003 William Tompkins * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /* Generate a signature block (not including the msg) in the specified space */ int pss_generate_sig(unsigned char* sig, unsigned int sig_len, const unsigned char* msg, unsigned int msg_len, int saltlen); /* Verify that the the signature block corresponds to the given message */ int pss_check_sig(unsigned char* sig, unsigned int sig_len, const unsigned char* msg, unsigned int msg_len); void pss_test(); pidgin-encryption-3.1/aclocal.m40000644000175100017510000017256611365171224013625 00000000000000# generated automatically by aclocal 1.11 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],, [m4_warning([this file was generated for autoconf 2.64. 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'.])]) # gettext.m4 serial 60 (gettext-0.17) dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2006. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST(INTLLIBS) dnl Make all documented variables known to autoconf. AC_SUBST(LIBINTL) AC_SUBST(LTLIBINTL) AC_SUBST(POSUB) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) # Configure paths for GTK+ # Owen Taylor 1997-2001 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, dnl pass to pkg-config dnl AC_DEFUN([AM_PATH_GTK_2_0], [dnl dnl Get the cflags and libraries from pkg-config dnl AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program], , enable_gtktest=yes) pkg_config_args=gtk+-2.0 for module in . $4 do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test x$PKG_CONFIG != xno ; then if pkg-config --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=ifelse([$1], ,2.0.0,$1) AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version) if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" dnl dnl Now check if the installed GTK+ is sufficiently new. (Also sanity dnl checks the results of pkg-config to some extent) dnl rm -f conf.gtktest AC_TRY_RUN([ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.gtktest"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" AC_TRY_LINK([ #include #include ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) rm -f conf.gtktest ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # # Similar to PKG_CHECK_MODULES, make sure that the first instance of # this or PKG_CHECK_MODULES is called, or make sure to call # PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_ifval([$2], [$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$PKG_CONFIG"; then if test -n "$$1"; then pkg_cv_[]$1="$$1" else PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) fi else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` else $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT ])], [AC_MSG_RESULT([no]) $4]) elif test $pkg_failed = untried; then ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])], [$4]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) ifelse([$3], , :, [$3]) fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 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. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' 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.11], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 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 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # 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 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 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 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # 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 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. 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, 2008, 2009 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 16 # 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. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 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. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 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 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 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 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 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 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 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 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 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 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 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 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 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 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/codeset.m4]) m4_include([m4/gettext.m4]) m4_include([m4/glibc21.m4]) m4_include([m4/iconv.m4]) m4_include([m4/isc-posix.m4]) m4_include([m4/lcmessage.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([m4/progtest.m4]) pidgin-encryption-3.1/gpg.h0000755000175100017510000000230411365171052012673 00000000000000/* Fake wrapper to illustrate using a different encryption protocol */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #ifndef GPG_H #define GPG_H struct gpg_crypt_key { }; typedef struct gpg_crypt_key gpg_crypt_key; void gpg_init(int isdefault); #endif pidgin-encryption-3.1/cryptproto.c0000644000175100017510000001003711365171052014335 00000000000000/* Wrapper for encryption protocols */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #include "internal.h" #include #include "cryptproto.h" #include "keys.h" #include "cryptutil.h" /* cryptproto: an interface to the encryption protocols that we know about. */ GSList* crypt_proto_list = 0; /* Find the largest unencrypted message that can fit in a given size encrypted msg */ int PE_calc_unencrypted_size(crypt_key* enc_key, crypt_key* sign_key, int size){ size = (size / 4) * 3; /* for Base 64 */ /* size = size / 2; for binary->ascii encoding */ size = enc_key->proto->calc_unencrypted_size(enc_key, size); size = sign_key->proto->calc_unsigned_size(sign_key, size); return size; } char* PE_encrypt(char* msg, struct crypt_key* key) { unsigned char *encrypted_bin; char *out; int len; len = key->proto->encrypt(&encrypted_bin, (unsigned char*)msg, strlen(msg), key); out = g_malloc(len*2+1); /* long enough for even straight hex conversion */ PE_bytes_to_str(out, encrypted_bin, len); g_free(encrypted_bin); return out; } char* PE_decrypt(char* msg, struct crypt_key* key){ unsigned char *binary; unsigned char *decrypted; int len = strlen(msg); binary = g_malloc(len); len = PE_str_to_bytes(binary, msg); len = key->proto->decrypt(&decrypted, binary, len, key); return (char*)decrypted; } void PE_encrypt_signed(char** out, char* msg, struct crypt_key* priv_key, struct crypt_key* pub_key) { unsigned char *encrypted_bin, *signed_msg; int len; len = priv_key->proto->sign(&signed_msg, (unsigned char*)msg, strlen(msg), priv_key, pub_key); len = pub_key->proto->encrypt(&encrypted_bin, signed_msg, len, pub_key); *out = g_malloc(len*2+1); /* long enough for even straight hex conversion */ PE_bytes_to_str(*out, encrypted_bin, len); g_free(encrypted_bin); g_free(signed_msg); } /* returns length of decrypted/authed message, or <=0 on error */ /* on error, authed may contain a message ID */ int PE_decrypt_signed(char** authed, char* msg, struct crypt_key* priv_key, struct crypt_key* pub_key, const char* name) { unsigned char *binary, *decrypted; int len = strlen(msg); *authed = 0; binary = g_malloc(len); len = PE_str_to_bytes(binary, msg); len = pub_key->proto->decrypt(&decrypted, binary, len, priv_key); if (len > 0) { len = priv_key->proto->auth((unsigned char**)authed, decrypted, len, pub_key, name); g_free(decrypted); } g_free(binary); return len; } GString* PE_key_to_gstr(struct crypt_key* key) { return key->proto->key_to_gstr(key); } gchar* PE_make_key_id(struct crypt_key* key) { return key->proto->make_key_id(key); } GString* PE_make_sendable_key(struct crypt_key* key, const char* name){ return key->proto->make_sendable_key(key, name); } void PE_free_key(struct crypt_key* key) { key->proto->free(key); } pidgin-encryption-3.1/state.h0000644000175100017510000000204611365171052013236 00000000000000#ifndef PE_STATE_H #define PE_STATE_H #include typedef struct EncryptionState { gboolean incoming_encrypted; gboolean outgoing_encrypted; gboolean has_been_notified; gboolean is_capable; } EncryptionState; void PE_state_init(); void PE_state_delete(); EncryptionState* PE_get_state(PurpleConversation* conv); void PE_reset_state(PurpleConversation *conv); void PE_free_state(PurpleConversation *conv); void PE_set_tx_encryption(PurpleConversation* conv, gboolean new_state); gboolean PE_get_tx_encryption(PurpleConversation *conv); void PE_set_capable(PurpleConversation *conv, gboolean cap); gboolean PE_has_been_notified(PurpleConversation *conv); void PE_set_notified(PurpleConversation *conv, gboolean newstate); void PE_set_rx_encryption(PurpleConversation *conv, gboolean encrypted); gboolean PE_get_default_notified(const PurpleAccount *account, const gchar* name); /* Ensure that the conversation's state is reflected in the conversation's menu */ void PE_sync_state(PurpleConversation *conv); #endif pidgin-encryption-3.1/keys_ui.h0000644000175100017510000000251411365171052013566 00000000000000/* Key acceptance UI bits */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #ifndef KEY_UI_H #define KEY_UI_H #include "keys.h" void PE_choose_accept_unknown_key(key_ring_data* newkey, gchar* resend_msg_id, PurpleConversation *conv); void PE_choose_accept_conflict_key(key_ring_data* newkey, gchar* resend_msg_id, PurpleConversation *conv); #endif pidgin-encryption-3.1/config_ui.h0000644000175100017510000000261111365171052014056 00000000000000/* Configure dialog UI */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #ifndef CONFIG_UI_H #define CONFIG_UI_H #include extern GtkWidget* PE_get_config_frame(PurplePlugin *plugin); extern void PE_config_cancel_regen(void); extern void PE_config_update(); extern void PE_config_unload(void); extern void PE_config_show_invalid_keypath(); extern void PE_config_show_nonabsolute_keypath(); #endif pidgin-encryption-3.1/icon_lock.xpm0000644000175100017510000000204511365171052014432 00000000000000/* XPM */ static char * icon_lock_xpm[] = { "26 24 19 1", " c None", ". c #5C0000", "+ c #650000", "@ c #7B1F1F", "# c #310000", "$ c #A03B3B", "% c #9B3F3F", "& c #582727", "* c #6A0000", "= c #821D1D", "- c #7B0000", "; c #924545", "> c #4D0000", ", c #670000", "' c #E17A7A", ") c #FF9898", "! c #C35C5C", "~ c #A23B3B", "{ c #841D1D", " ", " ..++++@@ ", " ...++++@@& ", " ##$$$$%%..&& ", " ##$$$ %..&& ", " **$$ ++== ", " **$$ ++== ", " --;; >>== ", " --;; >>== ", " ,,,,,,,,,,,,,,,, ", " ,,,,,,,,,,,,,,,, ", " ,,''))''!!!!~~,, ", " ,,''))''!!!!~~,, ", " ,,~~!!~~~!{{,,,, ", " ,,~~!!~~~!{{,,,, ", " ,,''))''!!!!~~,, ", " ,,''))''!!!!~~,, ", " ,,~~!!~~!!{{,,,, ", " ,,~~!!~~!!{{,,,, ", " ,,''))''!!!!~~,, ", " ,,''))''!!!!~~,, ", " ,,,,,,,,,,,,,,,, ", " ,,,,,,,,,,,,,,,, ", " "}; pidgin-encryption-3.1/TODO0000644000175100017510000000011511365171052012430 00000000000000- Add prefs for maintaining encryption button state between conversations. pidgin-encryption-3.1/encrypt.c0000755000175100017510000015464711365201564013621 00000000000000/* Pidgin encryption plugin */ /* Copyright (C) 2001-2007 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #define PURPLE_PLUGINS #include "internal.h" #include "pidgin-encryption-config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "cryptproto.h" #include "cryptutil.h" #include "state.h" #include "state_ui.h" #include "keys.h" #include "nonce.h" #include "prefs.h" #include "config_ui.h" #include "pe_blist.h" #include "encrypt.h" #include "nls.h" #include #include #ifndef _WIN32 #include #endif #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_ALLOCA_H #include #endif #ifdef _WIN32 #include "win32dep.h" #endif /* from Purple's internal.h, but it isn't critical that it is in sync: */ #define PE_BUF_LONG 4096 G_MODULE_IMPORT GSList *purple_accounts; G_MODULE_IMPORT guint im_options; #define ENCRYPT_PLUGIN_ID "gtk-obobo-pidgin-encryption" /* Types */ struct msg_node { char who[64]; time_t time; PurpleConnection* gc; struct msg_node* next; char msg[1]; }; typedef struct msg_node msg_node; static PurplePlugin *PE_plugin_handle; static guint PE_pref_callback_id; /* Outgoing message queue (waiting on a public key to encrypt) */ static msg_node* first_out_msg = 0; static msg_node* last_out_msg = 0; /* Incoming message queue (waiting on a public key to verify) */ static msg_node* first_inc_msg = 0; static msg_node* last_inc_msg = 0; static int PE_get_msg_size_limit(PurpleAccount*); static void PE_send_key(PurpleAccount *, const char *name, int, char*); static crypt_key * PE_get_key(PurpleConnection *, const char *name); static int decrypt_msg(char **decrypted, char *msg, const char *name, crypt_key *, crypt_key *); static void PE_store_msg(const char *name, PurpleConnection*, char *, msg_node**, msg_node**); static void got_encrypted_msg(PurpleConnection *, const char *name, char **); static void reap_all_sent_messages(PurpleConversation*); static void reap_old_sent_messages(PurpleConversation*); /* Function pointers exported to Purple */ static gboolean PE_got_msg_cb(PurpleAccount *, char **, char **, PurpleConversation *conv, int* flags); static void PE_send_msg_cb(PurpleAccount *, char *, char **, void *); static void PE_new_conv_cb(PurpleConversation *, void *); static void PE_del_conv_cb(PurpleConversation *, void *); static void PE_updated_conv_cb(PurpleConversation *, void *); /* legacy... we try to use HTML in some of our headers- format is protocol dependent */ static GHashTable *header_table, *footer_table, *notify_table; static gchar* header_default; /* the non-HTML default header */ static gchar* header_broken; /* if a server is stripping HTML and we're using it */ /* in our header, we'll see this */ static GHashTable *broken_users; /* keeps track of who is seeing broken HTML */ static char * unrequited_capable_who = 0; /* if we learn that someone is capable, but don't have */ /* a conv for them yet, we set this to be them */ /* A field for the LibPurple conversation "data" hashmap to indicate that we want to use non-html */ #define BROKEN_HTML "Encrypt-HTMLBroken" static void strip_crypto_smiley(char* s) { char * pos; while ( (pos = strstr(s, CRYPTO_SMILEY)) != 0 ) { memmove(pos, pos + CRYPTO_SMILEY_LEN, strlen(pos + CRYPTO_SMILEY_LEN)+1); } } /* Send key to other side. If msg_id is non-null, we include a request to re-send */ /* a certain message, as well. */ static void PE_send_key(PurpleAccount *acct, const char *name, int asError, gchar *msg_id) { /* load key somehow */ char *msg; GString *key_str; crypt_key *pub_key; PurpleConversation *conv; int conv_breaks_html = 0; int header_size, footer_size; const gchar* header = g_hash_table_lookup(header_table, purple_account_get_protocol_id(acct)); const gchar* footer = g_hash_table_lookup(footer_table, purple_account_get_protocol_id(acct)); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "send_key: %s\n", acct->username); conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, acct); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "send_key: %s, %p, %s\n", name, conv, acct->username); if (g_hash_table_lookup(broken_users, name)) { conv_breaks_html = 1; } if (!header || conv_breaks_html) header = header_default; if (!footer || conv_breaks_html) footer = ""; header_size = strlen(header); footer_size = strlen(footer); pub_key = PE_find_own_key_by_name(&PE_my_pub_ring, acct->username, acct, conv); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "send_key2: %s\n", acct->username); if (!pub_key) return; key_str = PE_make_sendable_key(pub_key, name); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "send_key3: %s\n", acct->username); msg = alloca(header_size + footer_size + key_str->len + 100); if (msg == 0) return; if (asError) { if (msg_id) { sprintf(msg, "%s: ErrKey: Prot %s: Len %d:%sResend:%s:%s", header, pub_key->proto->name, (int)key_str->len, key_str->str, msg_id, footer); } else { sprintf(msg, "%s: ErrKey: Prot %s: Len %d:%s%s", header, pub_key->proto->name, (int)key_str->len, key_str->str, footer); } } else { sprintf(msg, "%s: Key: Prot %s: Len %d:%s%s", header, pub_key->proto->name, (int)key_str->len, key_str->str, footer); } if (strlen(msg) > PE_get_msg_size_limit(acct)) { purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Key too big to send in message (%u > %d)\n", (unsigned)strlen(msg), PE_get_msg_size_limit(acct)); conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, acct); if (conv == NULL) { conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, name); } purple_conversation_write(conv, 0, _("This account key is too large for this protocol. " "Unable to send."), PURPLE_MESSAGE_SYSTEM, time((time_t)NULL)); return; } serv_send_im(acct->gc, name, msg, 0); g_string_free(key_str, TRUE); } static crypt_key *PE_get_key(PurpleConnection *gc, const char *name) { crypt_key *bkey; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "get_key: %s\n", name); bkey = PE_find_key_by_name(PE_buddy_ring, name, gc->account); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "got key: %p\n", bkey); if( bkey == 0 ) { char* tmpmsg; int header_size, footer_size; const gchar* header = g_hash_table_lookup(header_table, purple_account_get_protocol_id(gc->account)); const gchar* footer = g_hash_table_lookup(footer_table, purple_account_get_protocol_id(gc->account)); int conv_breaks_html = 0; if (g_hash_table_lookup(broken_users, name)) { conv_breaks_html = 1; } if (g_hash_table_lookup(broken_users, name)) { conv_breaks_html = 1; } if (!header || conv_breaks_html) header = header_default; if (!footer || conv_breaks_html) footer = ""; header_size = strlen(header); footer_size = strlen(footer); tmpmsg = alloca(header_size + footer_size + sizeof (": Send Key")); // sizeof() gets the trailing null too sprintf(tmpmsg, "%s%s%s", header, ": Send Key", footer); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Sending: %s\n", tmpmsg); serv_send_im(gc, name, tmpmsg, 0); return 0; } return bkey; } static int decrypt_msg(char **decrypted, char *msg, const char *name, crypt_key *priv_key, crypt_key *pub_key) { int realstart = 0; unsigned int length; int len; char* decrypted_no_header = 0; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "decrypt_msg\n"); *decrypted = 0; if ( (sscanf(msg, ": Len %u:%n", &length, &realstart) < 1) || (realstart == 0)) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Garbled length in decrypt\n"); return -1; } msg += realstart; if (strlen(msg) < length) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Length doesn't match in decrypt\n"); return -1; } msg[length] = 0; len = PE_decrypt_signed(&decrypted_no_header, msg, priv_key, pub_key, name); if (len <= 0 || decrypted_no_header == 0) { return -1; } strip_crypto_smiley(decrypted_no_header); if (purple_prefs_get_bool("/plugins/gtk/encrypt/show_inline_icons")) { if (decrypted_no_header[0] == '/') { gchar** slashsplit = g_strsplit(decrypted_no_header, " ", 2); *decrypted = g_strconcat(slashsplit[0], " ", CRYPTO_SMILEY, " ", slashsplit[1], NULL); g_strfreev(slashsplit); g_free(decrypted_no_header); } else { *decrypted = g_strconcat(CRYPTO_SMILEY, " ", decrypted_no_header, NULL); g_free(decrypted_no_header); } return len + CRYPTO_SMILEY_LEN + 1; /* plus 1 from space after smiley */ } else { /* not showing inline icons */ *decrypted = decrypted_no_header; return len; } } static void PE_store_msg(const char *who, PurpleConnection *gc, char *msg, msg_node** first_node, msg_node** last_node) { msg_node* newnode; newnode = g_malloc(sizeof(msg_node) + strlen(msg)); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "store_msg: %p : %s\n", newnode, who); strncpy(newnode->who, purple_normalize(gc->account, who), sizeof(newnode->who)); newnode->who[sizeof(newnode->who)-1] = 0; newnode->gc = gc; newnode->time = time((time_t)NULL); strcpy(newnode->msg, msg); newnode->next = 0; if (*first_node == 0) { *last_node = newnode; *first_node = newnode; } else { (*last_node)->next = newnode; *last_node = newnode; } for (newnode = *first_node; newnode != *last_node; newnode = newnode->next) { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", " In store stack: %p, %s\n", newnode, newnode->who); } purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", " In store stack: %p, %s\n", *last_node, (*last_node)->who); } void PE_send_stored_msgs(PurpleAccount* acct, const char* who) { msg_node* node = first_out_msg; msg_node* prev = 0; char *tmp_msg; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "send_stored_msgs\n"); while (node != 0) { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Looking for stored msg:%s:%s\n",node->who, who); if ((strcmp(node->who, who) == 0) && (node->gc->account == acct)) { tmp_msg = g_strdup(node->msg); PE_send_msg_cb(node->gc->account, (char*)who, &tmp_msg, 0); PE_clear_string(node->msg); if (tmp_msg != 0) { g_free(tmp_msg); } if (node == last_out_msg) { last_out_msg = prev; } if (prev != 0) { /* a random one matched */ prev->next = node->next; g_free(node); node = prev->next; } else { /* the first one matched */ first_out_msg = node->next; g_free(node); node = first_out_msg; } } else { /* didn't match */ prev = node; node = node->next; } } } void PE_delete_stored_msgs(PurpleAccount* acct, const char* who) { msg_node* node = first_out_msg; msg_node* prev = 0; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "delete_stored_msgs\n"); while (node != 0) { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Looking for stored msg:%s:%s\n",node->who, who); if ((strcmp(node->who, who) == 0) && (node->gc->account == acct)) { PE_clear_string(node->msg); if (node == last_out_msg) { last_out_msg = prev; } if (prev != 0) { /* a random one matched */ prev->next = node->next; g_free(node); node = prev->next; } else { /* the first one matched */ first_out_msg = node->next; g_free(node); node = first_out_msg; } } else { /* didn't match */ prev = node; node = node->next; } } } void PE_show_stored_msgs(PurpleAccount*acct, const char* who) { msg_node* node = first_inc_msg; msg_node* prev = 0; char *tmp_msg; PurpleConversation *conv; while (node != 0) { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "show_stored_msgs:%p:%s:%s:\n", node, node->who, who); if (strcmp(node->who, who) == 0) { tmp_msg = g_strdup(node->msg); got_encrypted_msg(node->gc, who, &tmp_msg); if (tmp_msg != 0) { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "showing msg:%s\n", tmp_msg); conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, acct); // let gtkconv (and others) know that we're about to display a message, so // this is their chance to thwart it, or change the window, or... purple_signal_emit(purple_conversations_get_handle(), "received-im-msg", acct, who, tmp_msg, conv, PURPLE_MESSAGE_RECV); // the conv may have been updated with that signal, so fetch it again conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, acct); if (!conv) { conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, node->gc->account, who); } purple_conv_im_write(PURPLE_CONV_IM(conv), NULL, tmp_msg, PURPLE_MESSAGE_RECV, time((time_t)NULL)); g_free(tmp_msg); /* we might have just created the conversation, and now we're displaying an */ /* encrypted message. So... make sure we've got all the trappings, and then */ /* set the various indicators */ PE_updated_conv_cb(conv, 0); PE_set_capable(conv, TRUE); if (purple_prefs_get_bool("/plugins/gtk/encrypt/encrypt_response")) { PE_set_tx_encryption(conv, TRUE); } PE_set_rx_encryption(conv, TRUE); } if (node == last_inc_msg) { last_inc_msg = prev; } if (prev != 0) { /* a random one matched */ prev->next = node->next; g_free(node); node = prev->next; } else { /* the first one matched */ first_inc_msg = node->next; g_free(node); node = first_inc_msg; } } else { /* didn't match */ prev = node; node = node->next; } } } static void reap_all_sent_messages(PurpleConversation* conv){ GQueue *sent_msg_queue = g_hash_table_lookup(conv->data, "sent messages"); PE_SentMessage *sent_msg_item; /* purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "ZZZ Reaping all messages: %p\n", conv); */ while (!g_queue_is_empty(sent_msg_queue)) { sent_msg_item = g_queue_pop_tail(sent_msg_queue); /* purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "ZZZ Message: %s\n", sent_msg_item->id); */ g_free(sent_msg_item->id); g_free(sent_msg_item->msg); g_free(sent_msg_item); } } static void reap_old_sent_messages(PurpleConversation* conv){ GQueue *sent_msg_queue = g_hash_table_lookup(conv->data, "sent messages"); PE_SentMessage *sent_msg_item; time_t curtime = time(0); /* purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "ZZZ Reaping old messages: %p\n", conv); */ while (!g_queue_is_empty(sent_msg_queue)) { sent_msg_item = g_queue_peek_tail(sent_msg_queue); /* purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "ZZZ Message: %s\n", sent_msg_item->id); */ if (curtime - sent_msg_item->time > 60) { /* message is over 1 minute old */ sent_msg_item = g_queue_pop_tail(sent_msg_queue); /* purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "ZZZ Deleted\n"); */ g_free(sent_msg_item->id); g_free(sent_msg_item->msg); g_free(sent_msg_item); } else { /* These were pushed on in order, so if this one is not old, we're done */ break; } } } static gboolean PE_got_msg_cb(PurpleAccount *acct, char **who, char **message, PurpleConversation *conv, int *flags) { char *name; gchar *headerpos; /* Header is allowed to be anywhere in message now */ gchar *notifypos = 0; gchar *caps_header, *caps_message, /* temps for ascii_strup() versions of each */ *caps_notify; /* since Jabber mucks with case */ gchar *boldAsterixPos; /* position of *-substituted header */ gchar *debianHeaderPos; /* position of Debian-specific header */ gchar *unescaped_message; /* temps for html_unescaped */ /* since ICQ will now escape HTML */ int header_size, footer_size; const gchar* header = g_hash_table_lookup(header_table, purple_account_get_protocol_id(acct)); const gchar* footer = g_hash_table_lookup(footer_table, purple_account_get_protocol_id(acct)); const gchar* notify = g_hash_table_lookup(notify_table, purple_account_get_protocol_id(acct)); if (!header) header = header_default; if (!footer) footer = ""; header_size = strlen(header); footer_size = strlen(footer); /* Since we don't have a periodic callback, we do some housekeeping here */ purple_conversation_foreach(reap_old_sent_messages); name = g_strdup(purple_normalize(acct, *who)); if (*message != NULL) { /* More header madness: Debian patched the headers to start with "--- Encrypted with the ...", to fix the issue that sometimes "***" is being replaced with *. So... replace either that we see, to canonicalize the message */ /* also make message all caps... */ caps_message = g_ascii_strup(*message, -1); caps_header = g_ascii_strup(header, -1); boldAsterixPos = strstr(caps_message, "* ENCRYPTED WITH THE GAIM-ENCRYPTION PLUGIN"); if (boldAsterixPos) { memcpy(boldAsterixPos, " ***", 8); } debianHeaderPos = strstr(caps_message, "--- ENCRYPTED WITH THE GAIM-ENCRYPTION PLUGIN"); if (debianHeaderPos) { memcpy(debianHeaderPos, "***", 3); } headerpos = strstr(caps_message, caps_header); g_free(caps_header); if (headerpos == 0 && notify) { caps_notify = g_ascii_strup(notify, -1); notifypos = strstr(caps_message, caps_notify); g_free(caps_notify); } else { notifypos = 0; } if (headerpos != 0) { /* adjust to where the header is in the _real_ message, if */ /* we found it in the caps_message */ headerpos += (*message) - caps_message; } if (notifypos != 0) { /* ditto for the notification header */ notifypos += (*message) - caps_message; } g_free(caps_message); if (headerpos == 0 && notifypos == 0) { unescaped_message = purple_unescape_html(*message); /* Check for ICQ-escaped header*/ headerpos = strstr(unescaped_message, header); if (headerpos == 0 && notify) { notifypos = strstr(unescaped_message, notify); } if (headerpos != 0 || notifypos != 0) { /* ICQ PRPL escaped our HTML header, but we outsmarted it */ /* replace message with unescaped message. */ purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Escaped header: replacing %s with %s\n", *message, unescaped_message); g_free(*message); *message = unescaped_message; } else { g_free(unescaped_message); } } if (headerpos == 0 && notifypos == 0) { /* check for a header that has had the HTML ripped out. */ if (strstr(*message, header_broken)) { /* mark this name as having broken HTML, so we send appropriately */ g_hash_table_insert(broken_users, g_strdup(name), (gpointer)TRUE); /* send key to other side as an error condition */ PE_send_key(acct, name, 1, 0); (*message)[0] = 0; g_free(*message); *message = NULL; purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Broken HTML header found, asking for key\n"); // Bail early, since we short-circuited the logic below g_free(name); return FALSE; } } if (headerpos == 0 && header != header_default){ /* look for a default header, in case other side has decided that html is broken */ headerpos = strstr(*message, header_default); if (headerpos) { purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Found default header when expecting proto-specific one\n"); header_size = strlen(header_default); footer_size = 0; /* mark this conv as having broken HTML, so we send appropriately */ g_hash_table_insert(broken_users, g_strdup(name), (gpointer)TRUE); } } /* Whew. Enough of this header-finding. */ if (headerpos != 0) { PE_set_capable(conv, TRUE); if (purple_prefs_get_bool("/plugins/gtk/encrypt/encrypt_response")) { PE_set_tx_encryption(conv, TRUE); } if (strncmp(headerpos + header_size, ": Send Key", sizeof(": Send Key")-1) == 0) { PE_send_key(acct, name, 0, 0); (*message)[0] = 0; g_free(*message); *message = NULL; purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Sent key per request\n"); } else if (strncmp(headerpos + header_size, ": Key", sizeof(": Key") - 1) == 0) { purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Got key\n"); PE_received_key(headerpos + header_size + sizeof(": Key") - 1, name, acct, conv, message); } else if (strncmp(headerpos + header_size, ": ErrKey", sizeof(": ErrKey") - 1) == 0) { purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Got key in response to error\n"); purple_conversation_write(conv, 0, _("Last outgoing message not received properly- resetting"), PURPLE_MESSAGE_SYSTEM, time((time_t)NULL)); PE_received_key(headerpos + header_size + sizeof(": ErrKey") - 1, name, acct, conv, message); } else if (strncmp(headerpos + header_size, ": Msg", sizeof(": Msg") - 1) == 0){ purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Got encrypted message: %u\n", (unsigned)strlen(*message)); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Message is:%s:\n", *message); memmove(*message, headerpos + header_size + sizeof(": Msg") - 1, strlen(headerpos + header_size + sizeof(": Msg") -1)+1); got_encrypted_msg(acct->gc, name, message); PE_set_rx_encryption(conv, TRUE); } else { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Invalid Pidgin-Encryption packet type\n"); } } else if (notifypos != 0) { PE_set_rx_encryption(conv, FALSE); if (conv) { PE_set_capable(conv, TRUE); if (purple_prefs_get_bool("/plugins/gtk/encrypt/encrypt_if_notified")) { PE_set_tx_encryption(conv, TRUE); } } else { /* remember who this was. If the next new conversation event is for */ /* the same guy, we'll set as capable then */ if (unrequited_capable_who) { g_free(unrequited_capable_who); } unrequited_capable_who = g_strdup(*who); } /* remove the notification HTML so it doesn't pollute the logs */ memmove(notifypos, notifypos+strlen(notify), strlen(notifypos+strlen(notify))+1); /* +1 to include null */ strip_crypto_smiley(*message); } else { /* No encrypt-o-header */ PE_set_rx_encryption(conv, FALSE); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "No header: %s\n", *message); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Proto '%s', header should be: %s\n", purple_account_get_protocol_id(acct), header); strip_crypto_smiley(*message); } } g_free(name); if (*message) { return FALSE; } else { return TRUE; } } static void got_encrypted_msg(PurpleConnection *gc, const char* name, char **message){ unsigned char send_key_sum[KEY_DIGEST_LENGTH], recv_key_sum[KEY_DIGEST_LENGTH]; char *tmp_msg=0; crypt_key *priv_key, *pub_key; int msg_pos = 0; PurpleConversation* conv; purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "got_encrypted_msg\n"); if ( (sscanf(*message, ": S%10c: R%10c%n", send_key_sum, recv_key_sum, &msg_pos) < 2) || (msg_pos == 0) ) { purple_debug(PURPLE_DEBUG_WARNING, "pidgin-encryption", "Garbled msg header\n"); return; } priv_key = PE_find_key_by_name(PE_my_priv_ring, gc->account->username, gc->account); pub_key = PE_get_key(gc, name); if (strncmp((char*)priv_key->digest, (char*)recv_key_sum, KEY_DIGEST_LENGTH) != 0) { /* Someone sent us a message, but didn't use our correct public key */ PE_send_key(gc->account, name, 1, 0); purple_debug(PURPLE_DEBUG_WARNING, "pidgin-encryption", "Digests aren't same: {%*s} and {%*s}\n", KEY_DIGEST_LENGTH, priv_key->digest, KEY_DIGEST_LENGTH, recv_key_sum); conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, gc->account); if (conv != 0) { purple_conversation_write(conv, 0, _("Received message encrypted with wrong key"), PURPLE_MESSAGE_SYSTEM, time((time_t)NULL)); } else { purple_debug(PURPLE_DEBUG_WARNING, "pidgin-encryption", "Received msg with wrong key, " "but can't write err msg to conv: %s\n", name); } g_free(*message); *message = NULL; return; } if (pub_key && (strncmp((char*)pub_key->digest, (char*)send_key_sum, KEY_DIGEST_LENGTH) != 0)) { /* We have a key for this guy, but the digest didn't match. Store the message */ /* and ask for a new key */ PE_del_key_from_ring(PE_buddy_ring, name, gc->account); pub_key = PE_get_key(gc, name); /* will be 0 now */ } if (pub_key == 0) { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "g_e_m: Storing message on Show stack\n"); PE_store_msg(name, gc, *message, &first_inc_msg, &last_inc_msg); g_free(*message); *message = NULL; return; } memmove(*message, *message + msg_pos, strlen(*message + msg_pos) + 1); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "attempting decrypt on '%s'\n", *message); if (decrypt_msg(&tmp_msg, *message, name, priv_key, pub_key) < 0) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error in decrypt\n"); conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, gc->account); if (conv != 0) { purple_conversation_write(conv, 0, _("Error in decryption- asking for resend..."), PURPLE_MESSAGE_SYSTEM, time((time_t)NULL)); } else { purple_debug(PURPLE_DEBUG_WARNING, "pidgin-encryption", "Asking for resend, but can't write err msg to conv: %s\n", name); } PE_send_key(gc->account, name, 1, tmp_msg); g_free(*message); if (tmp_msg) g_free(tmp_msg); *message = NULL; return; } /* Successful Decryption */ /* Note- we're feeding purple an arbitrarily formed message, which could potentially have lots of nasty control characters and stuff. But, that has been tested, and at present, at least, Purple won't barf on any characters that we give it. As an aside- Purple does now use g_convert() to convert to UTF-8 from other character streams. If we wanted to be all i18n, we could do the same, and even include the encoding type with the message. We're not all that, at least not yet. */ /* Why the extra space (and the extra buffered copy)? Well, the * * purple server.c code does this, and having the extra space seems * * to prevent at least one possible type of crash. Pretty scary. */ g_free(*message); *message = g_malloc(MAX(strlen(tmp_msg) + 1, PE_BUF_LONG)); strcpy(*message, tmp_msg); g_free(tmp_msg); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Msg rcv:'%s'\n", *message); } /* Get account-specific message size limit*/ static int PE_get_msg_size_limit(PurpleAccount *acct) { const char* protocol_id = purple_account_get_protocol_id(acct); if (strcmp(protocol_id, "prpl-yahoo") == 0) { return 945; } else if (strcmp(protocol_id, "prpl-msn") == 0) { return 1500; /* This may be too small... somewhere in the 1500-1600 (+ html on front/back) */ } else { /* Well, ok, this isn't too exciting. Someday we can actually check */ /* to see what the real limits are. For now, 2500 works for everyone */ /* but Yahoo. */ return 2500; } } static void PE_send_msg_cb(PurpleAccount *acct, char *who, char **message, void* data) { char *out_msg, *crypt_msg = 0; char *dupname = g_strdup(purple_normalize(acct, who)); int msgsize; const char msg_format[] = "%s: Msg:S%.10s:R%.10s: Len %d:%s%s"; PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, acct); crypt_key *our_key, *his_key; GSList *cur_msg; GQueue *sent_msg_queue; PE_SentMessage *sent_msg_item; int unencrypted_size_limit, msg_size_limit; int baggage_size; char baggage[PE_BUF_LONG]; const gchar* header = g_hash_table_lookup(header_table, purple_account_get_protocol_id(acct)); const gchar* footer = g_hash_table_lookup(footer_table, purple_account_get_protocol_id(acct)); const gchar* notify = g_hash_table_lookup(notify_table, purple_account_get_protocol_id(acct)); int conv_breaks_html = 0; if (g_hash_table_lookup(broken_users, dupname)) { conv_breaks_html = 1; } if (!header || conv_breaks_html) header = header_default; if (!footer || conv_breaks_html) footer = ""; msg_size_limit = PE_get_msg_size_limit(acct); /* who: name that you are sending to */ /* gc->username: your name */ purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "send_msg: %s\n", who); /* Since we don't have a periodic callback, we do some housekeeping here */ purple_conversation_foreach(reap_old_sent_messages); /* Message might have been eaten by another plugin: */ if ((message == NULL) || (*message == NULL)) { g_free(dupname); return; } if (conv == NULL) { conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, who); } if (PE_get_tx_encryption(conv) == FALSE) { if (notify && purple_prefs_get_bool("/plugins/gtk/encrypt/broadcast_notify") && !PE_has_been_notified(conv)) { PE_set_notified(conv, TRUE); if (PE_msg_starts_with_link(*message) == TRUE) { /* This is a hack- AOL's client has a bug in the html parsing so that adjacent links (like ) get concatenated (into ). So we insert a space if the first thing in the message is a link. */ out_msg = g_strconcat(notify, " ", *message, NULL); } else { out_msg = g_strconcat(notify, *message, NULL); } g_free(*message); *message = out_msg; } purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Outgoing Msg::%s::\n", *message); g_free(dupname); return; } purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "send_msg B: %s, %p, %p, %p\n", who, &PE_my_priv_ring, acct, conv); our_key = PE_find_own_key_by_name(&PE_my_priv_ring, acct->username, acct, conv); if (!our_key) { *message[0] = 0; /* Nuke message so it doesn't look like it was sent. */ /* find_own_key (above) will have displayed error messages */ purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "leaving\n"); g_free(dupname); return; } his_key = PE_get_key(acct->gc, dupname); if (his_key == 0) { /* Don't have key for this guy yet */ /* PE_get_key will have sent the key request, just let user know */ purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "requesting key\n"); purple_conversation_write(conv, 0, _("Requesting key..."), PURPLE_MESSAGE_SYSTEM, time((time_t)NULL)); PE_store_msg(who, acct->gc, *message, &first_out_msg, &last_out_msg); } else { /* We have a key. Encrypt and send. */ purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "has key (%s)\n", dupname); baggage_size = snprintf(baggage, sizeof(baggage), msg_format, header, our_key->digest, his_key->digest, 10000, "", footer); baggage_size = MIN(baggage_size, sizeof(baggage) - 1); /* Warning: message_split keeps static copies, so if our */ /* caller uses it, we're hosed. Looks like nobody else */ /* uses it now, though. */ unencrypted_size_limit = PE_calc_unencrypted_size(our_key, his_key, msg_size_limit - baggage_size); cur_msg = PE_message_split(*message, unencrypted_size_limit); while (cur_msg) { gchar* disp_msg; if (purple_prefs_get_bool("/plugins/gtk/encrypt/show_inline_icons")) { /* add our smiley to front of message */ if (((gchar*)cur_msg->data)[0] == '/') { /* doh, starting with a /command, so put the smiley after the /command */ gchar** slashsplit = g_strsplit(cur_msg->data, " ", 2); disp_msg = g_strconcat(slashsplit[0], " ", CRYPTO_SMILEY, " ", slashsplit[1], NULL); g_strfreev(slashsplit); } else { disp_msg = g_strconcat(CRYPTO_SMILEY, " ", cur_msg->data, NULL); } } else { /* no smiley at front of message */ disp_msg = g_strdup(cur_msg->data); } purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "im_write: %s\n", dupname); purple_conv_im_write(PURPLE_CONV_IM(conv), NULL, disp_msg, PURPLE_MESSAGE_SEND, time((time_t)NULL)); g_free(disp_msg); /* Add message to stash of sent messages: in case a key or nonce is wrong, we */ /* can then re-send the message when asked. */ sent_msg_queue = g_hash_table_lookup(conv->data, "sent messages"); sent_msg_item = g_malloc(sizeof(PE_SentMessage)); sent_msg_item->time = time(0); sent_msg_item->id = PE_make_key_id(his_key); /* current nonce value */ sent_msg_item->msg = g_strdup(cur_msg->data); g_queue_push_head(sent_msg_queue, sent_msg_item); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Enc for send: '%s'\n", (char*)cur_msg->data); PE_encrypt_signed(&crypt_msg, cur_msg->data, our_key, his_key); msgsize = strlen(crypt_msg); out_msg = g_malloc(msgsize + baggage_size + 1); sprintf(out_msg, msg_format, header, our_key->digest, his_key->digest, msgsize, crypt_msg, footer); serv_send_im(acct->gc, who, out_msg, 0); /* emit the "sent-im-msg" event, which will cause sounds to get played, etc*/ purple_signal_emit(purple_conversations_get_handle(), "sent-im-msg", acct, purple_conversation_get_name(conv), out_msg); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "send_im: %s: %u\n", who, (unsigned)strlen(out_msg)); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "outgoing:%s:\n", out_msg); g_free(out_msg); g_free(crypt_msg); cur_msg = cur_msg->next; /* if (purple_prefs_get_bool("/pidgin/conversations/im/hide_on_send")) { purple_window_hide(purple_conversation_get_window(conv)); } */ } } *message[0] = 0; g_free(dupname); return; } void PE_resend_msg(PurpleAccount* acct, const char* name, gchar *msg_id) { char *out_msg, *crypt_msg = 0, *msg = 0; PurpleConversation* conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, acct); int msgsize; const char msg_format[] = "%s: Msg:S%.10s:R%.10s: Len %d:%s%s"; crypt_key *our_key, *his_key; GQueue *sent_msg_queue; PE_SentMessage *sent_msg_item; int baggage_size; char baggage[PE_BUF_LONG]; const gchar *header, *footer; int conv_breaks_html = 0; if (msg_id == 0) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Bad call to resend_msg: %p %p\n", conv, msg_id); return; } if (conv == 0) { conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, name); } header = g_hash_table_lookup(header_table, purple_account_get_protocol_id(acct)); footer = g_hash_table_lookup(footer_table, purple_account_get_protocol_id(acct)); if (g_hash_table_lookup(broken_users, name)) { conv_breaks_html = 1; } if (!header || conv_breaks_html) header = header_default; if (!footer || conv_breaks_html) footer = ""; /*Sometimes callers don't know whether there's a msg to send... */ if (msg_id == 0 || conv == 0) return; purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "resend_encrypted_msg: %s:%s\n", conv->name, msg_id); our_key = PE_find_key_by_name(PE_my_priv_ring, conv->account->username, conv->account); his_key = PE_find_key_by_name(PE_buddy_ring, name, conv->account); if (his_key == 0) { /* Don't have key for this guy */ purple_conversation_write(conv, 0, _("No key to resend message. Message lost."), PURPLE_MESSAGE_SYSTEM, time((time_t)NULL)); } else { /* We have a key. Encrypt and send. */ sent_msg_queue = g_hash_table_lookup(conv->data, "sent messages"); /* Root through the queue looking for the right message. Any that are older than this */ /* one we will throw out, since they would have already been asked for. */ while (!g_queue_is_empty(sent_msg_queue)) { sent_msg_item = g_queue_pop_tail(sent_msg_queue); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Examining Message: %s\n", sent_msg_item->id); if (strcmp(sent_msg_item->id, msg_id) == 0) { /* This is the one to resend */ msg = sent_msg_item->msg; g_free(sent_msg_item->id); g_free(sent_msg_item); break; } /* Not the one to resend: pitch it */ purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", " Deleted\n"); g_free(sent_msg_item->id); g_free(sent_msg_item->msg); g_free(sent_msg_item); } if (msg) { baggage_size = snprintf(baggage, sizeof(baggage), msg_format, header, our_key->digest, his_key->digest, 10000, "", footer); baggage_size = MIN(baggage_size, sizeof(baggage) - 1); PE_encrypt_signed(&crypt_msg, msg, our_key, his_key); msgsize = strlen(crypt_msg); out_msg = g_malloc(msgsize + baggage_size + 1); sprintf(out_msg, msg_format, header, our_key->digest, his_key->digest, msgsize, crypt_msg, footer); purple_conversation_write(conv, 0, "Resending...", PURPLE_MESSAGE_SYSTEM, time((time_t)NULL)); serv_send_im(conv->account->gc, name, out_msg, 0); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "resend_im: %s: %u\n", name, (unsigned)strlen(out_msg)); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "resend outgoing:%s:\n", out_msg); g_free(msg); g_free(out_msg); g_free(crypt_msg); } else { purple_conversation_write(conv, 0, _("Outgoing message lost."), PURPLE_MESSAGE_SYSTEM, time((time_t)NULL)); } } } static void PE_new_conv(PurpleConversation *conv) { purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "New conversation\n"); if ((conv != NULL) && (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)) { g_hash_table_insert(conv->data, g_strdup("sent messages"), g_queue_new()); g_hash_table_insert(conv->data, g_strdup("sent_capable"), FALSE); PE_add_smiley(conv); PE_sync_state(conv); if (unrequited_capable_who) { if (strcmp(unrequited_capable_who, purple_conversation_get_name(conv)) == 0) { PE_set_capable(conv, TRUE); if (purple_prefs_get_bool("/plugins/gtk/encrypt/encrypt_if_notified")) { PE_set_tx_encryption(conv, TRUE); } } g_free(unrequited_capable_who); unrequited_capable_who = 0; } } else { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "New conversation IS NULL\n"); } } static void PE_new_conv_cb(PurpleConversation *conv, void* data) { PE_new_conv(conv); } static void PE_updated_conv_cb(PurpleConversation *conv, void* data) { PE_add_smiley(conv); PE_sync_state(conv); } static void PE_del_conv_cb(PurpleConversation *conv, void* data) { GQueue *sent_msg_queue; if ((conv != NULL) && (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)) { purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Got conversation delete event for %s\n", conv->name); /* Remove cached copies of sent messages */ reap_all_sent_messages(conv); sent_msg_queue = g_hash_table_lookup(conv->data, "sent messages"); g_queue_free(sent_msg_queue); g_hash_table_remove(conv->data, "sent messages"); /* Remove to-be-sent-on-receipt-of-key messages: */ PE_delete_stored_msgs(conv->account, purple_normalize(conv->account, conv->name)); PE_buddy_ring = PE_del_key_from_ring(PE_buddy_ring, purple_normalize(conv->account, conv->name), conv->account); /* Would be good to add prefs for these, but for now, just reset: */ PE_free_state(conv); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Finished conversation delete event for %s\n", conv->name); /* button widgets (hopefully) destroyed on window close */ /* hash table entries destroyed on hash table deletion, except */ /* for any dynamically allocated values (keys are ok). */ } } static void PE_headers_init() { header_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); footer_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); notify_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); g_hash_table_insert(header_table, g_strdup("prpl-toc"), g_strdup("*** Encrypted with the Gaim-Encryption plugin ")); g_hash_table_insert(notify_table, g_strdup("prpl-toc"), g_strdup("")); g_hash_table_insert(header_table, g_strdup("prpl-oscar"), g_strdup("*** Encrypted with the Gaim-Encryption plugin ")); g_hash_table_insert(notify_table, g_strdup("prpl-oscar"), g_strdup("")); g_hash_table_insert(header_table, g_strdup("prpl-aim"), g_strdup("*** Encrypted with the Gaim-Encryption plugin ")); g_hash_table_insert(notify_table, g_strdup("prpl-aim"), g_strdup("")); /* If jabber stops stripping HTML, we can go back to these headers */ /* g_hash_table_insert(header_table, g_strdup("prpl-jabber"), */ /* g_strdup("*** Encrypted with the Gaim-Encryption plugin ")); */ /* g_hash_table_insert(notify_table, g_strdup("prpl-jabber"), */ /* g_strdup(" ")); */ g_hash_table_insert(header_table, g_strdup("prpl-jabber"), g_strdup("*** Encrypted with the Gaim-Encryption plugin ")); g_hash_table_insert(footer_table, g_strdup("prpl-jabber"), g_strdup(" ")); g_hash_table_insert(notify_table, g_strdup("prpl-jabber"), g_strdup(" ")); header_default = g_strdup("*** Encrypted :"); header_broken = g_strdup("*** Encrypted with the Gaim-Encryption plugin"); broken_users = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); } /* #define CRYPT_HEADER "*** Encrypted with the Gaim-Encryption plugin " */ /* #define CRYPT_NOTIFY_HEADER "" */ // Jabber seems to turn our double quotes into single quotes at times, so define // the same headers, only with single quotes. Lengths MUST be the same as above /* #define CRYPT_HEADER_MANGLED "*** Encrypted with the Gaim-Encryption plugin " */ static void init_prefs() { /* These only add/set a pref if it doesn't currently exist: */ int default_width; if (purple_prefs_get_type("/plugins/gtk/encrypt/accept_unknown_key") == PURPLE_PREF_NONE) { /* First time loading the plugin, since we don't have our prefs set yet */ /* so up the default window width to accomodate new buttons */ default_width = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/im/default_width"); if (default_width == 410) { /* the stock pidgin default width */ purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/im/default_width", 490); } } purple_prefs_add_none("/plugins/gtk"); purple_prefs_add_none("/plugins/gtk/encrypt"); purple_prefs_add_bool("/plugins/gtk/encrypt/accept_unknown_key", FALSE); purple_prefs_add_bool("/plugins/gtk/encrypt/accept_conflicting_key", FALSE); purple_prefs_add_bool("/plugins/gtk/encrypt/encrypt_response", TRUE); purple_prefs_add_bool("/plugins/gtk/encrypt/broadcast_notify", FALSE); purple_prefs_add_bool("/plugins/gtk/encrypt/encrypt_if_notified", TRUE); purple_prefs_add_string("/plugins/gtk/encrypt/key_path", ""); purple_prefs_add_string("/plugins/gtk/encrypt/key_path_displayed", purple_user_dir()); PE_pref_callback_id = purple_prefs_connect_callback(PE_plugin_handle, "/plugins/gtk/encrypt/key_path_displayed", PE_prefs_changed_cb, 0); PE_convert_legacy_prefs(); } /* Called by Purple when plugin is first loaded */ static gboolean PE_plugin_load(PurplePlugin *h) { void *conv_handle; #ifdef ENABLE_NLS bindtextdomain (ENC_PACKAGE, LOCALEDIR); bind_textdomain_codeset (ENC_PACKAGE, "UTF-8"); setlocale(LC_ALL, ""); #endif purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Compiled with Purple '%d.%d.%d', running with Purple '%s'.\n", PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, PURPLE_MICRO_VERSION, purple_core_get_version()); init_prefs(); conv_handle = purple_conversations_get_handle(); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "plugin_load called\n"); PE_plugin_handle = h; PE_state_init(); PE_pixmap_init(); if (!rsa_nss_init()) { return FALSE; } PE_key_rings_init(); PE_nonce_map_init(); PE_state_ui_init(); PE_headers_init(); purple_signal_connect(conv_handle, "receiving-im-msg", h, PURPLE_CALLBACK(PE_got_msg_cb), NULL); purple_signal_connect(conv_handle, "sending-im-msg", h, PURPLE_CALLBACK(PE_send_msg_cb), NULL); purple_signal_connect(conv_handle, "conversation-created", h, PURPLE_CALLBACK(PE_new_conv_cb), NULL); purple_signal_connect(conv_handle, "conversation-updated", h, PURPLE_CALLBACK(PE_updated_conv_cb), NULL); purple_signal_connect(conv_handle, "deleting-conversation", h, PURPLE_CALLBACK(PE_del_conv_cb), NULL); purple_signal_connect(pidgin_log_get_handle(), "log-displaying", h, PURPLE_CALLBACK(PE_log_displaying_cb), NULL); purple_signal_connect(purple_blist_get_handle(), "blist-node-extended-menu", h, PURPLE_CALLBACK(PE_buddy_menu_cb), NULL); purple_conversation_foreach(PE_sync_state); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "done loading\n"); return TRUE; } /* Called by Purple when plugin is removed */ static gboolean PE_plugin_unload(PurplePlugin *h) { purple_signals_disconnect_by_handle(h); purple_prefs_disconnect_callback(PE_pref_callback_id); PE_config_unload(); purple_conversation_foreach(PE_remove_decorations); PE_my_priv_ring = PE_clear_ring(PE_my_priv_ring); PE_my_pub_ring = PE_clear_ring(PE_my_pub_ring); PE_buddy_ring = PE_clear_ring(PE_buddy_ring); PE_state_delete(); PE_state_ui_delete(); return TRUE; } static PidginPluginUiInfo ui_info = { PE_get_config_frame, 0, /* page_num (Reserved) */ /* padding */ NULL, NULL, NULL, NULL }; static PurplePluginInfo info = { PURPLE_PLUGIN_MAGIC, /**< I'm a plugin! */ PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, PURPLE_PLUGIN_STANDARD, /**< type */ PIDGIN_PLUGIN_TYPE, /**< ui_requirement */ 0, /**< flags */ NULL, /**< dependencies */ PURPLE_PRIORITY_DEFAULT, /**< priority */ ENCRYPT_PLUGIN_ID, /**< id */ 0, /**< name */ ENC_VERSION, /**< version */ 0, /** summary */ 0, /** description */ 0, /**< author */ ENC_WEBSITE, /**< homepage */ PE_plugin_load, /**< load */ PE_plugin_unload, /**< unload */ NULL, /**< destroy */ &ui_info, /**< ui_info */ NULL, /**< extra_info */ NULL, /**< prefs_info */ NULL, /**< actions */ /* padding */ NULL, NULL, NULL, NULL }; static void init_plugin(PurplePlugin *plugin) { #ifdef ENABLE_NLS bindtextdomain (ENC_PACKAGE, LOCALEDIR); bind_textdomain_codeset (ENC_PACKAGE, "UTF-8"); setlocale(LC_ALL, ""); #endif info.name = _("Pidgin-Encryption"); info.summary = _("Encrypts conversations with RSA encryption."); info.description = _("RSA encryption with keys up to 4096 bits," " using the Mozilla NSS crypto library.\n"); /* Translators: Feel free to add your name to the author field, with text like */ /* "Bill Tompkins, translation by Phil McGee" */ info.author = _("Bill Tompkins"); } PURPLE_INIT_PLUGIN(pidgin_encryption, init_plugin, info); pidgin-encryption-3.1/nss_oaep.c0000644000175100017510000001123711365171052013722 00000000000000/* * Pidgin-Encryption OAEP padding routines, from PKCS#1 v2.1 * * Copyright (C) 2003 William Tompkins * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #include #include /* for g_assert; PORT_Assert seems disabled... */ #include #include "nss_mgf1.h" #include "nss_oaep.h" static const unsigned char SHA1_NullHash[20] = {0xda, 0x39, 0xa3, 0xee, 0x5e, 0x6b, 0x4b, 0x0d, 0x32, 0x55, 0xbf, 0xef, 0x95, 0x60, 0x18, 0x90, 0xaf, 0xd8, 0x07, 0x09}; static const unsigned int hlen = 20; /* SHA1 hash length */ int oaep_pad_block(unsigned char* padded_data, unsigned int padded_len, const unsigned char* data, unsigned int data_len) { unsigned char* seed_pos = padded_data + 1; unsigned char* db_pos = seed_pos + hlen; unsigned char* lhash_pos = db_pos; unsigned char* ps_pos = lhash_pos + hlen; unsigned char* msg_pos = padded_data + padded_len - data_len; unsigned char* padded_end = padded_data + padded_len; /* one AFTER end */ int ps_len = msg_pos - ps_pos; SECStatus rv; *padded_data = 0; /* fill seed_pos with hlen random bytes */ rv = PK11_GenerateRandom(seed_pos, hlen); g_assert(rv == SECSuccess); /* fill lhash_pos with sha-1 constant => empty label*/ PORT_Memcpy(lhash_pos, SHA1_NullHash, hlen); /* fill ps with 00 00 00 ... 00 01 */ if (ps_len < 1) return 0; PORT_Memset(ps_pos, 0, ps_len - 1); ps_pos[ps_len - 1] = 1; /* fill msg_pos with data */ PORT_Memcpy(msg_pos, data, data_len); /* Do the masking */ mgf1(db_pos, padded_end - db_pos, seed_pos, hlen); mgf1(seed_pos, hlen, db_pos, padded_end - db_pos); return 1; } int oaep_unpad_block(unsigned char* unpadded_data, unsigned int * unpadded_len, unsigned char* orig_padded_data, unsigned padded_len) { unsigned char* padded_data = PORT_Alloc(padded_len); unsigned char* seed_pos = padded_data + 1; unsigned char* db_pos = seed_pos + hlen; unsigned char* lhash_pos = db_pos; unsigned char* ps_pos = lhash_pos + hlen; unsigned char* padded_end = padded_data + padded_len; unsigned char* msg_pos; PORT_Memcpy(padded_data, orig_padded_data, padded_len); *unpadded_len = 0; mgf1(seed_pos, hlen, db_pos, padded_len - (db_pos - padded_data)); mgf1(db_pos, padded_len - (db_pos - padded_data), seed_pos, hlen); if ((PORT_Memcmp(lhash_pos, SHA1_NullHash, hlen) != 0) || (*padded_data != 0)) { PORT_ZFree(padded_data, padded_len); return 0; } msg_pos = ps_pos; while ((msg_pos < padded_end) && (*msg_pos == 0)) { ++msg_pos; } if ((msg_pos == padded_end) || (*msg_pos != 1)) { PORT_ZFree(padded_data, padded_len); return 0; } msg_pos++; *unpadded_len = padded_len + padded_data - msg_pos; PORT_Memcpy(unpadded_data, msg_pos, *unpadded_len); PORT_ZFree(padded_data, padded_len); return 1; } unsigned int oaep_max_unpadded_len(unsigned int padded_len) { int extrastuff = 2 *hlen + 2; if (padded_len < extrastuff) return 0; return padded_len - extrastuff; } void oaep_test() { int mod_size = 512/8; unsigned char data[4096/8]; unsigned char pad_data[4096/8]; int data_size; unsigned char data_out[4096/8]; unsigned int data_out_len; SECStatus rv; /* overkill, but what the hey. */ while (mod_size <= 4096/8) { rv = PK11_GenerateRandom(data, oaep_max_unpadded_len(mod_size)); g_assert(rv == SECSuccess); for (data_size = 0; data_size <= oaep_max_unpadded_len(mod_size); ++data_size) { g_assert( oaep_pad_block(pad_data, mod_size, data, data_size) ); g_assert( oaep_unpad_block(data_out, &data_out_len, pad_data, mod_size) ); g_assert( memcmp(data_out, data, data_size) == 0); g_assert( data_size == data_out_len); } mod_size *= 2; } } pidgin-encryption-3.1/nss_mgf1.c0000644000175100017510000000556711365171052013641 00000000000000/* * Pidgin-Encryption MGF-1 Mask Generation Function (see PKCS#1 v2.1) * * Copyright (C) 2003 William Tompkins * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include /* for g_assert; PORT_Assert seems disabled... */ #include #include "nss_mgf1.h" static const SECOidTag Hash_OID = SEC_OID_SHA1; /* Mask Generation function: From a seed, produce a variably sized mask, and */ /* XOR it with the maskee. */ /* Note- this is an inefficient implementation, as we repeatedly hash the */ /* seed. If we saved the intermediate context, we'd probably save */ /* a bunch of time. But, the NSS exported interface doesn't let us */ /* do that easily, so we don't. */ static void memxor (unsigned char* a, unsigned char* b, int len) { while (len-- > 0) { *a++ ^= *b++; } } int mgf1(unsigned char* maskee, unsigned int maskee_len, unsigned char* seed, unsigned seed_len) { unsigned char* extended_seed = PORT_Alloc(seed_len + 4); unsigned char* hash_out; unsigned int hash_len; unsigned long int counter = 0; unsigned int counter_pos = seed_len; unsigned int maskee_pos = 0; unsigned int cur_block_size; SECStatus rv; hash_len = 20; hash_out = PORT_Alloc(hash_len); PORT_Memcpy(extended_seed, seed, seed_len); while (maskee_pos < maskee_len) { /* Store counter at counter_pos, msb first */ extended_seed[counter_pos] = (unsigned char) ((counter >> 24) & 0xff); extended_seed[counter_pos+1] = (unsigned char) ((counter >> 16) & 0xff); extended_seed[counter_pos+2] = (unsigned char) ((counter >> 8) & 0xff); extended_seed[counter_pos+3] = (unsigned char) (counter & 0xff); rv = PK11_HashBuf(Hash_OID, hash_out, extended_seed, seed_len + 4); g_assert(rv == SECSuccess); cur_block_size = (maskee_len - maskee_pos); if (cur_block_size > hash_len) cur_block_size = hash_len; memxor(maskee + maskee_pos, hash_out, cur_block_size); maskee_pos += cur_block_size; ++counter; } PORT_ZFree(extended_seed, seed_len+4); PORT_ZFree(hash_out, hash_len); return 1; } pidgin-encryption-3.1/prefs.c0000644000175100017510000001236111365171052013231 00000000000000/* Pidgin-Encryption Legacy Preferences file interface */ /* Copyright (C) 2001-2007 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #include "internal.h" #include #include #include #include #if GLIB_CHECK_VERSION(2,6,0) # include #else # define g_freopen freopen # define g_fopen fopen # define g_rmdir rmdir # define g_remove remove # define g_unlink unlink # define g_lstat lstat # define g_stat stat # define g_mkdir mkdir # define g_rename rename # define g_open open #endif #include #include #include #include "prefs.h" #include "util.h" #include "prefs.h" #include "config_ui.h" #include "keys.h" #ifdef _WIN32 #include "win32dep.h" #endif void PE_prefs_changed_cb(const char* name, PurplePrefType type, gconstpointer val, gpointer data) { const char * displayedpath = purple_prefs_get_string("/plugins/gtk/encrypt/key_path_displayed"); const char * basepath = purple_prefs_get_string("/plugins/gtk/encrypt/key_path"); const char * previous_displayedpath = basepath; if (basepath && basepath[0] == 0) { /* if the basepath is blank, then the previous displayed path was actually the users's Purple dir */ previous_displayedpath = purple_user_dir(); } /* did the displayedpath get changed? */ if (basepath && displayedpath && strcmp(displayedpath, previous_displayedpath) != 0) { /* yes, so set the underlying basepath pref appropriately */ if (strcmp(displayedpath, purple_user_dir()) == 0) { purple_prefs_set_string("/plugins/gtk/encrypt/key_path", ""); } else { purple_prefs_set_string("/plugins/gtk/encrypt/key_path", displayedpath); } } if (PE_check_base_key_path()) { PE_key_rings_init(); PE_config_update(); } else { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "pref_changed_cb: %s\n", (char*)val); if (g_path_is_absolute(val)) { PE_config_show_invalid_keypath(); } else { purple_prefs_set_string("/plugins/gtk/encrypt/key_path", ""); purple_prefs_set_string("/plugins/gtk/encrypt/key_path_displayed", purple_user_dir()); PE_config_show_nonabsolute_keypath(); } } } /* Old self-kept preferences: only here to convert to new Purple-kept prefs */ static gboolean Prefs_accept_key_unknown = FALSE; static gboolean Prefs_accept_key_conflict = FALSE; /*static gboolean Prefs_encrypt_response = TRUE; */ static gboolean Prefs_broadcast_notify = FALSE; static gboolean Prefs_encrypt_if_notified = TRUE; const static char key_file[] = "encrypt.prefs"; static gboolean parse_key_val(char* val, gboolean def) { if (strcmp(val, "TRUE") == 0) { return TRUE; } if (strcmp(val, "FALSE") == 0) { return FALSE; } return def; } void PE_convert_legacy_prefs() { char key[51], value[51]; char* filename = g_build_filename(purple_user_dir(), key_file, NULL); FILE* fp = g_fopen(filename, "r"); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Checking for old prefs file (%s)...\n", filename); if (fp == NULL) { g_free(filename); return; } purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Converting...\n"); while (fscanf(fp, "%50s%50s", key, value) != EOF) { if (strcmp(key, "AcceptUnknown") == 0) { purple_prefs_set_bool("/plugins/gtk/encrypt/accept_unknown_key", parse_key_val(value, Prefs_accept_key_unknown)); } else if (strcmp(key, "AcceptDuplicate") == 0) { purple_prefs_set_bool("/plugins/gtk/encrypt/accept_conflicting_key", parse_key_val(value, Prefs_accept_key_conflict)); } else if (strcmp(key, "BroadcastNotify") == 0) { purple_prefs_set_bool("/plugins/gtk/encrypt/broadcast_notify", parse_key_val(value, Prefs_broadcast_notify)); } else if (strcmp(key, "EncryptIfNotified") == 0) { purple_prefs_set_bool("/plugins/gtk/encrypt/encrypt_if_notified", parse_key_val(value, Prefs_encrypt_if_notified)); } else { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Bad Preference Key %s\n", value); } } fclose(fp); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Deleting old prefs\n"); unlink(filename); g_free(filename); } pidgin-encryption-3.1/cryptutil.c0000644000175100017510000002073711365171052014157 00000000000000/* Misc utility functions for the Pidgin-Encryption plugin */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #include "internal.h" #include #include #include #include #include #include #include #include #ifdef _WIN32 #include #endif #include "nls.h" #include "cryptutil.h" #include "rsa_nss.h" #include void PE_clear_string(char* s) { while(*s != 0) { *(s++) = 0; } } void PE_escape_name(GString* name) { int pos = 0; // Note: name->len and name->str can change as we modify name... while (pos < name->len) { switch (name->str[pos]) { case ' ': // space -> "\s" g_string_erase(name, pos, 1); g_string_insert(name, pos, "\\s"); pos += 2; break; case ',': // comma -> "\c" g_string_erase(name, pos, 1); g_string_insert(name, pos, "\\c"); pos += 2; break; case '\\': // backslash -> "\\" g_string_erase(name, pos, 1); g_string_insert(name, pos, "\\"); pos += 2; break; default: ++pos; break; } } } void PE_unescape_name(char* origname) { GString *name = g_string_new(origname); int pos = 0; while (pos < name->len) { if (name->str[pos] == '\\') { g_string_erase(name, pos, 1); switch (name->str[pos]) { case 's': // \s -> space name->str[pos] = ' '; ++pos; break; case 'c': // \c -> comma name->str[pos] = ','; ++pos; break; default: // leave the char that followed the backslash ++pos; break; } } else { ++pos; } } // string can only be shorter, so this copy is ok strcpy(origname, name->str); g_string_free(name, TRUE); } /* Convert 'num' bytes into an ascii string. */ void PE_bytes_to_str(char *str, unsigned char *bytes, int num) { char* tmp = BTOA_DataToAscii(bytes, num); GString* tmp2 = g_string_new(tmp); PE_strip_returns(tmp2); strcpy(str, tmp2->str); PORT_Free(tmp); g_string_free(tmp2, TRUE); } /* Convert ascii string back into bytes. Returns number of bytes */ unsigned int PE_str_to_bytes(unsigned char *bytes, char *cstr) { unsigned int tmplen; unsigned char* tmp = ATOB_AsciiToData(cstr, &tmplen); if (tmp == NULL) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", _("Invalid Base64 data, length %u\n"), (unsigned)strlen(cstr)); return 0; } memcpy(bytes, tmp, tmplen); PORT_Free(tmp); return tmplen; } GString* PE_strip_returns(GString* s) { gchar *strippedStr, **strArray; int i; strArray = g_strsplit(s->str, "\n", 100); for (i = 0; strArray[i] != 0; ++i) { g_strstrip(strArray[i]); } strippedStr = g_strjoinv(0, strArray); g_string_assign(s, strippedStr); g_strfreev(strArray); g_free(strippedStr); return s; } gboolean PE_msg_starts_with_link(const char* c) { /* This seems easy. But, we need to filter out intermediate HTML (like ) as well. And, to be really compliant, we should parse things like "< a href=" (even if noone else seems to). */ while (*c != 0) { /* If we don't start with a tag, we can't start with a link */ if (*(c++) != '<') return FALSE; while (isspace(*c)) ++c; /* skip leading whitespace in tag */ if (*c == 'A' || *c == 'a') return TRUE; c = strchr(c, '>'); /* skip to end of tag */ if (*c) ++c; /* watch out for unclosed tags! */ } return FALSE; } /* Removed from Gaim/Pidgin, so added in here :) */ GSList *PE_message_split(char *message, int limit) { static GSList *ret = NULL; int lastgood = 0, curgood = 0, curpos = 0, len = strlen(message); gboolean intag = FALSE; if (ret) { GSList *tmp = ret; while (tmp) { g_free(tmp->data); tmp = g_slist_remove(tmp, tmp->data); } ret = NULL; } while (TRUE) { if (lastgood >= len) return ret; if (len - lastgood < limit) { ret = g_slist_append(ret, g_strdup(&message[lastgood])); return ret; } curgood = curpos = 0; intag = FALSE; while (curpos <= limit) { if (isspace(message[curpos + lastgood]) && !intag) curgood = curpos; if (message[curpos + lastgood] == '<') intag = TRUE; if (message[curpos + lastgood] == '>') intag = FALSE; curpos++; } if (curgood) { ret = g_slist_append(ret, g_strndup(&message[lastgood], curgood)); if (isspace(message[curgood + lastgood])) lastgood += curgood + 1; else lastgood += curgood; } else { /* whoops, guess we have to fudge it here */ ret = g_slist_append(ret, g_strndup(&message[lastgood], limit)); lastgood += limit; } } } /* Old versions of utility functions, using Base16 rather than Base64 */ /* Note: str will _NOT_ be null terminated. Its length will be returned from the function */ /* int PE_bytes_to_colonstr(unsigned char *str, unsigned char *bytes, int num) { */ /* int bytes_cursor=0, str_cursor=0; */ /* while (bytes_cursor < num) { */ /* sprintf(str + str_cursor, "%02x", bytes[bytes_cursor++]); */ /* str_cursor += 2; */ /* if (bytes_cursor < num) str[str_cursor++] = ':'; */ /* } */ /* return str_cursor; */ /* } */ /* /\* Note: str will _NOT_ be null terminated. Its length will be returned */ /* from the function *\/ */ /* int PE_bytes_to_str(unsigned char *str, unsigned char *bytes, int num) { */ /* int bytes_cursor=0, str_cursor=0; */ /* while (bytes_cursor < num) { */ /* sprintf(str + str_cursor, "%02x", bytes[bytes_cursor++]); */ /* str_cursor += 2; */ /* } */ /* return str_cursor; */ /* } */ /* /\* Note: str does not need to be null terminated. num bytes are pulled */ /* off the string (unless the end of the string is reached first). */ /* The number of chars pulled off the string is returned, or -1 */ /* if there is an error or the end of the string is reached first. *\/ */ /* int PE_nstr_to_bytes(unsigned char *bytes, unsigned char *nstr, int num) { */ /* int bytes_cursor, str_cursor = 0; */ /* unsigned char minibuf[3] = "00"; */ /* for (bytes_cursor = 0; bytes_cursor < num; ++bytes_cursor) { */ /* minibuf[0] = nstr[str_cursor++]; */ /* if (minibuf[0] == 0) return -1; */ /* minibuf[1] = nstr[str_cursor++]; */ /* if (minibuf[1] == 0) return -1; */ /* bytes[bytes_cursor] = (unsigned char) strtoul(minibuf, 0, 16); */ /* } */ /* return str_cursor; */ /* } */ /* /\* Note: cstr must be null terminated. Up to num bytes are pulled */ /* off the string (unless the end of the string is reached first). */ /* The number of bytes gotten is returned. */ /* A parse error returns -1 *\/ */ /* int PE_cstr_to_bytes(unsigned char *bytes, unsigned char *cstr, int num) { */ /* int bytes_cursor, str_cursor = 0; */ /* unsigned char minibuf[3] = "00"; */ /* for (bytes_cursor = 0; bytes_cursor < num; ++bytes_cursor) { */ /* minibuf[0] = cstr[str_cursor++]; */ /* if (minibuf[0] == 0) return bytes_cursor; */ /* minibuf[1] = cstr[str_cursor++]; */ /* if (minibuf[1] == 0) return -1; */ /* bytes[bytes_cursor] = (unsigned char) strtoul(minibuf, 0, 16); */ /* } */ /* return bytes_cursor; */ /* } */ pidgin-encryption-3.1/CHANGELOG0000644000175100017510000003332311365213701013157 00000000000000 3.1 If HTML is being stripped out of headers (for AIM) now fall back to non-HTML headers. Hopefully will avoid problems when AIM servers start breaking HTML again. Moved smiley file (crypto.png) Fixes for Win32 build (Michael Johnson) Better detection/correction of bad file permissions. Now attempts to switch an explicity specified key path to the users .pidgin directory. Fix for possible crash on startup. Fixes for various warnings w/GCC 4.1.3 Tamil translation (drtvasudevan) Simplified Chinese translation (Strong Chen) Portugese translation (Pedro Pinto) Updated German translation (Björn Voigt) Fix for crash on exit (Paul Aurich) 3.0 Updates for Pidgin/Purple transition Thanks to Florian Schäfer and Michael Johnson . 3.0b8 Bugfix for AIM with Gaim 2.0b6 3.0b7 Works with Gaim 2.0b5 Removed definition of GaimGtkLogViewer 3.0b6 Works with Gaim 2.0b4, various minor API changes Temporary definition of GaimGtkLogViewer for Gaim 2.0.0b4 3.0b5 Works with Gaim 2.0b3 Cleanup of configure's detection of NSS (Jory A Pratt) Bugfix in the protocol type check (Bastian Reich) Memory leaks on errors fixed (Max Kellermann) Swedish Translation Added (Daniel Nylander) 3.0b4 Fix to correctly show Rx status when tab is changed. Moved Tx menu into menu bar as a menu icon button Restored capability display Changed icon colors Memory Leak fixes (Stu Tomlinson) Lithuanian translation added (Andrius Stikonas) Norwegian (Nynorsk) translation added (Y J Landro) 3.0b3 Better smiley code, including log files now (Richard Laager) Move/Rename of Menu item (Richard Laager) Crypto-smileys are now an option (and default to off) Rx encryption status now displayed in the status area of the menu bar. Crypto-smileys in logs now display properly (Richard Laager) Misc code fixes (Richard Laager) Many translation updates 3.0b2 Changed path to smiley to be within Gaim's data dir. Moved any /commands in front of crypto-smiley. Removed some Auto-Reply tags to avoid having first msg show as auto-response. 3.0b1 Gaim 2.0 compatible Removed Rx/Tx buttons, added "smiley" to show status, and menu to enable encryption. Added pref for where key files get stored. Some better detection of corrupt key files. Turkish Translation Added (Ekrem Erdem). 2.38 Added #defines for older gtk to bypass gstdio Fixed flags on outgoing key messages to avoid un-idling Changed default auto-accept of unknown keys to false. Fixed debug output for version warning (Daniel Atallah) 2.37 Bugfix for possible double-free of buffer Bugfix for preference directories with unicode chars Relaxed checks on Gaim version to allow minor version bumps Same relaxed checks on the Win32 installer (Daniel Atallah) Change to intl code to compile on Solaris (Jonathan Wang) 2.36 Bugfix for users who use a non-default prefs directory Bugfix for Windows 2000 2.35 Workaround for Jabber bug in Gaim 2.34 Bugfix for crash with old key files 2.33 Added better key dialogs Bugfix for mangled incoming keys (Miah Gregory) Bugfix in name escaping code that affected Meanwhile users Hungarian translation added (Peter Tutervai) Czech translation added (Lubos Stanek) Chinese (trad) translation added (Tim Hsu) Russian translation added (Roman Sosenko) Ukranian translation added (Roman Sosenko) 2.32 Slovenian translation added (Martin Srebotnjak) Portugese translation added (Aury Fink Filho) Workaround for Debian not supporting NSS No debug output in unload to avoid Win32 crash on exit. 2.31 Dutch translation added (Menno Jonkers) Japanese translation added (Takeshi AIHANA) Italian translation added (Giacomo Succi) Danish translation added (Morten Brix Pedersen) Spanish translation added (Javier Fernández-Sanguino Peña) Changes to track the Gaim API (thanks Giacomo Succi, JP LaFleur, and Daniel Caujolle-Bert) 2.30 Gaim API tracking in button code (Stu Tomlinson) Bugfix for plugin unloading (Stu Tomlinson) Fix for translation in prefs strings (pre-plugin load) 2.29 Polish translation added (Marek Habersack) German translation added (Karim Malhas) 2.28 French translation added (Davy Defaud) Fixes for Gaim 0.80 API (Daniel Atallah) Bugfix for improper HTML-izing of unencrypted messages 2.27 Changes for Gaim 0.79 API. Minor bugfixes 2.26 New lock icons Auto-enlarge the default IM window size if plugin has never been loaded before Don't put icons on chat windows Fixes to make compatible with Gaim 0.78 BList API changes (Courtesy of Stu Tomlinson) Fix to make more compatible with other plugins (Courtesy of Casey Ho) Added MSN message length limit. 2.25 Compatible with new Gaim 0.77 plugin API. Fix for bug where old keys were not deleted when regenerated. Can now copy key fingerprints to clipboard from dialog. 2.24 Fixed a bug that caused crash on encrypted message received when no window was currently open. 2.23 Gaim 0.76 now removes or mangles HTML in most protocols. So, there is now a table of what header to use for each protocol, with the default being a non-html header. ICQ is tricky, since AIM does allow HTML, and ICQ doesn't. So ICQ gets the HTML headers, but we check to see if they got escaped on the way in to Gaim. A side effect of all this is that it is now safer to have Broadcast/Notify on, since it does nothing for most protocols that don't have native HTML. Changes to the configuration files to avoid hassles from duplicate PACKAGE_XXX vars from the gaim config.h. 2.22 Now attaches protocol to username, so the plugin doesn't get confused if you talk to BoB151 on AIM and BoB151 on MSN. This also robustifies some of the other conversation-finding code, for changing the lock icons, for example. This is a good thing. Only problem- old keys (in the known_keys file) won't have the protocol attached, so users will see the "Unknown key" for each buddy. Fixes for some crashes in parsing mangled header code. Thanks to Michael Wright for finding the problem. Fix for using HKCU vs HKLM rights on Windows install. 2.21 Another bugfix for updated NSS versions (esp 3.9 that ships with Gaim 0.75 on Windows) 2.20 Bugfix for gcc < 2.7.x More config updates and code simplification, courtesy of Daniel Atallah Should be functionally identical to 2.19, if 2.19 compiled for you 2.19 Updated for Gaim API 0.75 Those API changes allow better startup of NSS, which may solve some problems for MSN users. Changes to the way config is handled internally (Daniel Atallah) Gettext-friendlier code (Daniel Atallah) Bugfix for Mozilla 1.6b compatibility 2.18 New Windows installer (standalone now). Thanks Mike Campell and Daniel Atallah Detects protocol now, and shortens max message length for conversations on Yahoo. Also estimates message lengths correctly now. More defensiveness for buddy list crashes. 2.17 Added some defensiveness to avoid a crash in Gaim when asking for certain buddy info. 2.16 Updated for Gaim API 0.72 Fix for conversation close of non-buddy -> crash Hopeful fix for condition when you recieve a bad nonce but don't have a conversation window open for that person (caused lost message). 2.15 Updated for Gaim API 0.71 Added receive sounds when popping up key dialog boxes. 2.14 Fixed typo in configure file for folks who need to use --with-nspr-includes 2.13 Updated calls to send and write functions for changed Gaim API. Works with 0.70 2.12 Updated blist to work with Gaim 0.69 Added check on compiled vs. running Gaim versions Grabbed Gaim configure.ac's section on NSS/NSPR 2.11 Fix for code that doesn't compile on older gcc 2.10 Updates to event/signal system (for Gaim 0.68 release) Work around bug in gtkblist signal 2.09 Added Auto-Encrypt feature Fixed --with-nss-libs spec 2.08 Ditto of 2.06 (doh!) 2.07 Changes to configure system to include "." as an appended directory to try. Fix for case when user clicks on "No" when asked about accepting a key. Better handling of queued away messages. Now, if keys are known ahead of time, it should just work. Conversation windows only get auto-opened as a last resort. On conversation close, any queued outgoing messages that are awaiting a key are now deleted. This follows what a user would expect, since the message hasn't been displayed in the outgoing window yet. Refactored widget/capable/tx-rx-encryption-status code. Not a huge impact on behavior at present (except enabling better queued message support). Will enable cool new options in the future, like remembering whether to encrypt to a given buddy. 2.06 Oops, some ./configure type files were missing last release. No actual changes, just a full release this time. 2.05 New "standalone" configure system (thanks Jeff Squyres!) Updates to make compatible with 0.67 2.04 Changed broadcast header to break compatibility with 1.x plugin 2.03 Fixed problems that occured with new accounts. Now caches sent messages, and re-sends if there was a nonce problem (no more "garbled message" indications if a buddy logs out and logs back in in the middle of a conversation). Fixed icon problem that caused crashes on some platforms. 2.02 Fix mem leak/double free. Tweak to configure. 2.01 Fixed Yahoo problem Fixed (finally?!?) Jabber problem Better configure/makefile stuff, including NSS/NSPR location guessing. 2.00 Better detection of NSS and NSPR libraries. Fixed crash on bad Base64 data. Hopefully improved Jabber compatibility. 2.0beta Now uses Mozilla NSS libs the RSA encryption. Added a windowed nonce to each message to avoid a replay attack. Trimmed message header/footer. Base64 instead of Base16 encoding of keys and messages. 1.20 Bugfix for key file reading Updated to new Gaim debug logging 1.19 Gaim 0.63 compatible release: new plugin API in Gaim. Only sends notification message once per conversation now. Defaults to displaying incoming key and asking if user wants to accept it. Displays keys using a hash (aka fingerprint) rather than displaying high bytes of key. 1.18 Gaim 0.61 compatible release. 1.17 Gaim 0.60 compatible release. 1.16 Fixed bug that could allow remote user to crash Gaim, or worse. 1.14 Stuff added to config dialog. Now does broadcast/ detection of other Gaim-Encryption plugin users. Fixed problem with tabbed windows. 1.13 Now has config dialog, and prompts for key saving. Oh, and it's saving keys in files! (ok, that went in between 1.11 and 1.12) 1.12 Now uses OpenSSL crypto libraries. 1.11 Gaim-0.54 changed the interface to serv_send_im, breaking 1.10. Also, gcc2.95.3 doesn't like unnamed unions, while gcc2.96.x don't mind them. Now works with either. 1.10: Refactored some, and moved all the RSA specific code into rsa.c. Now should be much easier to add other types of encryption routines, basically as sub-plugins. This did break compatibility with the 1.0x releases though 1.01: Fixed bug that resulted in dropping the "Encrypted" button (with resulting crash). Also set up to use a new (?) interface function so that we encrypt after everything else happens (now works with spellcheck!) and the sent text gets erased again. Tested with gaim-20020205 pidgin-encryption-3.1/Makefile.am0000755000175100017510000000465311365171052014012 00000000000000AUTOMAKE_OPTIONS = foreign encryptdir = $(libdir)/pidgin encrypt_la_LDFLAGS = -module -avoid-version encrypt_la_LIBADD = $(NSS_LIBS) encrypt_LTLIBRARIES = encrypt.la noinst_LIBRARIES = EXTRA_DIST = \ Makefile.mingw \ po/Makefile.mingw \ po/mkinstalldirs \ pixmaps/mkinstalldirs \ m4 \ COPYING \ CHANGELOG \ INSTALL \ NOTES \ README \ VERSION \ WISHLIST \ pidgin-encryption-installer.nsi \ nsis/header.bmp \ nsis/install.ico \ $(wildcard nsis/translations/*.nsh) encrypt_la_SOURCES = \ nls.h \ pe_blist.c \ pe_blist.h \ config_ui.c \ config_ui.h \ cryptproto.c \ cryptproto.h \ cryptutil.c \ cryptutil.h \ encrypt.c \ encrypt.h \ gpg.c \ gpg.h \ icon_capable.xpm \ icon_in_lock.xpm \ icon_in_unlock.xpm \ icon_lock.xpm \ icon_out_capable.xpm \ icon_out_lock.xpm \ icon_out_unlock.xpm \ icon_unlock.xpm \ internal.h \ keys.c \ keys.h \ keys_ui.c \ keys_ui.h \ nonce.c \ nonce.h \ nss_mgf1.c \ nss_mgf1.h \ nss_oaep.c \ nss_oaep.h \ nss_pss.c \ nss_pss.h \ prefs.c \ prefs.h \ rsa_nss.c \ rsa_nss.h \ state.c \ state.h \ state_ui.c \ state_ui.h \ pe_ui.c \ pe_ui.h AM_CFLAGS = \ -Wall -fno-strict-aliasing AM_CPPFLAGS = \ -DLOCALEDIR=\"$(datadir)/locale\" \ -DLIBDIR=\"$(libdir)/pidgin/\" \ -DDATADIR=\"$(datadir)\" \ $(GLIB_CFLAGS) \ $(PIDGIN_CFLAGS) \ $(PURPLE_CFLAGS) \ $(NSS_CFLAGS) BUILT_SOURCES = pidgin-encryption-config.h $(OBJECTS): $(BUILT_SOURCES) pidgin-encryption-config.h: pre-config.h sed 's/#define PACKAGE/#define PE_PACKAGE/g' pre-config.h > $@ testprog: $(encrypt_la_SOURCES) testmain.c $(CC) -g -Wall -lgdk -lgtk $(AM_CPPFLAGS) $(CPPFLAGS) $(NSS_INCLUDES) $(NSS_CFLAGS) -o testprog testmain.c $(NSS_LIBS) SUBDIRS = pixmaps po intl ACLOCAL_AMFLAGS = -I m4 pidgin-encryption-3.1/state_ui.c0000644000175100017510000004344711365212023013732 00000000000000#include "internal.h" #include "pidgin-encryption-config.h" #include #include #include #include #include #include #include #include #include #include "state_ui.h" #include "state.h" #include "encrypt.h" #include "nls.h" #ifdef _WIN32 #include "win32/win32dep.h" #endif /* Icons */ /* #include "icon_out_lock.xpm" */ /* #include "icon_out_unlock.xpm" */ /* #include "icon_out_capable.xpm" */ /* #include "icon_in_lock.xpm" */ /* #include "icon_in_unlock.xpm" */ #define PIXMAP_TX_UNENCRYPTED "Pidgin-Encryption_Out_Unencrypted" #define PIXMAP_TX_CAPABLE "Pidgin-Encryption_Out_Capable" #define PIXMAP_TX_ENCRYPTED "Pidgin-Encryption_Out_Encrypted" #define PIXMAP_RX_UNENCRYPTED "Pidgin-Encryption_In_Unencrypted" #define PIXMAP_RX_ENCRYPTED "Pidgin-Encryption_In_Encrypted" static GHashTable * tx_encrypt_menus = 0; static GHashTable * rx_encrypt_iconlist = 0; static gchar * smiley_filepath = 0; struct _TxMenuButtons { GtkWidget *unencrypted; /* each is a iconmenu item with one corresponding submenu item */ GtkWidget *capable; GtkWidget *encrypted; }; typedef struct _TxMenuButtons TxMenuButtons; static struct StockIcon{ const char * name; const char * filename; } const stock_icons [] = { { PIXMAP_TX_ENCRYPTED, "icon_out_lock.png" }, { PIXMAP_TX_UNENCRYPTED, "icon_out_unlock.png" }, { PIXMAP_TX_CAPABLE, "icon_out_capable.png" }, { PIXMAP_RX_ENCRYPTED, "icon_in_lock.png" }, { PIXMAP_RX_UNENCRYPTED, "icon_in_unlock.png" }, }; static TxMenuButtons * get_txbuttons_for_win(PidginWindow *win); static GtkIMHtmlSmiley * create_smiley_if_absent(GtkIMHtml *imhtml); static void enable_encrypt_cb(GtkWidget* item, PidginWindow* win); static void disable_encrypt_cb(GtkWidget* item, PidginWindow* win); static void remove_txbuttons_cb( GtkWidget *widget, gpointer data ); static void remove_rx_icon_cb( GtkWidget *widget, gpointer data); static TxMenuButtons * get_txbuttons_for_win(PidginWindow *win) { TxMenuButtons *tx_menubuttons; GtkWidget *submenuitem, *menuitem; GtkWidget *menu; GtkWidget *image; tx_menubuttons = g_hash_table_lookup(tx_encrypt_menus, win); if (!tx_menubuttons) { GtkWidget *menubar = win->menu.menubar; int newMenuPos = 0; /* Where to insert our 3 new menu items: at current pos of menu tray */ if (menubar == NULL) { return NULL; } { GList * list = gtk_container_get_children(GTK_CONTAINER(menubar)); GList * iter = list; while (iter) { if (PIDGIN_IS_MENU_TRAY(iter->data)) { iter = 0; } else { ++newMenuPos; iter = iter->next; } } g_list_free(list); } tx_menubuttons = g_malloc(sizeof(TxMenuButtons)); /* 'not capable' icon on menu with "Enable Encryption" as sole menu possibility */ menu = gtk_menu_new(); submenuitem = gtk_menu_item_new_with_label (_("Enable Encryption")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), submenuitem); gtk_widget_show(submenuitem); g_signal_connect(G_OBJECT(submenuitem), "activate", G_CALLBACK(enable_encrypt_cb), win); image = gtk_image_new_from_stock(PIXMAP_TX_UNENCRYPTED, GTK_ICON_SIZE_MENU); menuitem = gtk_image_menu_item_new_with_label(""); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(menuitem), TRUE); gtk_menu_shell_insert(GTK_MENU_SHELL(menubar), menuitem, newMenuPos); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); gtk_widget_show(menuitem); tx_menubuttons->unencrypted = menuitem; /* 'capable' icon on menu with "Enable Encryption" as sole menu possibility */ menu = gtk_menu_new(); submenuitem = gtk_menu_item_new_with_label (_("Enable Encryption")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), submenuitem); gtk_widget_show(submenuitem); g_signal_connect(G_OBJECT(submenuitem), "activate", G_CALLBACK(enable_encrypt_cb), win); image = gtk_image_new_from_stock(PIXMAP_TX_CAPABLE, GTK_ICON_SIZE_MENU); menuitem = gtk_image_menu_item_new_with_label(""); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(menuitem), TRUE); gtk_menu_shell_insert(GTK_MENU_SHELL(menubar), menuitem, newMenuPos); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); gtk_widget_hide(menuitem); tx_menubuttons->capable = menuitem; /* 'encrypted' icon on menu with "Disable Encryption" as sole menu possibility */ menu = gtk_menu_new(); submenuitem = gtk_menu_item_new_with_label (_("Disable Encryption")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), submenuitem); gtk_widget_show(submenuitem); g_signal_connect(G_OBJECT(submenuitem), "activate", G_CALLBACK(disable_encrypt_cb), win); image = gtk_image_new_from_stock(PIXMAP_TX_ENCRYPTED, GTK_ICON_SIZE_MENU); menuitem = gtk_image_menu_item_new_with_label(""); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(menuitem), TRUE); gtk_menu_shell_insert(GTK_MENU_SHELL(menubar), menuitem, newMenuPos); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); gtk_widget_hide(menuitem); tx_menubuttons->encrypted = menuitem; g_hash_table_insert(tx_encrypt_menus, win, tx_menubuttons); g_signal_connect (G_OBJECT(win->window), "destroy", G_CALLBACK(remove_txbuttons_cb), win); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Adding menu item to win %p, item %p\n", win, tx_menubuttons); } return tx_menubuttons; } static void remove_txbuttons_cb( GtkWidget *widget, gpointer data ) { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Got callback for destroyed window %p %p\n", data, widget); g_hash_table_remove(tx_encrypt_menus, data); } static void remove_rx_icon_cb( GtkWidget *widget, gpointer data ) { purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Got callback for destroyed window %p %p\n", data, widget); g_hash_table_remove(rx_encrypt_iconlist, data); } void PE_state_ui_init() { smiley_filepath = g_build_filename(DATADIR, "pixmaps", "pidgin-encryption", "crypto.png", NULL); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Smiley Filepath: '%s'\n", smiley_filepath); tx_encrypt_menus = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_free); rx_encrypt_iconlist = g_hash_table_new(g_direct_hash, g_direct_equal); } void PE_state_ui_delete() { g_hash_table_destroy(tx_encrypt_menus); tx_encrypt_menus = NULL; g_hash_table_destroy(rx_encrypt_iconlist); rx_encrypt_iconlist = NULL; g_free(smiley_filepath); smiley_filepath = NULL; } void PE_set_tx_encryption_icon(PurpleConversation* conv, gboolean do_encrypt, gboolean is_capable) { PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); PidginWindow *win; TxMenuButtons *buttons; /* we now get called based on conversation changes before the gtkconv has */ /* been set up for the conversation. If that is going on, just bail until */ /* things are set up right */ if (!gtkconv) return; win = pidgin_conv_get_window(gtkconv); g_return_if_fail(win != NULL); /* ensure that the conv we are adding for is actually the active one */ if (pidgin_conv_window_get_active_gtkconv(win)->active_conv != conv) { return; } buttons = get_txbuttons_for_win(win); g_return_if_fail(buttons != NULL); if (do_encrypt) { gtk_widget_hide(buttons->unencrypted); gtk_widget_hide(buttons->capable); gtk_widget_show(buttons->encrypted); } else if (is_capable) { gtk_widget_hide(buttons->unencrypted); gtk_widget_show(buttons->capable); gtk_widget_hide(buttons->encrypted); } else { gtk_widget_show(buttons->unencrypted); gtk_widget_hide(buttons->capable); gtk_widget_hide(buttons->encrypted); } } void PE_set_rx_encryption_icon(PurpleConversation *conv, gboolean encrypted) { PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); PidginWindow *win; GtkWidget *tray; GtkWidget *rx_encrypted_icon; /* we now get called based on conversation changes before the gtkconv has */ /* been set up for the conversation. If that is going on, just bail until */ /* things are set up right */ if (!gtkconv) return; win = pidgin_conv_get_window(gtkconv); g_return_if_fail(win != NULL); tray = win->menu.tray; /* ensure that the conv we are adding for is actually the active one */ if (pidgin_conv_window_get_active_gtkconv(win)->active_conv != conv) { return; } rx_encrypted_icon = g_hash_table_lookup(rx_encrypt_iconlist, win); if (!rx_encrypted_icon) { rx_encrypted_icon = gtk_image_new_from_stock(PIXMAP_RX_ENCRYPTED, GTK_ICON_SIZE_MENU); pidgin_menu_tray_append(PIDGIN_MENU_TRAY(tray), rx_encrypted_icon, _("The last message received was encrypted with the Pidgin-Encryption plugin")); g_hash_table_insert(rx_encrypt_iconlist, win, rx_encrypted_icon); g_signal_connect (G_OBJECT(win->window), "destroy", G_CALLBACK(remove_rx_icon_cb), win); } else { purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Using pre-existing menu icon for conv %p, win %p, item %p\n", conv, win, rx_encrypted_icon); } if (encrypted) { gtk_widget_show(rx_encrypted_icon); } else { gtk_widget_hide(rx_encrypted_icon); } } /* returns the new Smiley if created, or NULL if it was already there */ static GtkIMHtmlSmiley * create_smiley_if_absent(GtkIMHtml *imhtml) { GtkIMHtmlSmiley * smiley; const char* category = gtk_imhtml_get_protocol_name(imhtml); /* make sure that the category we're about to use to add (based on the protocol name) */ /* already exists. If it doesn't, just use the default category so it isn't created. */ if (category && g_hash_table_lookup(imhtml->smiley_data, category) == NULL) { category = NULL; } smiley = gtk_imhtml_smiley_get(imhtml, category, CRYPTO_SMILEY); if (smiley) { /* We're not creating it, because it was already there. Tell the caller that */ return NULL; } /* This may leak. How does it get cleaned up? */ smiley = g_new0(GtkIMHtmlSmiley, 1); smiley->file = smiley_filepath; smiley->smile = CRYPTO_SMILEY; smiley->loader = NULL; smiley->flags = smiley->flags | GTK_IMHTML_SMILEY_CUSTOM; gtk_imhtml_associate_smiley(imhtml, category, smiley); return smiley; } static void enable_encrypt_cb(GtkWidget* item, PidginWindow* win) { PidginConversation *gtkconv; PurpleConversation *conv; g_return_if_fail(win != NULL); gtkconv = pidgin_conv_window_get_active_gtkconv(win); g_return_if_fail(gtkconv != NULL); conv = gtkconv->active_conv; g_return_if_fail(conv != NULL); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Enable encryption on conv %p\n", conv); PE_set_tx_encryption(conv, TRUE); } static void disable_encrypt_cb(GtkWidget* item, PidginWindow* win) { PidginConversation *gtkconv; PurpleConversation *conv; g_return_if_fail(win != NULL); gtkconv = pidgin_conv_window_get_active_gtkconv(win); g_return_if_fail(gtkconv != NULL); conv = gtkconv->active_conv; g_return_if_fail(conv != NULL); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Disable encryption on conv %p\n", conv); PE_set_tx_encryption(conv, FALSE); } void PE_add_smiley(PurpleConversation* conv) { GtkIMHtmlSmiley * smiley; GtkIMHtml * imhtml; PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); if (!gtkconv) return; create_smiley_if_absent( GTK_IMHTML(gtkconv->entry) ); imhtml = GTK_IMHTML(gtkconv->imhtml); smiley = create_smiley_if_absent(imhtml); /* if the smiley was created this time, the value of the new smiley was returned */ /* given that, we want to iterate through and use the smiley everywhere */ if (smiley) { GtkTextIter cur_iter, cur_plus_offset_iter; gboolean offset_is_ok; const char* category = gtk_imhtml_get_protocol_name(imhtml); /* Go through the buffer and replace our smiley text with the smiley */ gtk_text_buffer_get_start_iter(imhtml->text_buffer, &cur_iter); cur_plus_offset_iter = cur_iter; offset_is_ok = gtk_text_iter_forward_chars(&cur_plus_offset_iter, CRYPTO_SMILEY_LEN); while (offset_is_ok) { char *buffer_text = gtk_text_buffer_get_text(imhtml->text_buffer, &cur_iter, &cur_plus_offset_iter, FALSE); if (strcmp(buffer_text, CRYPTO_SMILEY) == 0) { gtk_text_buffer_delete(imhtml->text_buffer, &cur_iter, &cur_plus_offset_iter); gtk_imhtml_insert_smiley_at_iter(imhtml, category, CRYPTO_SMILEY, &cur_iter); } else { gtk_text_iter_forward_chars(&cur_iter, 1); } cur_plus_offset_iter = cur_iter; offset_is_ok = gtk_text_iter_forward_chars(&cur_plus_offset_iter, CRYPTO_SMILEY_LEN); g_free(buffer_text); } } } void PE_log_displaying_cb(PidginLogViewer *viewer, PurpleLog *log, gpointer data) { create_smiley_if_absent( GTK_IMHTML(viewer->imhtml) ); } void PE_remove_decorations(PurpleConversation *conv) { PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); PidginWindow *win; TxMenuButtons *tx_menubuttons; GtkWidget *rx_encrypted_icon; if (!gtkconv) return; win = pidgin_conv_get_window(gtkconv); g_return_if_fail(win != NULL); /* Remove the destroy callbacks: */ g_signal_handlers_disconnect_by_func(G_OBJECT(win->window), G_CALLBACK(remove_txbuttons_cb), win); g_signal_handlers_disconnect_by_func(G_OBJECT(win->window), G_CALLBACK(remove_rx_icon_cb), win); tx_menubuttons = g_hash_table_lookup(tx_encrypt_menus, win); if (tx_menubuttons) { gtk_widget_destroy(tx_menubuttons->unencrypted); gtk_widget_destroy(tx_menubuttons->encrypted); gtk_widget_destroy(tx_menubuttons->capable); g_hash_table_remove(tx_encrypt_menus, win); } rx_encrypted_icon = g_hash_table_lookup(rx_encrypt_iconlist, win); if (rx_encrypted_icon) { gtk_widget_destroy(rx_encrypted_icon); g_hash_table_remove(rx_encrypt_iconlist, win); } } /* stolen from Pidgin/Gaim's icon factory code: */ void PE_stock_init(void) { static gboolean stock_initted = FALSE; GtkIconFactory *icon_factory; size_t i; GtkWidget *win; if (stock_initted) return; stock_initted = TRUE; /* Setup the icon factory. */ icon_factory = gtk_icon_factory_new(); gtk_icon_factory_add_default(icon_factory); /* Er, yeah, a hack, but it works. :) */ win = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_realize(win); for (i = 0; i < G_N_ELEMENTS(stock_icons); i++) { GtkIconSource *source; GtkIconSet *iconset; gchar *filename; filename = g_build_filename(DATADIR, "pixmaps", "pidgin-encryption", stock_icons[i].filename, NULL); if (filename == NULL) continue; purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "Adding stock from %s\n", filename); source = gtk_icon_source_new(); gtk_icon_source_set_filename(source, filename); gtk_icon_source_set_direction_wildcarded(source, TRUE); gtk_icon_source_set_size_wildcarded(source, TRUE); gtk_icon_source_set_state_wildcarded(source, TRUE); iconset = gtk_icon_set_new(); gtk_icon_set_add_source(iconset, source); gtk_icon_source_free(source); g_free(filename); purple_debug(PURPLE_DEBUG_MISC, "pidgin-encryption", "iconset = %p\n", iconset); gtk_icon_factory_add(icon_factory, stock_icons[i].name, iconset); gtk_icon_set_unref(iconset); } gtk_widget_destroy(win); g_object_unref(G_OBJECT(icon_factory)); } void PE_pixmap_init() { PE_stock_init(); /* /\* Here we make a "stock" icon factory to make our icons, and inform GTK *\/ */ /* int i; */ /* GdkPixbuf *pixbuf; */ /* GtkIconSet *icon_set; */ /* static const GtkStockItem items[] = { */ /* { "Pidgin-Encryption_Encrypted", "_GTK!", (GdkModifierType)0, 0, NULL }, */ /* { "Pidgin-Encryption_Unencrypted", "_GTK!", (GdkModifierType)0, 0, NULL }, */ /* { "Pidgin-Encryption_Capable", "_GTK!", (GdkModifierType)0, 0, NULL } */ /* }; */ /* GtkIconFactory *factory; */ /* gtk_stock_add (items, G_N_ELEMENTS (items)); */ /* factory = gtk_icon_factory_new(); */ /* gtk_icon_factory_add_default(factory); */ /* for (i = 0; i < G_N_ELEMENTS(stock_icons); i++) { */ /* pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)item_names[i].xpm_data); */ /* icon_set = gtk_icon_set_new_from_pixbuf (pixbuf); */ /* gtk_icon_factory_add (factory, item_names[i].name, icon_set); */ /* gtk_icon_set_unref (icon_set); */ /* g_object_unref (G_OBJECT (pixbuf)); */ /* } */ /* g_object_unref(factory); */ } void PE_error_window(const char* message) { GtkWidget *dialog, *label, *okay_button; dialog = gtk_dialog_new(); label = gtk_label_new(message); okay_button = gtk_button_new_with_label(_("Ok")); gtk_signal_connect_object (GTK_OBJECT (okay_button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), dialog); gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->action_area), okay_button); gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), label); gtk_widget_show_all (dialog); } pidgin-encryption-3.1/nss_mgf1.h0000644000175100017510000000174111365171052013634 00000000000000/* * Pidgin-Encryption MGF-1 Mask Generation Function (see PKCS#1 v2.1) * * Copyright (C) 2003 William Tompkins * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef NSS_MGF1_H #define NSS_MGF1_H int mgf1(unsigned char* maskee, unsigned int maskee_len, unsigned char* seed, unsigned seed_len); #endif pidgin-encryption-3.1/intl/0000777000175100017510000000000011365216012012771 500000000000000pidgin-encryption-3.1/intl/loadmsgcat.c0000644000175100017510000003522511365171217015205 00000000000000/* Load needed message catalogs. Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif #endif #include #include #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #ifdef _LIBC # include # include #endif #if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ || (defined _LIBC && defined _POSIX_MAPPED_FILES) # include # undef HAVE_MMAP # define HAVE_MMAP 1 #else # undef HAVE_MMAP #endif #include "gettext.h" #include "gettextP.h" #ifdef _LIBC # include "../locale/localeinfo.h" #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ISO C functions. This is required by the standard because some ISO C functions will require linking with this object file and the name space must not be polluted. */ # define open __open # define close __close # define read __read # define mmap __mmap # define munmap __munmap #endif /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define PLURAL_PARSE __gettextparse #else # define PLURAL_PARSE gettextparse__ #endif /* For those losing systems which don't have `alloca' we have to add some additional code emulating it. */ #ifdef HAVE_ALLOCA # define freea(p) /* nothing */ #else # define alloca(n) malloc (n) # define freea(p) free (p) #endif /* For systems that distinguish between text and binary I/O. O_BINARY is usually declared in . */ #if !defined O_BINARY && defined _O_BINARY /* For MSC-compatible compilers. */ # define O_BINARY _O_BINARY # define O_TEXT _O_TEXT #endif #ifdef __BEOS__ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ # undef O_BINARY # undef O_TEXT #endif /* On reasonable systems, binary I/O is the default. */ #ifndef O_BINARY # define O_BINARY 0 #endif /* We need a sign, whether a new catalog was loaded, which can be associated with all translations. This is important if the translations are cached by one of GCC's features. */ int _nl_msg_cat_cntr; #if (defined __GNUC__ && !defined __APPLE_CC__) \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) /* These structs are the constant expression for the germanic plural form determination. It represents the expression "n != 1". */ static const struct expression plvar = { .nargs = 0, .operation = var, }; static const struct expression plone = { .nargs = 0, .operation = num, .val = { .num = 1 } }; static struct expression germanic_plural = { .nargs = 2, .operation = not_equal, .val = { .args = { [0] = (struct expression *) &plvar, [1] = (struct expression *) &plone } } }; # define INIT_GERMANIC_PLURAL() #else /* For compilers without support for ISO C 99 struct/union initializers: Initialization at run-time. */ static struct expression plvar; static struct expression plone; static struct expression germanic_plural; static void init_germanic_plural () { if (plone.val.num == 0) { plvar.nargs = 0; plvar.operation = var; plone.nargs = 0; plone.operation = num; plone.val.num = 1; germanic_plural.nargs = 2; germanic_plural.operation = not_equal; germanic_plural.val.args[0] = &plvar; germanic_plural.val.args[1] = &plone; } } # define INIT_GERMANIC_PLURAL() init_germanic_plural () #endif /* Initialize the codeset dependent parts of an opened message catalog. Return the header entry. */ const char * internal_function _nl_init_domain_conv (domain_file, domain, domainbinding) struct loaded_l10nfile *domain_file; struct loaded_domain *domain; struct binding *domainbinding; { /* Find out about the character set the file is encoded with. This can be found (in textual form) in the entry "". If this entry does not exist or if this does not contain the `charset=' information, we will assume the charset matches the one the current locale and we don't have to perform any conversion. */ char *nullentry; size_t nullentrylen; /* Preinitialize fields, to avoid recursion during _nl_find_msg. */ domain->codeset_cntr = (domainbinding != NULL ? domainbinding->codeset_cntr : 0); #ifdef _LIBC domain->conv = (__gconv_t) -1; #else # if HAVE_ICONV domain->conv = (iconv_t) -1; # endif #endif domain->conv_tab = NULL; /* Get the header entry. */ nullentry = _nl_find_msg (domain_file, domainbinding, "", &nullentrylen); if (nullentry != NULL) { #if defined _LIBC || HAVE_ICONV const char *charsetstr; charsetstr = strstr (nullentry, "charset="); if (charsetstr != NULL) { size_t len; char *charset; const char *outcharset; charsetstr += strlen ("charset="); len = strcspn (charsetstr, " \t\n"); charset = (char *) alloca (len + 1); # if defined _LIBC || HAVE_MEMPCPY *((char *) mempcpy (charset, charsetstr, len)) = '\0'; # else memcpy (charset, charsetstr, len); charset[len] = '\0'; # endif /* The output charset should normally be determined by the locale. But sometimes the locale is not used or not correctly set up, so we provide a possibility for the user to override this. Moreover, the value specified through bind_textdomain_codeset overrides both. */ if (domainbinding != NULL && domainbinding->codeset != NULL) outcharset = domainbinding->codeset; else { outcharset = getenv ("OUTPUT_CHARSET"); if (outcharset == NULL || outcharset[0] == '\0') { # ifdef _LIBC outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX (CODESET)].string; # else # if HAVE_ICONV extern const char *locale_charset (void); outcharset = locale_charset (); # endif # endif } } # ifdef _LIBC /* We always want to use transliteration. */ outcharset = norm_add_slashes (outcharset, "TRANSLIT"); charset = norm_add_slashes (charset, NULL); if (__gconv_open (outcharset, charset, &domain->conv, GCONV_AVOID_NOCONV) != __GCONV_OK) domain->conv = (__gconv_t) -1; # else # if HAVE_ICONV /* When using GNU libiconv, we want to use transliteration. */ # if _LIBICONV_VERSION >= 0x0105 len = strlen (outcharset); { char *tmp = (char *) alloca (len + 10 + 1); memcpy (tmp, outcharset, len); memcpy (tmp + len, "//TRANSLIT", 10 + 1); outcharset = tmp; } # endif domain->conv = iconv_open (outcharset, charset); # if _LIBICONV_VERSION >= 0x0105 freea (outcharset); # endif # endif # endif freea (charset); } #endif /* _LIBC || HAVE_ICONV */ } return nullentry; } /* Frees the codeset dependent parts of an opened message catalog. */ void internal_function _nl_free_domain_conv (domain) struct loaded_domain *domain; { if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1) free (domain->conv_tab); #ifdef _LIBC if (domain->conv != (__gconv_t) -1) __gconv_close (domain->conv); #else # if HAVE_ICONV if (domain->conv != (iconv_t) -1) iconv_close (domain->conv); # endif #endif } /* Load the message catalogs specified by FILENAME. If it is no valid message catalog do nothing. */ void internal_function _nl_load_domain (domain_file, domainbinding) struct loaded_l10nfile *domain_file; struct binding *domainbinding; { int fd; size_t size; #ifdef _LIBC struct stat64 st; #else struct stat st; #endif struct mo_file_header *data = (struct mo_file_header *) -1; int use_mmap = 0; struct loaded_domain *domain; const char *nullentry; domain_file->decided = 1; domain_file->data = NULL; /* Note that it would be useless to store domainbinding in domain_file because domainbinding might be == NULL now but != NULL later (after a call to bind_textdomain_codeset). */ /* If the record does not represent a valid locale the FILENAME might be NULL. This can happen when according to the given specification the locale file name is different for XPG and CEN syntax. */ if (domain_file->filename == NULL) return; /* Try to open the addressed file. */ fd = open (domain_file->filename, O_RDONLY | O_BINARY); if (fd == -1) return; /* We must know about the size of the file. */ if ( #ifdef _LIBC __builtin_expect (fstat64 (fd, &st) != 0, 0) #else __builtin_expect (fstat (fd, &st) != 0, 0) #endif || __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0) || __builtin_expect (size < sizeof (struct mo_file_header), 0)) { /* Something went wrong. */ close (fd); return; } #ifdef HAVE_MMAP /* Now we are ready to load the file. If mmap() is available we try this first. If not available or it failed we try to load it. */ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ, MAP_PRIVATE, fd, 0); if (__builtin_expect (data != (struct mo_file_header *) -1, 1)) { /* mmap() call was successful. */ close (fd); use_mmap = 1; } #endif /* If the data is not yet available (i.e. mmap'ed) we try to load it manually. */ if (data == (struct mo_file_header *) -1) { size_t to_read; char *read_ptr; data = (struct mo_file_header *) malloc (size); if (data == NULL) return; to_read = size; read_ptr = (char *) data; do { long int nb = (long int) read (fd, read_ptr, to_read); if (nb <= 0) { #ifdef EINTR if (nb == -1 && errno == EINTR) continue; #endif close (fd); return; } read_ptr += nb; to_read -= nb; } while (to_read > 0); close (fd); } /* Using the magic number we can test whether it really is a message catalog file. */ if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED, 0)) { /* The magic number is wrong: not a message catalog file. */ #ifdef HAVE_MMAP if (use_mmap) munmap ((caddr_t) data, size); else #endif free (data); return; } domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain)); if (domain == NULL) return; domain_file->data = domain; domain->data = (char *) data; domain->use_mmap = use_mmap; domain->mmap_size = size; domain->must_swap = data->magic != _MAGIC; /* Fill in the information about the available tables. */ switch (W (domain->must_swap, data->revision)) { case 0: domain->nstrings = W (domain->must_swap, data->nstrings); domain->orig_tab = (struct string_desc *) ((char *) data + W (domain->must_swap, data->orig_tab_offset)); domain->trans_tab = (struct string_desc *) ((char *) data + W (domain->must_swap, data->trans_tab_offset)); domain->hash_size = W (domain->must_swap, data->hash_tab_size); domain->hash_tab = (nls_uint32 *) ((char *) data + W (domain->must_swap, data->hash_tab_offset)); break; default: /* This is an invalid revision. */ #ifdef HAVE_MMAP if (use_mmap) munmap ((caddr_t) data, size); else #endif free (data); free (domain); domain_file->data = NULL; return; } /* Now initialize the character set converter from the character set the file is encoded with (found in the header entry) to the domain's specified character set or the locale's character set. */ nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding); /* Also look for a plural specification. */ if (nullentry != NULL) { const char *plural; const char *nplurals; plural = strstr (nullentry, "plural="); nplurals = strstr (nullentry, "nplurals="); if (plural == NULL || nplurals == NULL) goto no_plural; else { /* First get the number. */ char *endp; unsigned long int n; struct parse_args args; nplurals += 9; while (*nplurals != '\0' && isspace (*nplurals)) ++nplurals; #if defined HAVE_STRTOUL || defined _LIBC n = strtoul (nplurals, &endp, 10); #else for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++) n = n * 10 + (*endp - '0'); #endif domain->nplurals = n; if (nplurals == endp) goto no_plural; /* Due to the restrictions bison imposes onto the interface of the scanner function we have to put the input string and the result passed up from the parser into the same structure which address is passed down to the parser. */ plural += 7; args.cp = plural; if (PLURAL_PARSE (&args) != 0) goto no_plural; domain->plural = args.res; } } else { /* By default we are using the Germanic form: singular form only for `one', the plural form otherwise. Yes, this is also what English is using since English is a Germanic language. */ no_plural: INIT_GERMANIC_PLURAL (); domain->plural = &germanic_plural; domain->nplurals = 2; } } #ifdef _LIBC void internal_function _nl_unload_domain (domain) struct loaded_domain *domain; { if (domain->plural != &germanic_plural) __gettext_free_exp (domain->plural); _nl_free_domain_conv (domain); # ifdef _POSIX_MAPPED_FILES if (domain->use_mmap) munmap ((caddr_t) domain->data, domain->mmap_size); else # endif /* _POSIX_MAPPED_FILES */ free ((void *) domain->data); free (domain); } #endif pidgin-encryption-3.1/intl/libgettext.h0000644000175100017510000000361411365171216015243 00000000000000/* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option. */ #if ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include #else # define gettext(Msgid) (Msgid) # define dgettext(Domainname, Msgid) (Msgid) # define dcgettext(Domainname, Msgid, Category) (Msgid) # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) # define textdomain(Domainname) ((char *) (Domainname)) # define bindtextdomain(Domainname, Dirname) ((char *) (Dirname)) # define bind_textdomain_codeset(Domainname, Codeset) ((char *) (Codeset)) #endif /* For automatical extraction of messages sometimes no real translation is needed. Instead the string itself is the result. */ #define gettext_noop(Str) (Str) #endif /* _LIBGETTEXT_H */ pidgin-encryption-3.1/intl/ChangeLog0000644000175100017510000000011011365171215014454 000000000000002001-09-13 GNU * Version 0.10.40 released. pidgin-encryption-3.1/intl/bindtextdom.c0000644000175100017510000002321211365171217015401 00000000000000/* Implementation of the bindtextdomain(3) function Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #ifdef _LIBC # include #else # include "libgnuintl.h" #endif #include "gettextP.h" #ifdef _LIBC /* We have to handle multi-threaded applications. */ # include #else /* Provide dummy implementation if this is outside glibc. */ # define __libc_rwlock_define(CLASS, NAME) # define __libc_rwlock_wrlock(NAME) # define __libc_rwlock_unlock(NAME) #endif /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs using libintl.a cannot be linked statically. */ #if !defined _LIBC # define _nl_default_dirname _nl_default_dirname__ # define _nl_domain_bindings _nl_domain_bindings__ #endif /* Some compilers, like SunOS4 cc, don't have offsetof in . */ #ifndef offsetof # define offsetof(type,ident) ((size_t)&(((type*)0)->ident)) #endif /* @@ end of prolog @@ */ /* Contains the default location of the message catalogs. */ extern const char _nl_default_dirname[]; /* List with bindings of specific domains. */ extern struct binding *_nl_domain_bindings; /* Lock variable to protect the global data in the gettext implementation. */ __libc_rwlock_define (extern, _nl_state_lock) /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define BINDTEXTDOMAIN __bindtextdomain # define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset # ifndef strdup # define strdup(str) __strdup (str) # endif #else # define BINDTEXTDOMAIN bindtextdomain__ # define BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset__ #endif /* Prototypes for local functions. */ static void set_binding_values PARAMS ((const char *domainname, const char **dirnamep, const char **codesetp)); /* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP to be used for the DOMAINNAME message catalog. If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not modified, only the current value is returned. If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither modified nor returned. */ static void set_binding_values (domainname, dirnamep, codesetp) const char *domainname; const char **dirnamep; const char **codesetp; { struct binding *binding; int modified; /* Some sanity checks. */ if (domainname == NULL || domainname[0] == '\0') { if (dirnamep) *dirnamep = NULL; if (codesetp) *codesetp = NULL; return; } __libc_rwlock_wrlock (_nl_state_lock); modified = 0; for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) { int compare = strcmp (domainname, binding->domainname); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It is not in the list. */ binding = NULL; break; } } if (binding != NULL) { if (dirnamep) { const char *dirname = *dirnamep; if (dirname == NULL) /* The current binding has be to returned. */ *dirnamep = binding->dirname; else { /* The domain is already bound. If the new value and the old one are equal we simply do nothing. Otherwise replace the old binding. */ char *result = binding->dirname; if (strcmp (dirname, result) != 0) { if (strcmp (dirname, _nl_default_dirname) == 0) result = (char *) _nl_default_dirname; else { #if defined _LIBC || defined HAVE_STRDUP result = strdup (dirname); #else size_t len = strlen (dirname) + 1; result = (char *) malloc (len); if (__builtin_expect (result != NULL, 1)) memcpy (result, dirname, len); #endif } if (__builtin_expect (result != NULL, 1)) { if (binding->dirname != _nl_default_dirname) free (binding->dirname); binding->dirname = result; modified = 1; } } *dirnamep = result; } } if (codesetp) { const char *codeset = *codesetp; if (codeset == NULL) /* The current binding has be to returned. */ *codesetp = binding->codeset; else { /* The domain is already bound. If the new value and the old one are equal we simply do nothing. Otherwise replace the old binding. */ char *result = binding->codeset; if (result == NULL || strcmp (codeset, result) != 0) { #if defined _LIBC || defined HAVE_STRDUP result = strdup (codeset); #else size_t len = strlen (codeset) + 1; result = (char *) malloc (len); if (__builtin_expect (result != NULL, 1)) memcpy (result, codeset, len); #endif if (__builtin_expect (result != NULL, 1)) { if (binding->codeset != NULL) free (binding->codeset); binding->codeset = result; binding->codeset_cntr++; modified = 1; } } *codesetp = result; } } } else if ((dirnamep == NULL || *dirnamep == NULL) && (codesetp == NULL || *codesetp == NULL)) { /* Simply return the default values. */ if (dirnamep) *dirnamep = _nl_default_dirname; if (codesetp) *codesetp = NULL; } else { /* We have to create a new binding. */ size_t len = strlen (domainname) + 1; struct binding *new_binding = (struct binding *) malloc (offsetof (struct binding, domainname) + len); if (__builtin_expect (new_binding == NULL, 0)) goto failed; memcpy (new_binding->domainname, domainname, len); if (dirnamep) { const char *dirname = *dirnamep; if (dirname == NULL) /* The default value. */ dirname = _nl_default_dirname; else { if (strcmp (dirname, _nl_default_dirname) == 0) dirname = _nl_default_dirname; else { char *result; #if defined _LIBC || defined HAVE_STRDUP result = strdup (dirname); if (__builtin_expect (result == NULL, 0)) goto failed_dirname; #else size_t len = strlen (dirname) + 1; result = (char *) malloc (len); if (__builtin_expect (result == NULL, 0)) goto failed_dirname; memcpy (result, dirname, len); #endif dirname = result; } } *dirnamep = dirname; new_binding->dirname = (char *) dirname; } else /* The default value. */ new_binding->dirname = (char *) _nl_default_dirname; new_binding->codeset_cntr = 0; if (codesetp) { const char *codeset = *codesetp; if (codeset != NULL) { char *result; #if defined _LIBC || defined HAVE_STRDUP result = strdup (codeset); if (__builtin_expect (result == NULL, 0)) goto failed_codeset; #else size_t len = strlen (codeset) + 1; result = (char *) malloc (len); if (__builtin_expect (result == NULL, 0)) goto failed_codeset; memcpy (result, codeset, len); #endif codeset = result; new_binding->codeset_cntr++; } *codesetp = codeset; new_binding->codeset = (char *) codeset; } else new_binding->codeset = NULL; /* Now enqueue it. */ if (_nl_domain_bindings == NULL || strcmp (domainname, _nl_domain_bindings->domainname) < 0) { new_binding->next = _nl_domain_bindings; _nl_domain_bindings = new_binding; } else { binding = _nl_domain_bindings; while (binding->next != NULL && strcmp (domainname, binding->next->domainname) > 0) binding = binding->next; new_binding->next = binding->next; binding->next = new_binding; } modified = 1; /* Here we deal with memory allocation failures. */ if (0) { failed_codeset: if (new_binding->dirname != _nl_default_dirname) free (new_binding->dirname); failed_dirname: free (new_binding); failed: if (dirnamep) *dirnamep = NULL; if (codesetp) *codesetp = NULL; } } /* If we modified any binding, we flush the caches. */ if (modified) ++_nl_msg_cat_cntr; __libc_rwlock_unlock (_nl_state_lock); } /* Specify that the DOMAINNAME message catalog will be found in DIRNAME rather than in the system locale data base. */ char * BINDTEXTDOMAIN (domainname, dirname) const char *domainname; const char *dirname; { set_binding_values (domainname, &dirname, NULL); return (char *) dirname; } /* Specify the character encoding in which the messages from the DOMAINNAME message catalog will be returned. */ char * BIND_TEXTDOMAIN_CODESET (domainname, codeset) const char *domainname; const char *codeset; { set_binding_values (domainname, NULL, &codeset); return (char *) codeset; } #ifdef _LIBC /* Aliases for function names in GNU C Library. */ weak_alias (__bindtextdomain, bindtextdomain); weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset); #endif pidgin-encryption-3.1/intl/ref-del.sin0000644000175100017510000000202411365171216014742 00000000000000# Remove this package from a list of references stored in a text file. # # Copyright (C) 2000 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU Library General Public License as published # by the Free Software Foundation; either version 2, 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 # Library General Public License for more details. # # You should have received a copy of the GNU Library 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. # # Written by Bruno Haible . # /^# Packages using this file: / { s/# Packages using this file:// s/ @PACKAGE@ / / s/^/# Packages using this file:/ } pidgin-encryption-3.1/intl/localealias.c0000644000175100017510000002241011365171217015330 00000000000000/* Handle aliases for locale names. Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif #include #include #include #ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif #endif #include #include #if !HAVE_STRCHR && !defined _LIBC # ifndef strchr # define strchr index # endif #endif #include "gettextP.h" /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # define strcasecmp __strcasecmp # ifndef mempcpy # define mempcpy __mempcpy # endif # define HAVE_MEMPCPY 1 /* We need locking here since we can be called from different places. */ # include __libc_lock_define_initialized (static, lock); #endif #ifndef internal_function # define internal_function #endif /* For those losing systems which don't have `alloca' we have to add some additional code emulating it. */ #ifdef HAVE_ALLOCA # define freea(p) /* nothing */ #else # define alloca(n) malloc (n) # define freea(p) free (p) #endif #if defined _LIBC_REENTRANT || defined HAVE_FGETS_UNLOCKED # undef fgets # define fgets(buf, len, s) fgets_unlocked (buf, len, s) #endif #if defined _LIBC_REENTRANT || defined HAVE_FEOF_UNLOCKED # undef feof # define feof(s) feof_unlocked (s) #endif struct alias_map { const char *alias; const char *value; }; static char *string_space; static size_t string_space_act; static size_t string_space_max; static struct alias_map *map; static size_t nmap; static size_t maxmap; /* Prototypes for local functions. */ static size_t read_alias_file PARAMS ((const char *fname, int fname_len)) internal_function; static int extend_alias_table PARAMS ((void)); static int alias_compare PARAMS ((const struct alias_map *map1, const struct alias_map *map2)); const char * _nl_expand_alias (name) const char *name; { static const char *locale_alias_path = LOCALE_ALIAS_PATH; struct alias_map *retval; const char *result = NULL; size_t added; #ifdef _LIBC __libc_lock_lock (lock); #endif do { struct alias_map item; item.alias = name; if (nmap > 0) retval = (struct alias_map *) bsearch (&item, map, nmap, sizeof (struct alias_map), (int (*) PARAMS ((const void *, const void *)) ) alias_compare); else retval = NULL; /* We really found an alias. Return the value. */ if (retval != NULL) { result = retval->value; break; } /* Perhaps we can find another alias file. */ added = 0; while (added == 0 && locale_alias_path[0] != '\0') { const char *start; while (locale_alias_path[0] == PATH_SEPARATOR) ++locale_alias_path; start = locale_alias_path; while (locale_alias_path[0] != '\0' && locale_alias_path[0] != PATH_SEPARATOR) ++locale_alias_path; if (start < locale_alias_path) added = read_alias_file (start, locale_alias_path - start); } } while (added != 0); #ifdef _LIBC __libc_lock_unlock (lock); #endif return result; } static size_t internal_function read_alias_file (fname, fname_len) const char *fname; int fname_len; { FILE *fp; char *full_fname; size_t added; static const char aliasfile[] = "/locale.alias"; full_fname = (char *) alloca (fname_len + sizeof aliasfile); #ifdef HAVE_MEMPCPY mempcpy (mempcpy (full_fname, fname, fname_len), aliasfile, sizeof aliasfile); #else memcpy (full_fname, fname, fname_len); memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile); #endif fp = fopen (full_fname, "r"); freea (full_fname); if (fp == NULL) return 0; added = 0; while (!feof (fp)) { /* It is a reasonable approach to use a fix buffer here because a) we are only interested in the first two fields b) these fields must be usable as file names and so must not be that long */ char buf[BUFSIZ]; char *alias; char *value; char *cp; if (fgets (buf, sizeof buf, fp) == NULL) /* EOF reached. */ break; /* Possibly not the whole line fits into the buffer. Ignore the rest of the line. */ if (strchr (buf, '\n') == NULL) { char altbuf[BUFSIZ]; do if (fgets (altbuf, sizeof altbuf, fp) == NULL) /* Make sure the inner loop will be left. The outer loop will exit at the `feof' test. */ break; while (strchr (altbuf, '\n') == NULL); } cp = buf; /* Ignore leading white space. */ while (isspace (cp[0])) ++cp; /* A leading '#' signals a comment line. */ if (cp[0] != '\0' && cp[0] != '#') { alias = cp++; while (cp[0] != '\0' && !isspace (cp[0])) ++cp; /* Terminate alias name. */ if (cp[0] != '\0') *cp++ = '\0'; /* Now look for the beginning of the value. */ while (isspace (cp[0])) ++cp; if (cp[0] != '\0') { size_t alias_len; size_t value_len; value = cp++; while (cp[0] != '\0' && !isspace (cp[0])) ++cp; /* Terminate value. */ if (cp[0] == '\n') { /* This has to be done to make the following test for the end of line possible. We are looking for the terminating '\n' which do not overwrite here. */ *cp++ = '\0'; *cp = '\n'; } else if (cp[0] != '\0') *cp++ = '\0'; if (nmap >= maxmap) if (__builtin_expect (extend_alias_table (), 0)) return added; alias_len = strlen (alias) + 1; value_len = strlen (value) + 1; if (string_space_act + alias_len + value_len > string_space_max) { /* Increase size of memory pool. */ size_t new_size = (string_space_max + (alias_len + value_len > 1024 ? alias_len + value_len : 1024)); char *new_pool = (char *) realloc (string_space, new_size); if (new_pool == NULL) return added; if (__builtin_expect (string_space != new_pool, 0)) { size_t i; for (i = 0; i < nmap; i++) { map[i].alias += new_pool - string_space; map[i].value += new_pool - string_space; } } string_space = new_pool; string_space_max = new_size; } map[nmap].alias = memcpy (&string_space[string_space_act], alias, alias_len); string_space_act += alias_len; map[nmap].value = memcpy (&string_space[string_space_act], value, value_len); string_space_act += value_len; ++nmap; ++added; } } } /* Should we test for ferror()? I think we have to silently ignore errors. --drepper */ fclose (fp); if (added > 0) qsort (map, nmap, sizeof (struct alias_map), (int (*) PARAMS ((const void *, const void *))) alias_compare); return added; } static int extend_alias_table () { size_t new_size; struct alias_map *new_map; new_size = maxmap == 0 ? 100 : 2 * maxmap; new_map = (struct alias_map *) realloc (map, (new_size * sizeof (struct alias_map))); if (new_map == NULL) /* Simply don't extend: we don't have any more core. */ return -1; map = new_map; maxmap = new_size; return 0; } #ifdef _LIBC static void __attribute__ ((unused)) free_mem (void) { if (string_space != NULL) free (string_space); if (map != NULL) free (map); } text_set_element (__libc_subfreeres, free_mem); #endif static int alias_compare (map1, map2) const struct alias_map *map1; const struct alias_map *map2; { #if defined _LIBC || defined HAVE_STRCASECMP return strcasecmp (map1->alias, map2->alias); #else const unsigned char *p1 = (const unsigned char *) map1->alias; const unsigned char *p2 = (const unsigned char *) map2->alias; unsigned char c1, c2; if (p1 == p2) return 0; do { /* I know this seems to be odd but the tolower() function in some systems libc cannot handle nonalpha characters. */ c1 = isupper (*p1) ? tolower (*p1) : *p1; c2 = isupper (*p2) ? tolower (*p2) : *p2; if (c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); return c1 - c2; #endif } pidgin-encryption-3.1/intl/ngettext.c0000644000175100017510000000374111365171217014727 00000000000000/* Implementation of ngettext(3) function. Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifdef HAVE_CONFIG_H # include #endif #ifdef _LIBC # define __need_NULL # include #else # include /* Just for NULL. */ #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif #include /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define NGETTEXT __ngettext # define DCNGETTEXT __dcngettext #else # define NGETTEXT ngettext__ # define DCNGETTEXT dcngettext__ #endif /* Look up MSGID in the current default message catalog for the current LC_MESSAGES locale. If not found, returns MSGID itself (the default text). */ char * NGETTEXT (msgid1, msgid2, n) const char *msgid1; const char *msgid2; unsigned long int n; { return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__ngettext, ngettext); #endif pidgin-encryption-3.1/intl/hash-string.h0000644000175100017510000000345311365171215015317 00000000000000/* Description of GNU message catalog format: string hashing function. Copyright (C) 1995, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ /* @@ end of prolog @@ */ #ifndef PARAMS # if __STDC__ # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif #endif /* We assume to have `unsigned long int' value with at least 32 bits. */ #define HASHWORDBITS 32 /* Defines the so called `hashpjw' function by P.J. Weinberger [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, 1986, 1987 Bell Telephone Laboratories, Inc.] */ static unsigned long int hash_string PARAMS ((const char *__str_param)); static inline unsigned long int hash_string (str_param) const char *str_param; { unsigned long int hval, g; const char *str = str_param; /* Compute the hash value for the given string. */ hval = 0; while (*str != '\0') { hval <<= 4; hval += (unsigned long int) *str++; g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4)); if (g != 0) { hval ^= g >> (HASHWORDBITS - 8); hval ^= g; } } return hval; } pidgin-encryption-3.1/intl/textdomain.c0000644000175100017510000001062111365171217015234 00000000000000/* Implementation of the textdomain(3) function. Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #ifdef _LIBC # include #else # include "libgnuintl.h" #endif #include "gettextP.h" #ifdef _LIBC /* We have to handle multi-threaded applications. */ # include #else /* Provide dummy implementation if this is outside glibc. */ # define __libc_rwlock_define(CLASS, NAME) # define __libc_rwlock_wrlock(NAME) # define __libc_rwlock_unlock(NAME) #endif /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs using libintl.a cannot be linked statically. */ #if !defined _LIBC # define _nl_default_default_domain _nl_default_default_domain__ # define _nl_current_default_domain _nl_current_default_domain__ #endif /* @@ end of prolog @@ */ /* Name of the default text domain. */ extern const char _nl_default_default_domain[]; /* Default text domain in which entries for gettext(3) are to be found. */ extern const char *_nl_current_default_domain; /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define TEXTDOMAIN __textdomain # ifndef strdup # define strdup(str) __strdup (str) # endif #else # define TEXTDOMAIN textdomain__ #endif /* Lock variable to protect the global data in the gettext implementation. */ __libc_rwlock_define (extern, _nl_state_lock) /* Set the current default message catalog to DOMAINNAME. If DOMAINNAME is null, return the current default. If DOMAINNAME is "", reset to the default of "messages". */ char * TEXTDOMAIN (domainname) const char *domainname; { char *new_domain; char *old_domain; /* A NULL pointer requests the current setting. */ if (domainname == NULL) return (char *) _nl_current_default_domain; __libc_rwlock_wrlock (_nl_state_lock); old_domain = (char *) _nl_current_default_domain; /* If domain name is the null string set to default domain "messages". */ if (domainname[0] == '\0' || strcmp (domainname, _nl_default_default_domain) == 0) { _nl_current_default_domain = _nl_default_default_domain; new_domain = (char *) _nl_current_default_domain; } else if (strcmp (domainname, old_domain) == 0) /* This can happen and people will use it to signal that some environment variable changed. */ new_domain = old_domain; else { /* If the following malloc fails `_nl_current_default_domain' will be NULL. This value will be returned and so signals we are out of core. */ #if defined _LIBC || defined HAVE_STRDUP new_domain = strdup (domainname); #else size_t len = strlen (domainname) + 1; new_domain = (char *) malloc (len); if (new_domain != NULL) memcpy (new_domain, domainname, len); #endif if (new_domain != NULL) _nl_current_default_domain = new_domain; } /* We use this possibility to signal a change of the loaded catalogs since this is most likely the case and there is no other easy we to do it. Do it only when the call was successful. */ if (new_domain != NULL) { ++_nl_msg_cat_cntr; if (old_domain != new_domain && old_domain != _nl_default_default_domain) free (old_domain); } __libc_rwlock_unlock (_nl_state_lock); return new_domain; } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__textdomain, textdomain); #endif pidgin-encryption-3.1/intl/VERSION0000644000175100017510000000005111365171215013756 00000000000000GNU gettext library from gettext-0.10.40 pidgin-encryption-3.1/intl/gettextP.h0000644000175100017510000001700611365171215014673 00000000000000/* Header describing internals of libintl library. Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifndef _GETTEXTP_H #define _GETTEXTP_H #include /* Get size_t. */ #ifdef _LIBC # include "../iconv/gconv_int.h" #else # if HAVE_ICONV # include # endif #endif #include "loadinfo.h" #include "gettext.h" /* Get nls_uint32. */ /* @@ end of prolog @@ */ #ifndef PARAMS # if __STDC__ # define PARAMS(args) args # else # define PARAMS(args) () # endif #endif #ifndef internal_function # define internal_function #endif /* Tell the compiler when a conditional or integer expression is almost always true or almost always false. */ #ifndef HAVE_BUILTIN_EXPECT # define __builtin_expect(expr, val) (expr) #endif #ifndef W # define W(flag, data) ((flag) ? SWAP (data) : (data)) #endif #ifdef _LIBC # include # define SWAP(i) bswap_32 (i) #else static inline nls_uint32 SWAP (i) nls_uint32 i; { return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); } #endif /* This is the representation of the expressions to determine the plural form. */ struct expression { int nargs; /* Number of arguments. */ enum operator { /* Without arguments: */ var, /* The variable "n". */ num, /* Decimal number. */ /* Unary operators: */ lnot, /* Logical NOT. */ /* Binary operators: */ mult, /* Multiplication. */ divide, /* Division. */ module, /* Module operation. */ plus, /* Addition. */ minus, /* Subtraction. */ less_than, /* Comparison. */ greater_than, /* Comparison. */ less_or_equal, /* Comparison. */ greater_or_equal, /* Comparison. */ equal, /* Comparision for equality. */ not_equal, /* Comparision for inequality. */ land, /* Logical AND. */ lor, /* Logical OR. */ /* Ternary operators: */ qmop /* Question mark operator. */ } operation; union { unsigned long int num; /* Number value for `num'. */ struct expression *args[3]; /* Up to three arguments. */ } val; }; /* This is the data structure to pass information to the parser and get the result in a thread-safe way. */ struct parse_args { const char *cp; struct expression *res; }; /* The representation of an opened message catalog. */ struct loaded_domain { const char *data; int use_mmap; size_t mmap_size; int must_swap; nls_uint32 nstrings; struct string_desc *orig_tab; struct string_desc *trans_tab; nls_uint32 hash_size; nls_uint32 *hash_tab; int codeset_cntr; #ifdef _LIBC __gconv_t conv; #else # if HAVE_ICONV iconv_t conv; # endif #endif char **conv_tab; struct expression *plural; unsigned long int nplurals; }; /* We want to allocate a string at the end of the struct. But ISO C doesn't allow zero sized arrays. */ #ifdef __GNUC__ # define ZERO 0 #else # define ZERO 1 #endif /* A set of settings bound to a message domain. Used to store settings from bindtextdomain() and bind_textdomain_codeset(). */ struct binding { struct binding *next; char *dirname; int codeset_cntr; /* Incremented each time codeset changes. */ char *codeset; char domainname[ZERO]; }; /* A counter which is incremented each time some previous translations become invalid. This variable is part of the external ABI of the GNU libintl. */ extern int _nl_msg_cat_cntr; struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname, char *__locale, const char *__domainname, struct binding *__domainbinding)) internal_function; void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain, struct binding *__domainbinding)) internal_function; void _nl_unload_domain PARAMS ((struct loaded_domain *__domain)) internal_function; const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file, struct loaded_domain *__domain, struct binding *__domainbinding)) internal_function; void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain)) internal_function; char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file, struct binding *domainbinding, const char *msgid, size_t *lengthp)) internal_function; #ifdef _LIBC extern char *__gettext PARAMS ((const char *__msgid)); extern char *__dgettext PARAMS ((const char *__domainname, const char *__msgid)); extern char *__dcgettext PARAMS ((const char *__domainname, const char *__msgid, int __category)); extern char *__ngettext PARAMS ((const char *__msgid1, const char *__msgid2, unsigned long int __n)); extern char *__dngettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int n)); extern char *__dcngettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category)); extern char *__dcigettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, int __plural, unsigned long int __n, int __category)); extern char *__textdomain PARAMS ((const char *__domainname)); extern char *__bindtextdomain PARAMS ((const char *__domainname, const char *__dirname)); extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname, const char *__codeset)); #else extern char *gettext__ PARAMS ((const char *__msgid)); extern char *dgettext__ PARAMS ((const char *__domainname, const char *__msgid)); extern char *dcgettext__ PARAMS ((const char *__domainname, const char *__msgid, int __category)); extern char *ngettext__ PARAMS ((const char *__msgid1, const char *__msgid2, unsigned long int __n)); extern char *dngettext__ PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n)); extern char *dcngettext__ PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category)); extern char *dcigettext__ PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, int __plural, unsigned long int __n, int __category)); extern char *textdomain__ PARAMS ((const char *__domainname)); extern char *bindtextdomain__ PARAMS ((const char *__domainname, const char *__dirname)); extern char *bind_textdomain_codeset__ PARAMS ((const char *__domainname, const char *__codeset)); #endif #ifdef _LIBC extern void __gettext_free_exp PARAMS ((struct expression *exp)) internal_function; extern int __gettextparse PARAMS ((void *arg)); #else extern void gettext_free_exp__ PARAMS ((struct expression *exp)) internal_function; extern int gettextparse__ PARAMS ((void *arg)); #endif /* @@ begin of epilog @@ */ #endif /* gettextP.h */ pidgin-encryption-3.1/intl/locale.alias0000644000175100017510000000514111365171216015166 00000000000000# Locale name alias data base. # Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU Library General Public License as published # by the Free Software Foundation; either version 2, 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 # Library General Public License for more details. # # You should have received a copy of the GNU Library 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. # The format of this file is the same as for the corresponding file of # the X Window System, which normally can be found in # /usr/lib/X11/locale/locale.alias # A single line contains two fields: an alias and a substitution value. # All entries are case independent. # Note: This file is far from being complete. If you have a value for # your own site which you think might be useful for others too, share # it with the rest of us. Send it using the `glibcbug' script to # bugs@gnu.org. # Packages using this file: bokmal no_NO.ISO-8859-1 bokmål no_NO.ISO-8859-1 catalan ca_ES.ISO-8859-1 croatian hr_HR.ISO-8859-2 czech cs_CZ.ISO-8859-2 danish da_DK.ISO-8859-1 dansk da_DK.ISO-8859-1 deutsch de_DE.ISO-8859-1 dutch nl_NL.ISO-8859-1 eesti et_EE.ISO-8859-1 estonian et_EE.ISO-8859-1 finnish fi_FI.ISO-8859-1 français fr_FR.ISO-8859-1 french fr_FR.ISO-8859-1 galego gl_ES.ISO-8859-1 galician gl_ES.ISO-8859-1 german de_DE.ISO-8859-1 greek el_GR.ISO-8859-7 hebrew he_IL.ISO-8859-8 hrvatski hr_HR.ISO-8859-2 hungarian hu_HU.ISO-8859-2 icelandic is_IS.ISO-8859-1 italian it_IT.ISO-8859-1 japanese ja_JP.eucJP japanese.euc ja_JP.eucJP ja_JP ja_JP.eucJP ja_JP.ujis ja_JP.eucJP japanese.sjis ja_JP.SJIS korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR lithuanian lt_LT.ISO-8859-13 nb_NO no_NO.ISO-8859-1 nb_NO.ISO-8859-1 no_NO.ISO-8859-1 norwegian no_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 portuguese pt_PT.ISO-8859-1 romanian ro_RO.ISO-8859-2 russian ru_RU.ISO-8859-5 slovak sk_SK.ISO-8859-2 slovene sl_SI.ISO-8859-2 slovenian sl_SI.ISO-8859-2 spanish es_ES.ISO-8859-1 swedish sv_SE.ISO-8859-1 thai th_TH.TIS-620 turkish tr_TR.ISO-8859-9 pidgin-encryption-3.1/intl/explodename.c0000644000175100017510000001107211365171217015362 00000000000000/* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "loadinfo.h" /* On some strange systems still no definition of NULL is found. Sigh! */ #ifndef NULL # if defined __STDC__ && __STDC__ # define NULL ((void *) 0) # else # define NULL 0 # endif #endif /* @@ end of prolog @@ */ char * _nl_find_language (name) const char *name; { while (name[0] != '\0' && name[0] != '_' && name[0] != '@' && name[0] != '+' && name[0] != ',') ++name; return (char *) name; } int _nl_explode_name (name, language, modifier, territory, codeset, normalized_codeset, special, sponsor, revision) char *name; const char **language; const char **modifier; const char **territory; const char **codeset; const char **normalized_codeset; const char **special; const char **sponsor; const char **revision; { enum { undecided, xpg, cen } syntax; char *cp; int mask; *modifier = NULL; *territory = NULL; *codeset = NULL; *normalized_codeset = NULL; *special = NULL; *sponsor = NULL; *revision = NULL; /* Now we determine the single parts of the locale name. First look for the language. Termination symbols are `_' and `@' if we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */ mask = 0; syntax = undecided; *language = cp = name; cp = _nl_find_language (*language); if (*language == cp) /* This does not make sense: language has to be specified. Use this entry as it is without exploding. Perhaps it is an alias. */ cp = strchr (*language, '\0'); else if (cp[0] == '_') { /* Next is the territory. */ cp[0] = '\0'; *territory = ++cp; while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@' && cp[0] != '+' && cp[0] != ',' && cp[0] != '_') ++cp; mask |= TERRITORY; if (cp[0] == '.') { /* Next is the codeset. */ syntax = xpg; cp[0] = '\0'; *codeset = ++cp; while (cp[0] != '\0' && cp[0] != '@') ++cp; mask |= XPG_CODESET; if (*codeset != cp && (*codeset)[0] != '\0') { *normalized_codeset = _nl_normalize_codeset (*codeset, cp - *codeset); if (strcmp (*codeset, *normalized_codeset) == 0) free ((char *) *normalized_codeset); else mask |= XPG_NORM_CODESET; } } } if (cp[0] == '@' || (syntax != xpg && cp[0] == '+')) { /* Next is the modifier. */ syntax = cp[0] == '@' ? xpg : cen; cp[0] = '\0'; *modifier = ++cp; while (syntax == cen && cp[0] != '\0' && cp[0] != '+' && cp[0] != ',' && cp[0] != '_') ++cp; mask |= XPG_MODIFIER | CEN_AUDIENCE; } if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_')) { syntax = cen; if (cp[0] == '+') { /* Next is special application (CEN syntax). */ cp[0] = '\0'; *special = ++cp; while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_') ++cp; mask |= CEN_SPECIAL; } if (cp[0] == ',') { /* Next is sponsor (CEN syntax). */ cp[0] = '\0'; *sponsor = ++cp; while (cp[0] != '\0' && cp[0] != '_') ++cp; mask |= CEN_SPONSOR; } if (cp[0] == '_') { /* Next is revision (CEN syntax). */ cp[0] = '\0'; *revision = ++cp; mask |= CEN_REVISION; } } /* For CEN syntax values it might be important to have the separator character in the file name, not for XPG syntax. */ if (syntax == xpg) { if (*territory != NULL && (*territory)[0] == '\0') mask &= ~TERRITORY; if (*codeset != NULL && (*codeset)[0] == '\0') mask &= ~XPG_CODESET; if (*modifier != NULL && (*modifier)[0] == '\0') mask &= ~XPG_MODIFIER; } return mask; } pidgin-encryption-3.1/intl/dngettext.c0000644000175100017510000000362711365171217015076 00000000000000/* Implementation of the dngettext(3) function. Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DNGETTEXT __dngettext # define DCNGETTEXT __dcngettext #else # define DNGETTEXT dngettext__ # define DCNGETTEXT dcngettext__ #endif /* Look up MSGID in the DOMAINNAME message catalog of the current LC_MESSAGES locale and skip message according to the plural form. */ char * DNGETTEXT (domainname, msgid1, msgid2, n) const char *domainname; const char *msgid1; const char *msgid2; unsigned long int n; { return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dngettext, dngettext); #endif pidgin-encryption-3.1/intl/gettext.c0000644000175100017510000000356311365171217014553 00000000000000/* Implementation of gettext(3) function. Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifdef HAVE_CONFIG_H # include #endif #ifdef _LIBC # define __need_NULL # include #else # include /* Just for NULL. */ #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define GETTEXT __gettext # define DCGETTEXT __dcgettext #else # define GETTEXT gettext__ # define DCGETTEXT dcgettext__ #endif /* Look up MSGID in the current default message catalog for the current LC_MESSAGES locale. If not found, returns MSGID itself (the default text). */ char * GETTEXT (msgid) const char *msgid; { return DCGETTEXT (NULL, msgid, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__gettext, gettext); #endif pidgin-encryption-3.1/intl/dcigettext.c0000644000175100017510000010247111365171217015231 00000000000000/* Implementation of the internal dcigettext function. Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif #include #ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif #endif #include #ifndef errno extern int errno; #endif #ifndef __set_errno # define __set_errno(val) errno = (val) #endif #include #include #include #if !HAVE_STRCHR && !defined _LIBC # ifndef strchr #include # define strchr index # endif #endif #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #include #if defined HAVE_SYS_PARAM_H || defined _LIBC # include #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif #include "hash-string.h" /* Thread safetyness. */ #ifdef _LIBC # include #else /* Provide dummy implementation if this is outside glibc. */ # define __libc_lock_define_initialized(CLASS, NAME) # define __libc_lock_lock(NAME) # define __libc_lock_unlock(NAME) # define __libc_rwlock_define_initialized(CLASS, NAME) # define __libc_rwlock_rdlock(NAME) # define __libc_rwlock_unlock(NAME) #endif /* Alignment of types. */ #if defined __GNUC__ && __GNUC__ >= 2 # define alignof(TYPE) __alignof__ (TYPE) #else # define alignof(TYPE) \ ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2) #endif /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs using libintl.a cannot be linked statically. */ #if !defined _LIBC # define _nl_default_default_domain _nl_default_default_domain__ # define _nl_current_default_domain _nl_current_default_domain__ # define _nl_default_dirname _nl_default_dirname__ # define _nl_domain_bindings _nl_domain_bindings__ #endif /* Some compilers, like SunOS4 cc, don't have offsetof in . */ #ifndef offsetof # define offsetof(type,ident) ((size_t)&(((type*)0)->ident)) #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # define getcwd __getcwd # ifndef stpcpy # define stpcpy __stpcpy # endif # define tfind __tfind #else # if !defined HAVE_GETCWD char *getwd (); # define getcwd(buf, max) getwd (buf) # else char *getcwd (); # endif # ifndef HAVE_STPCPY static char *stpcpy PARAMS ((char *dest, const char *src)); # endif # ifndef HAVE_MEMPCPY static void *mempcpy PARAMS ((void *dest, const void *src, size_t n)); # endif #endif /* Amount to increase buffer size by in each try. */ #define PATH_INCR 32 /* The following is from pathmax.h. */ /* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define PATH_MAX but might cause redefinition warnings when sys/param.h is later included (as on MORE/BSD 4.3). */ #if defined _POSIX_VERSION || (defined HAVE_LIMITS_H && !defined __GNUC__) # include #endif #ifndef _POSIX_PATH_MAX # define _POSIX_PATH_MAX 255 #endif #if !defined PATH_MAX && defined _PC_PATH_MAX # define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX)) #endif /* Don't include sys/param.h if it already has been. */ #if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include #endif #if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN #endif #ifndef PATH_MAX # define PATH_MAX _POSIX_PATH_MAX #endif /* Pathname support. ISSLASH(C) tests whether C is a directory separator character. IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not, it may be concatenated to a directory pathname. IS_PATH_WITH_DIR(P) tests whether P contains a directory specification. */ #if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ /* Win32, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') # define HAS_DEVICE(P) \ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ && (P)[1] == ':') # define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P)) # define IS_PATH_WITH_DIR(P) \ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) #else /* Unix */ # define ISSLASH(C) ((C) == '/') # define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0]) # define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL) #endif /* XPG3 defines the result of `setlocale (category, NULL)' as: ``Directs `setlocale()' to query `category' and return the current setting of `local'.'' However it does not specify the exact format. Neither do SUSV2 and ISO C 99. So we can use this feature only on selected systems (e.g. those using GNU C Library). */ #if defined _LIBC || (defined __GNU_LIBRARY__ && __GNU_LIBRARY__ >= 2) # define HAVE_LOCALE_NULL #endif /* This is the type used for the search tree where known translations are stored. */ struct known_translation_t { /* Domain in which to search. */ char *domainname; /* The category. */ int category; /* State of the catalog counter at the point the string was found. */ int counter; /* Catalog where the string was found. */ struct loaded_l10nfile *domain; /* And finally the translation. */ const char *translation; size_t translation_length; /* Pointer to the string in question. */ char msgid[ZERO]; }; /* Root of the search tree with known translations. We can use this only if the system provides the `tsearch' function family. */ #if defined HAVE_TSEARCH || defined _LIBC # include static void *root; # ifdef _LIBC # define tsearch __tsearch # endif /* Function to compare two entries in the table of known translations. */ static int transcmp PARAMS ((const void *p1, const void *p2)); static int transcmp (p1, p2) const void *p1; const void *p2; { const struct known_translation_t *s1; const struct known_translation_t *s2; int result; s1 = (const struct known_translation_t *) p1; s2 = (const struct known_translation_t *) p2; result = strcmp (s1->msgid, s2->msgid); if (result == 0) { result = strcmp (s1->domainname, s2->domainname); if (result == 0) /* We compare the category last (though this is the cheapest operation) since it is hopefully always the same (namely LC_MESSAGES). */ result = s1->category - s2->category; } return result; } #endif /* Name of the default domain used for gettext(3) prior any call to textdomain(3). The default value for this is "messages". */ const char _nl_default_default_domain[] = "messages"; /* Value used as the default domain for gettext(3). */ const char *_nl_current_default_domain = _nl_default_default_domain; /* Contains the default location of the message catalogs. */ const char _nl_default_dirname[] = LOCALEDIR; /* List with bindings of specific domains created by bindtextdomain() calls. */ struct binding *_nl_domain_bindings; /* Prototypes for local functions. */ static char *plural_lookup PARAMS ((struct loaded_l10nfile *domain, unsigned long int n, const char *translation, size_t translation_len)) internal_function; static unsigned long int plural_eval PARAMS ((struct expression *pexp, unsigned long int n)) internal_function; static const char *category_to_name PARAMS ((int category)) internal_function; static const char *guess_category_value PARAMS ((int category, const char *categoryname)) internal_function; /* For those loosing systems which don't have `alloca' we have to add some additional code emulating it. */ #ifdef HAVE_ALLOCA /* Nothing has to be done. */ # define ADD_BLOCK(list, address) /* nothing */ # define FREE_BLOCKS(list) /* nothing */ #else struct block_list { void *address; struct block_list *next; }; # define ADD_BLOCK(list, addr) \ do { \ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ /* If we cannot get a free block we cannot add the new element to \ the list. */ \ if (newp != NULL) { \ newp->address = (addr); \ newp->next = (list); \ (list) = newp; \ } \ } while (0) # define FREE_BLOCKS(list) \ do { \ while (list != NULL) { \ struct block_list *old = list; \ list = list->next; \ free (old); \ } \ } while (0) # undef alloca # define alloca(size) (malloc (size)) #endif /* have alloca */ #ifdef _LIBC /* List of blocks allocated for translations. */ typedef struct transmem_list { struct transmem_list *next; char data[ZERO]; } transmem_block_t; static struct transmem_list *transmem_list; #else typedef unsigned char transmem_block_t; #endif /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DCIGETTEXT __dcigettext #else # define DCIGETTEXT dcigettext__ #endif /* Lock variable to protect the global data in the gettext implementation. */ #ifdef _LIBC __libc_rwlock_define_initialized (, _nl_state_lock) #endif /* Checking whether the binaries runs SUID must be done and glibc provides easier methods therefore we make a difference here. */ #ifdef _LIBC # define ENABLE_SECURE __libc_enable_secure # define DETERMINE_SECURE #else # ifndef HAVE_GETUID # define getuid() 0 # endif # ifndef HAVE_GETGID # define getgid() 0 # endif # ifndef HAVE_GETEUID # define geteuid() getuid() # endif # ifndef HAVE_GETEGID # define getegid() getgid() # endif static int enable_secure; # define ENABLE_SECURE (enable_secure == 1) # define DETERMINE_SECURE \ if (enable_secure == 0) \ { \ if (getuid () != geteuid () || getgid () != getegid ()) \ enable_secure = 1; \ else \ enable_secure = -1; \ } #endif /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale and, if PLURAL is nonzero, search over string depending on the plural form determined by N. */ char * DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category) const char *domainname; const char *msgid1; const char *msgid2; int plural; unsigned long int n; int category; { #ifndef HAVE_ALLOCA struct block_list *block_list = NULL; #endif struct loaded_l10nfile *domain; struct binding *binding; const char *categoryname; const char *categoryvalue; char *dirname, *xdomainname; char *single_locale; char *retval; size_t retlen; int saved_errno; #if defined HAVE_TSEARCH || defined _LIBC struct known_translation_t *search; struct known_translation_t **foundp = NULL; size_t msgid_len; #endif size_t domainname_len; /* If no real MSGID is given return NULL. */ if (msgid1 == NULL) return NULL; __libc_rwlock_rdlock (_nl_state_lock); /* If DOMAINNAME is NULL, we are interested in the default domain. If CATEGORY is not LC_MESSAGES this might not make much sense but the definition left this undefined. */ if (domainname == NULL) domainname = _nl_current_default_domain; #if defined HAVE_TSEARCH || defined _LIBC msgid_len = strlen (msgid1) + 1; /* Try to find the translation among those which we found at some time. */ search = (struct known_translation_t *) alloca (offsetof (struct known_translation_t, msgid) + msgid_len); memcpy (search->msgid, msgid1, msgid_len); search->domainname = (char *) domainname; search->category = category; foundp = (struct known_translation_t **) tfind (search, &root, transcmp); if (foundp != NULL && (*foundp)->counter == _nl_msg_cat_cntr) { /* Now deal with plural. */ if (plural) retval = plural_lookup ((*foundp)->domain, n, (*foundp)->translation, (*foundp)->translation_length); else retval = (char *) (*foundp)->translation; __libc_rwlock_unlock (_nl_state_lock); return retval; } #endif /* Preserve the `errno' value. */ saved_errno = errno; /* See whether this is a SUID binary or not. */ DETERMINE_SECURE; /* First find matching binding. */ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) { int compare = strcmp (domainname, binding->domainname); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It is not in the list. */ binding = NULL; break; } } if (binding == NULL) dirname = (char *) _nl_default_dirname; else if (IS_ABSOLUTE_PATH (binding->dirname)) dirname = binding->dirname; else { /* We have a relative path. Make it absolute now. */ size_t dirname_len = strlen (binding->dirname) + 1; size_t path_max; char *ret; path_max = (unsigned int) PATH_MAX; path_max += 2; /* The getcwd docs say to do this. */ for (;;) { dirname = (char *) alloca (path_max + dirname_len); ADD_BLOCK (block_list, dirname); __set_errno (0); ret = getcwd (dirname, path_max); if (ret != NULL || errno != ERANGE) break; path_max += path_max / 2; path_max += PATH_INCR; } if (ret == NULL) { /* We cannot get the current working directory. Don't signal an error but simply return the default string. */ FREE_BLOCKS (block_list); __libc_rwlock_unlock (_nl_state_lock); __set_errno (saved_errno); return (plural == 0 ? (char *) msgid1 /* Use the Germanic plural rule. */ : n == 1 ? (char *) msgid1 : (char *) msgid2); } stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname); } /* Now determine the symbolic name of CATEGORY and its value. */ categoryname = category_to_name (category); categoryvalue = guess_category_value (category, categoryname); domainname_len = strlen (domainname); xdomainname = (char *) alloca (strlen (categoryname) + domainname_len + 5); ADD_BLOCK (block_list, xdomainname); stpcpy (mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"), domainname, domainname_len), ".mo"); /* Creating working area. */ single_locale = (char *) alloca (strlen (categoryvalue) + 1); ADD_BLOCK (block_list, single_locale); /* Search for the given string. This is a loop because we perhaps got an ordered list of languages to consider for the translation. */ while (1) { /* Make CATEGORYVALUE point to the next element of the list. */ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':') ++categoryvalue; if (categoryvalue[0] == '\0') { /* The whole contents of CATEGORYVALUE has been searched but no valid entry has been found. We solve this situation by implicitly appending a "C" entry, i.e. no translation will take place. */ single_locale[0] = 'C'; single_locale[1] = '\0'; } else { char *cp = single_locale; while (categoryvalue[0] != '\0' && categoryvalue[0] != ':') *cp++ = *categoryvalue++; *cp = '\0'; /* When this is a SUID binary we must not allow accessing files outside the dedicated directories. */ if (ENABLE_SECURE && IS_PATH_WITH_DIR (single_locale)) /* Ingore this entry. */ continue; } /* If the current locale value is C (or POSIX) we don't load a domain. Return the MSGID. */ if (strcmp (single_locale, "C") == 0 || strcmp (single_locale, "POSIX") == 0) { FREE_BLOCKS (block_list); __libc_rwlock_unlock (_nl_state_lock); __set_errno (saved_errno); return (plural == 0 ? (char *) msgid1 /* Use the Germanic plural rule. */ : n == 1 ? (char *) msgid1 : (char *) msgid2); } /* Find structure describing the message catalog matching the DOMAINNAME and CATEGORY. */ domain = _nl_find_domain (dirname, single_locale, xdomainname, binding); if (domain != NULL) { retval = _nl_find_msg (domain, binding, msgid1, &retlen); if (retval == NULL) { int cnt; for (cnt = 0; domain->successor[cnt] != NULL; ++cnt) { retval = _nl_find_msg (domain->successor[cnt], binding, msgid1, &retlen); if (retval != NULL) { domain = domain->successor[cnt]; break; } } } if (retval != NULL) { /* Found the translation of MSGID1 in domain DOMAIN: starting at RETVAL, RETLEN bytes. */ FREE_BLOCKS (block_list); __set_errno (saved_errno); #if defined HAVE_TSEARCH || defined _LIBC if (foundp == NULL) { /* Create a new entry and add it to the search tree. */ struct known_translation_t *newp; newp = (struct known_translation_t *) malloc (offsetof (struct known_translation_t, msgid) + msgid_len + domainname_len + 1); if (newp != NULL) { newp->domainname = mempcpy (newp->msgid, msgid1, msgid_len); memcpy (newp->domainname, domainname, domainname_len + 1); newp->category = category; newp->counter = _nl_msg_cat_cntr; newp->domain = domain; newp->translation = retval; newp->translation_length = retlen; /* Insert the entry in the search tree. */ foundp = (struct known_translation_t **) tsearch (newp, &root, transcmp); if (foundp == NULL || __builtin_expect (*foundp != newp, 0)) /* The insert failed. */ free (newp); } } else { /* We can update the existing entry. */ (*foundp)->counter = _nl_msg_cat_cntr; (*foundp)->domain = domain; (*foundp)->translation = retval; (*foundp)->translation_length = retlen; } #endif /* Now deal with plural. */ if (plural) retval = plural_lookup (domain, n, retval, retlen); __libc_rwlock_unlock (_nl_state_lock); return retval; } } } /* NOTREACHED */ } char * internal_function _nl_find_msg (domain_file, domainbinding, msgid, lengthp) struct loaded_l10nfile *domain_file; struct binding *domainbinding; const char *msgid; size_t *lengthp; { struct loaded_domain *domain; size_t act; char *result; size_t resultlen; if (domain_file->decided == 0) _nl_load_domain (domain_file, domainbinding); if (domain_file->data == NULL) return NULL; domain = (struct loaded_domain *) domain_file->data; /* Locate the MSGID and its translation. */ if (domain->hash_size > 2 && domain->hash_tab != NULL) { /* Use the hashing table. */ nls_uint32 len = strlen (msgid); nls_uint32 hash_val = hash_string (msgid); nls_uint32 idx = hash_val % domain->hash_size; nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2)); while (1) { nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]); if (nstr == 0) /* Hash table entry is empty. */ return NULL; /* Compare msgid with the original string at indxvar nstr-1. We compare the lengths with >=, not ==, because plural entries are represented by strings with an embedded NUL. */ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) >= len && (strcmp (msgid, domain->data + W (domain->must_swap, domain->orig_tab[nstr - 1].offset)) == 0)) { act = nstr - 1; goto found; } if (idx >= domain->hash_size - incr) idx -= domain->hash_size - incr; else idx += incr; } /* NOTREACHED */ } else { /* Try the default method: binary search in the sorted array of messages. */ size_t top, bottom; bottom = 0; top = domain->nstrings; while (bottom < top) { int cmp_val; act = (bottom + top) / 2; cmp_val = strcmp (msgid, (domain->data + W (domain->must_swap, domain->orig_tab[act].offset))); if (cmp_val < 0) top = act; else if (cmp_val > 0) bottom = act + 1; else goto found; } /* No translation was found. */ return NULL; } found: /* The translation was found at indxvar ACT. If we have to convert the string to use a different character set, this is the time. */ result = ((char *) domain->data + W (domain->must_swap, domain->trans_tab[act].offset)); resultlen = W (domain->must_swap, domain->trans_tab[act].length) + 1; #if defined _LIBC || HAVE_ICONV if (domain->codeset_cntr != (domainbinding != NULL ? domainbinding->codeset_cntr : 0)) { /* The domain's codeset has changed through bind_textdomain_codeset() since the message catalog was initialized or last accessed. We have to reinitialize the converter. */ _nl_free_domain_conv (domain); _nl_init_domain_conv (domain_file, domain, domainbinding); } if ( # ifdef _LIBC domain->conv != (__gconv_t) -1 # else # if HAVE_ICONV domain->conv != (iconv_t) -1 # endif # endif ) { /* We are supposed to do a conversion. First allocate an appropriate table with the same structure as the table of translations in the file, where we can put the pointers to the converted strings in. There is a slight complication with plural entries. They are represented by consecutive NUL terminated strings. We handle this case by converting RESULTLEN bytes, including NULs. */ if (domain->conv_tab == NULL && ((domain->conv_tab = (char **) calloc (domain->nstrings, sizeof (char *))) == NULL)) /* Mark that we didn't succeed allocating a table. */ domain->conv_tab = (char **) -1; if (__builtin_expect (domain->conv_tab == (char **) -1, 0)) /* Nothing we can do, no more memory. */ goto converted; if (domain->conv_tab[act] == NULL) { /* We haven't used this string so far, so it is not translated yet. Do this now. */ /* We use a bit more efficient memory handling. We allocate always larger blocks which get used over time. This is faster than many small allocations. */ __libc_lock_define_initialized (static, lock) # define INITIAL_BLOCK_SIZE 4080 static unsigned char *freemem; static size_t freemem_size; const unsigned char *inbuf; unsigned char *outbuf; int malloc_count; # ifndef _LIBC transmem_block_t *transmem_list = NULL; # endif __libc_lock_lock (lock); inbuf = (const unsigned char *) result; outbuf = freemem + sizeof (size_t); malloc_count = 0; while (1) { transmem_block_t *newmem; # ifdef _LIBC size_t non_reversible; int res; if (freemem_size < sizeof (size_t)) goto resize_freemem; res = __gconv (domain->conv, &inbuf, inbuf + resultlen, &outbuf, outbuf + freemem_size - sizeof (size_t), &non_reversible); if (res == __GCONV_OK || res == __GCONV_EMPTY_INPUT) break; if (res != __GCONV_FULL_OUTPUT) { __libc_lock_unlock (lock); goto converted; } inbuf = result; # else # if HAVE_ICONV const char *inptr = (const char *) inbuf; size_t inleft = resultlen; char *outptr = (char *) outbuf; size_t outleft; if (freemem_size < sizeof (size_t)) goto resize_freemem; outleft = freemem_size - sizeof (size_t); if (iconv (domain->conv, (ICONV_CONST char **) &inptr, &inleft, &outptr, &outleft) != (size_t) (-1)) { outbuf = (unsigned char *) outptr; break; } if (errno != E2BIG) { __libc_lock_unlock (lock); goto converted; } # endif # endif resize_freemem: /* We must allocate a new buffer or resize the old one. */ if (malloc_count > 0) { ++malloc_count; freemem_size = malloc_count * INITIAL_BLOCK_SIZE; newmem = (transmem_block_t *) realloc (transmem_list, freemem_size); # ifdef _LIBC if (newmem != NULL) transmem_list = transmem_list->next; else { struct transmem_list *old = transmem_list; transmem_list = transmem_list->next; free (old); } # endif } else { malloc_count = 1; freemem_size = INITIAL_BLOCK_SIZE; newmem = (transmem_block_t *) malloc (freemem_size); } if (__builtin_expect (newmem == NULL, 0)) { freemem = NULL; freemem_size = 0; __libc_lock_unlock (lock); goto converted; } # ifdef _LIBC /* Add the block to the list of blocks we have to free at some point. */ newmem->next = transmem_list; transmem_list = newmem; freemem = newmem->data; freemem_size -= offsetof (struct transmem_list, data); # else transmem_list = newmem; freemem = newmem; # endif outbuf = freemem + sizeof (size_t); } /* We have now in our buffer a converted string. Put this into the table of conversions. */ *(size_t *) freemem = outbuf - freemem - sizeof (size_t); domain->conv_tab[act] = (char *) freemem; /* Shrink freemem, but keep it aligned. */ freemem_size -= outbuf - freemem; freemem = outbuf; freemem += freemem_size & (alignof (size_t) - 1); freemem_size = freemem_size & ~ (alignof (size_t) - 1); __libc_lock_unlock (lock); } /* Now domain->conv_tab[act] contains the translation of all the plural variants. */ result = domain->conv_tab[act] + sizeof (size_t); resultlen = *(size_t *) domain->conv_tab[act]; } converted: /* The result string is converted. */ #endif /* _LIBC || HAVE_ICONV */ *lengthp = resultlen; return result; } /* Look up a plural variant. */ static char * internal_function plural_lookup (domain, n, translation, translation_len) struct loaded_l10nfile *domain; unsigned long int n; const char *translation; size_t translation_len; { struct loaded_domain *domaindata = (struct loaded_domain *) domain->data; unsigned long int indxvar; const char *p; indxvar = plural_eval (domaindata->plural, n); if (indxvar >= domaindata->nplurals) /* This should never happen. It means the plural expression and the given maximum value do not match. */ indxvar = 0; /* Skip INDEX strings at TRANSLATION. */ p = translation; while (indxvar-- > 0) { #ifdef _LIBC p = __rawmemchr (p, '\0'); #else p = strchr (p, '\0'); #endif /* And skip over the NUL byte. */ p++; if (p >= translation + translation_len) /* This should never happen. It means the plural expression evaluated to a value larger than the number of variants available for MSGID1. */ return (char *) translation; } return (char *) p; } /* Function to evaluate the plural expression and return an indxvar value. */ static unsigned long int internal_function plural_eval (pexp, n) struct expression *pexp; unsigned long int n; { switch (pexp->nargs) { case 0: switch (pexp->operation) { case var: return n; case num: return pexp->val.num; default: break; } /* NOTREACHED */ break; case 1: { /* pexp->operation must be lnot. */ unsigned long int arg = plural_eval (pexp->val.args[0], n); return ! arg; } case 2: { unsigned long int leftarg = plural_eval (pexp->val.args[0], n); if (pexp->operation == lor) return leftarg || plural_eval (pexp->val.args[1], n); else if (pexp->operation == land) return leftarg && plural_eval (pexp->val.args[1], n); else { unsigned long int rightarg = plural_eval (pexp->val.args[1], n); switch (pexp->operation) { case mult: return leftarg * rightarg; case divide: return leftarg / rightarg; case module: return leftarg % rightarg; case plus: return leftarg + rightarg; case minus: return leftarg - rightarg; case less_than: return leftarg < rightarg; case greater_than: return leftarg > rightarg; case less_or_equal: return leftarg <= rightarg; case greater_or_equal: return leftarg >= rightarg; case equal: return leftarg == rightarg; case not_equal: return leftarg != rightarg; default: break; } } /* NOTREACHED */ break; } case 3: { /* pexp->operation must be qmop. */ unsigned long int boolarg = plural_eval (pexp->val.args[0], n); return plural_eval (pexp->val.args[boolarg ? 1 : 2], n); } } /* NOTREACHED */ return 0; } /* Return string representation of locale CATEGORY. */ static const char * internal_function category_to_name (category) int category; { const char *retval; switch (category) { #ifdef LC_COLLATE case LC_COLLATE: retval = "LC_COLLATE"; break; #endif #ifdef LC_CTYPE case LC_CTYPE: retval = "LC_CTYPE"; break; #endif #ifdef LC_MONETARY case LC_MONETARY: retval = "LC_MONETARY"; break; #endif #ifdef LC_NUMERIC case LC_NUMERIC: retval = "LC_NUMERIC"; break; #endif #ifdef LC_TIME case LC_TIME: retval = "LC_TIME"; break; #endif #ifdef LC_MESSAGES case LC_MESSAGES: retval = "LC_MESSAGES"; break; #endif #ifdef LC_RESPONSE case LC_RESPONSE: retval = "LC_RESPONSE"; break; #endif #ifdef LC_ALL case LC_ALL: /* This might not make sense but is perhaps better than any other value. */ retval = "LC_ALL"; break; #endif default: /* If you have a better idea for a default value let me know. */ retval = "LC_XXX"; } return retval; } /* Guess value of current locale from value of the environment variables. */ static const char * internal_function guess_category_value (category, categoryname) int category; const char *categoryname; { const char *language; const char *retval; /* The highest priority value is the `LANGUAGE' environment variable. But we don't use the value if the currently selected locale is the C locale. This is a GNU extension. */ language = getenv ("LANGUAGE"); if (language != NULL && language[0] == '\0') language = NULL; /* We have to proceed with the POSIX methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some systems this can be done by the `setlocale' function itself. */ #if defined _LIBC || (defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL) retval = setlocale (category, NULL); #else /* Setting of LC_ALL overwrites all other. */ retval = getenv ("LC_ALL"); if (retval == NULL || retval[0] == '\0') { /* Next comes the name of the desired category. */ retval = getenv (categoryname); if (retval == NULL || retval[0] == '\0') { /* Last possibility is the LANG environment variable. */ retval = getenv ("LANG"); if (retval == NULL || retval[0] == '\0') /* We use C as the default domain. POSIX says this is implementation defined. */ return "C"; } } #endif return language != NULL && strcmp (retval, "C") != 0 ? language : retval; } /* @@ begin of epilog @@ */ /* We don't want libintl.a to depend on any other library. So we avoid the non-standard function stpcpy. In GNU C Library this function is available, though. Also allow the symbol HAVE_STPCPY to be defined. */ #if !_LIBC && !HAVE_STPCPY static char * stpcpy (dest, src) char *dest; const char *src; { while ((*dest++ = *src++) != '\0') /* Do nothing. */ ; return dest - 1; } #endif #if !_LIBC && !HAVE_MEMPCPY static void * mempcpy (dest, src, n) void *dest; const void *src; size_t n; { return (void *) ((char *) memcpy (dest, src, n) + n); } #endif #ifdef _LIBC /* If we want to free all resources we have to do some work at program's end. */ static void __attribute__ ((unused)) free_mem (void) { void *old; while (_nl_domain_bindings != NULL) { struct binding *oldp = _nl_domain_bindings; _nl_domain_bindings = _nl_domain_bindings->next; if (oldp->dirname != _nl_default_dirname) /* Yes, this is a pointer comparison. */ free (oldp->dirname); free (oldp->codeset); free (oldp); } if (_nl_current_default_domain != _nl_default_default_domain) /* Yes, again a pointer comparison. */ free ((char *) _nl_current_default_domain); /* Remove the search tree with the known translations. */ __tdestroy (root, free); root = NULL; while (transmem_list != NULL) { old = transmem_list; transmem_list = transmem_list->next; free (old); } } text_set_element (__libc_subfreeres, free_mem); #endif pidgin-encryption-3.1/intl/plural.c0000644000175100017510000010020511365171217014355 00000000000000 /* A Bison parser, made from plural.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ #define yyparse __gettextparse #define yylex __gettextlex #define yyerror __gettexterror #define yylval __gettextlval #define yychar __gettextchar #define yydebug __gettextdebug #define yynerrs __gettextnerrs #define EQUOP2 257 #define CMPOP2 258 #define ADDOP2 259 #define MULOP2 260 #define NUMBER 261 #line 1 "plural.y" /* Expression parsing for plural form selection. Copyright (C) 2000, 2001 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ /* The bison generated parser uses alloca. AIX 3 forces us to put this declaration at the beginning of the file. The declaration in bison's skeleton file comes too late. This must come before because may include arbitrary system headers. */ #if defined _AIX && !defined __GNUC__ #pragma alloca #endif #ifdef HAVE_CONFIG_H # include #endif #include #include "gettextP.h" /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define FREE_EXPRESSION __gettext_free_exp #else # define FREE_EXPRESSION gettext_free_exp__ # define __gettextparse gettextparse__ #endif #define YYLEX_PARAM &((struct parse_args *) arg)->cp #define YYPARSE_PARAM arg #line 53 "plural.y" typedef union { unsigned long int num; enum operator op; struct expression *exp; } YYSTYPE; #line 59 "plural.y" /* Prototypes for local functions. */ static struct expression *new_exp PARAMS ((int nargs, enum operator op, struct expression * const *args)); static inline struct expression *new_exp_0 PARAMS ((enum operator op)); static inline struct expression *new_exp_1 PARAMS ((enum operator op, struct expression *right)); static struct expression *new_exp_2 PARAMS ((enum operator op, struct expression *left, struct expression *right)); static inline struct expression *new_exp_3 PARAMS ((enum operator op, struct expression *bexp, struct expression *tbranch, struct expression *fbranch)); static int yylex PARAMS ((YYSTYPE *lval, const char **pexp)); static void yyerror PARAMS ((const char *str)); /* Allocation of expressions. */ static struct expression * new_exp (nargs, op, args) int nargs; enum operator op; struct expression * const *args; { int i; struct expression *newp; /* If any of the argument could not be malloc'ed, just return NULL. */ for (i = nargs - 1; i >= 0; i--) if (args[i] == NULL) goto fail; /* Allocate a new expression. */ newp = (struct expression *) malloc (sizeof (*newp)); if (newp != NULL) { newp->nargs = nargs; newp->operation = op; for (i = nargs - 1; i >= 0; i--) newp->val.args[i] = args[i]; return newp; } fail: for (i = nargs - 1; i >= 0; i--) FREE_EXPRESSION (args[i]); return NULL; } static inline struct expression * new_exp_0 (op) enum operator op; { return new_exp (0, op, NULL); } static inline struct expression * new_exp_1 (op, right) enum operator op; struct expression *right; { struct expression *args[1]; args[0] = right; return new_exp (1, op, args); } static struct expression * new_exp_2 (op, left, right) enum operator op; struct expression *left; struct expression *right; { struct expression *args[2]; args[0] = left; args[1] = right; return new_exp (2, op, args); } static inline struct expression * new_exp_3 (op, bexp, tbranch, fbranch) enum operator op; struct expression *bexp; struct expression *tbranch; struct expression *fbranch; { struct expression *args[3]; args[0] = bexp; args[1] = tbranch; args[2] = fbranch; return new_exp (3, op, args); } #include #ifndef __cplusplus #ifndef __STDC__ #define const #endif #endif #define YYFINAL 27 #define YYFLAG -32768 #define YYNTBASE 16 #define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 2, 2, 2, 2, 5, 2, 14, 15, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 12, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 13, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 6, 7, 8, 9, 11 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 2, 8, 12, 16, 20, 24, 28, 32, 35, 37, 39 }; static const short yyrhs[] = { 17, 0, 17, 3, 17, 12, 17, 0, 17, 4, 17, 0, 17, 5, 17, 0, 17, 6, 17, 0, 17, 7, 17, 0, 17, 8, 17, 0, 17, 9, 17, 0, 10, 17, 0, 13, 0, 11, 0, 14, 17, 15, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, 178, 186, 190, 194, 198, 202, 206, 210, 214, 218, 222, 227 }; #endif #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","'?'","'|'", "'&'","EQUOP2","CMPOP2","ADDOP2","MULOP2","'!'","NUMBER","':'","'n'","'('","')'", "start","exp", NULL }; #endif static const short yyr1[] = { 0, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 }; static const short yyr2[] = { 0, 1, 5, 3, 3, 3, 3, 3, 3, 2, 1, 1, 3 }; static const short yydefact[] = { 0, 0, 11, 10, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 3, 4, 5, 6, 7, 8, 0, 2, 0, 0, 0 }; static const short yydefgoto[] = { 25, 5 }; static const short yypact[] = { -9, -9,-32768,-32768, -9, 34,-32768, 11, -9, -9, -9, -9, -9, -9, -9,-32768, 24, 39, 43, 16, 26, -3,-32768, -9, 34, 21, 53,-32768 }; static const short yypgoto[] = {-32768, -1 }; #define YYLAST 53 static const short yytable[] = { 6, 1, 2, 7, 3, 4, 14, 16, 17, 18, 19, 20, 21, 22, 8, 9, 10, 11, 12, 13, 14, 26, 24, 12, 13, 14, 15, 8, 9, 10, 11, 12, 13, 14, 13, 14, 23, 8, 9, 10, 11, 12, 13, 14, 10, 11, 12, 13, 14, 11, 12, 13, 14, 27 }; static const short yycheck[] = { 1, 10, 11, 4, 13, 14, 9, 8, 9, 10, 11, 12, 13, 14, 3, 4, 5, 6, 7, 8, 9, 0, 23, 7, 8, 9, 15, 3, 4, 5, 6, 7, 8, 9, 8, 9, 12, 3, 4, 5, 6, 7, 8, 9, 5, 6, 7, 8, 9, 6, 7, 8, 9, 0 }; #define YYPURE 1 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple" /* This file comes from bison-1.28. */ /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ #ifndef YYSTACK_USE_ALLOCA #ifdef alloca #define YYSTACK_USE_ALLOCA #else /* alloca not defined */ #ifdef __GNUC__ #define YYSTACK_USE_ALLOCA #define alloca __builtin_alloca #else /* not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) #define YYSTACK_USE_ALLOCA #include #else /* not sparc */ /* We think this test detects Watcom and Microsoft C. */ /* This used to test MSDOS, but that is a bad idea since that symbol is in the user namespace. */ #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) #if 0 /* No need for malloc.h, which pollutes the namespace; instead, just don't use alloca. */ #include #endif #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) /* I don't know what this was needed for, but it pollutes the namespace. So I turned it off. rms, 2 May 1997. */ /* #include */ #pragma alloca #define YYSTACK_USE_ALLOCA #else /* not MSDOS, or __TURBOC__, or _AIX */ #if 0 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, and on HPUX 10. Eventually we can turn this on. */ #define YYSTACK_USE_ALLOCA #define alloca __builtin_alloca #endif /* __hpux */ #endif #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ #endif /* not sparc */ #endif /* not GNU C */ #endif /* alloca not defined */ #endif /* YYSTACK_USE_ALLOCA not defined */ #ifdef YYSTACK_USE_ALLOCA #define YYSTACK_ALLOC alloca #else #define YYSTACK_ALLOC malloc #endif /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) #else #define YYLEX yylex(&yylval, &yylloc) #endif #else /* not YYLSP_NEEDED */ #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, YYLEX_PARAM) #else #define YYLEX yylex(&yylval) #endif #endif /* not YYLSP_NEEDED */ #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif /* Define __yy_memcpy. Note that the size argument should be passed with type unsigned int, because that is what the non-GCC definitions require. With GCC, __builtin_memcpy takes an arg of type size_t, but it can handle unsigned int. */ #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (to, from, count) char *to; char *from; unsigned int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (char *to, char *from, unsigned int count) { register char *t = to; register char *f = from; register int i = count; while (i-- > 0) *t++ = *f++; } #endif #endif #line 217 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. It should actually point to an object. Grammar actions can access the variable by casting it to the proper pointer type. */ #ifdef YYPARSE_PARAM #ifdef __cplusplus #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM #define YYPARSE_PARAM_DECL #else /* not __cplusplus */ #define YYPARSE_PARAM_ARG YYPARSE_PARAM #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; #endif /* not __cplusplus */ #else /* not YYPARSE_PARAM */ #define YYPARSE_PARAM_ARG #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ #ifdef YYPARSE_PARAM int yyparse (void *); #else int yyparse (void); #endif #endif int yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yyerrstatus; /* number of tokens to shift before error messages enabled */ int yychar1 = 0; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif int yystacksize = YYINITDEPTH; int yyfree_stacks = 0; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Starting parse\n"); #endif yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss - 1; yyvsp = yyvs; #ifdef YYLSP_NEEDED yylsp = yyls; #endif /* Push a new state, which is found in yystate . */ /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yyls1, size * sizeof (*yylsp), &yystacksize); #else yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; #ifndef YYSTACK_USE_ALLOCA yyfree_stacks = 1; #endif yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); __yy_memcpy ((char *)yyss, (char *)yyss1, size * (unsigned int) sizeof (*yyssp)); yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * (unsigned int) sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); __yy_memcpy ((char *)yyls, (char *)yyls1, size * (unsigned int) sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif goto yybackup; yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) { fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); #endif fprintf (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; if (yylen > 0) yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 1: #line 179 "plural.y" { if (yyvsp[0].exp == NULL) YYABORT; ((struct parse_args *) arg)->res = yyvsp[0].exp; ; break;} case 2: #line 187 "plural.y" { yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 3: #line 191 "plural.y" { yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 4: #line 195 "plural.y" { yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 5: #line 199 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 6: #line 203 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 7: #line 207 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 8: #line 211 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 9: #line 215 "plural.y" { yyval.exp = new_exp_1 (lnot, yyvsp[0].exp); ; break;} case 10: #line 219 "plural.y" { yyval.exp = new_exp_0 (var); ; break;} case 11: #line 223 "plural.y" { if ((yyval.exp = new_exp_0 (num)) != NULL) yyval.exp->val.num = yyvsp[0].num; ; break;} case 12: #line 228 "plural.y" { yyval.exp = yyvsp[-1].exp; ; break;} } /* the action file gets copied in in place of this dollarsign */ #line 543 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else #endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; yyacceptlab: /* YYACCEPT comes here. */ if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 0; yyabortlab: /* YYABORT comes here. */ if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 1; } #line 233 "plural.y" void internal_function FREE_EXPRESSION (exp) struct expression *exp; { if (exp == NULL) return; /* Handle the recursive case. */ switch (exp->nargs) { case 3: FREE_EXPRESSION (exp->val.args[2]); /* FALLTHROUGH */ case 2: FREE_EXPRESSION (exp->val.args[1]); /* FALLTHROUGH */ case 1: FREE_EXPRESSION (exp->val.args[0]); /* FALLTHROUGH */ default: break; } free (exp); } static int yylex (lval, pexp) YYSTYPE *lval; const char **pexp; { const char *exp = *pexp; int result; while (1) { if (exp[0] == '\0') { *pexp = exp; return YYEOF; } if (exp[0] != ' ' && exp[0] != '\t') break; ++exp; } result = *exp++; switch (result) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { unsigned long int n = result - '0'; while (exp[0] >= '0' && exp[0] <= '9') { n *= 10; n += exp[0] - '0'; ++exp; } lval->num = n; result = NUMBER; } break; case '=': if (exp[0] == '=') { ++exp; lval->op = equal; result = EQUOP2; } else result = YYERRCODE; break; case '!': if (exp[0] == '=') { ++exp; lval->op = not_equal; result = EQUOP2; } break; case '&': case '|': if (exp[0] == result) ++exp; else result = YYERRCODE; break; case '<': if (exp[0] == '=') { ++exp; lval->op = less_or_equal; } else lval->op = less_than; result = CMPOP2; break; case '>': if (exp[0] == '=') { ++exp; lval->op = greater_or_equal; } else lval->op = greater_than; result = CMPOP2; break; case '*': lval->op = mult; result = MULOP2; break; case '/': lval->op = divide; result = MULOP2; break; case '%': lval->op = module; result = MULOP2; break; case '+': lval->op = plus; result = ADDOP2; break; case '-': lval->op = minus; result = ADDOP2; break; case 'n': case '?': case ':': case '(': case ')': /* Nothing, just return the character. */ break; case ';': case '\n': case '\0': /* Be safe and let the user call this function again. */ --exp; result = YYEOF; break; default: result = YYERRCODE; #if YYDEBUG != 0 --exp; #endif break; } *pexp = exp; return result; } static void yyerror (str) const char *str; { /* Do nothing. We don't print error messages here. */ } pidgin-encryption-3.1/intl/intl-compat.c0000644000175100017510000001125311365171217015311 00000000000000/* intl-compat.c - Stub functions to call gettext functions from GNU gettext Library. Copyright (C) 1995, 2000, 2001 Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifdef HAVE_CONFIG_H # include #endif #include "libgnuintl.h" #include "gettextP.h" /* @@ end of prolog @@ */ /* This file redirects the gettext functions (without prefix or suffix) to those defined in the included GNU gettext library (with "__" suffix). It is compiled into libintl when the included GNU gettext library is configured --with-included-gettext. This redirection works also in the case that the system C library or the system libintl library contain gettext/textdomain/... functions. If it didn't, we would need to add preprocessor level redirections to libgnuintl.h of the following form: # define gettext gettext__ # define dgettext dgettext__ # define dcgettext dcgettext__ # define ngettext ngettext__ # define dngettext dngettext__ # define dcngettext dcngettext__ # define textdomain textdomain__ # define bindtextdomain bindtextdomain__ # define bind_textdomain_codeset bind_textdomain_codeset__ How does this redirection work? There are two cases. A. When libintl.a is linked into an executable, it works because functions defined in the executable always override functions in the shared libraries. B. When libintl.so is used, it works because 1. those systems defining gettext/textdomain/... in the C library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer) are ELF systems and define these symbols as weak, thus explicitly letting other shared libraries override it. 2. those systems defining gettext/textdomain/... in a standalone libintl.so library (namely, Solaris 2.3 and newer) have this shared library in /usr/lib, and the linker will search /usr/lib *after* the directory where the GNU gettext library is installed. A third case, namely when libintl.a is linked into a shared library whose name is not libintl.so, is not supported. In this case, on Solaris, when -lintl precedes the linker option for the shared library containing GNU gettext, the system's gettext would indeed override the GNU gettext. Anyone doing this kind of stuff must be clever enough to 1. compile libintl.a with -fPIC, 2. remove -lintl from his linker command line. */ #undef gettext #undef dgettext #undef dcgettext #undef ngettext #undef dngettext #undef dcngettext #undef textdomain #undef bindtextdomain #undef bind_textdomain_codeset char * gettext (msgid) const char *msgid; { return gettext__ (msgid); } char * dgettext (domainname, msgid) const char *domainname; const char *msgid; { return dgettext__ (domainname, msgid); } char * dcgettext (domainname, msgid, category) const char *domainname; const char *msgid; int category; { return dcgettext__ (domainname, msgid, category); } char * ngettext (msgid1, msgid2, n) const char *msgid1; const char *msgid2; unsigned long int n; { return ngettext__ (msgid1, msgid2, n); } char * dngettext (domainname, msgid1, msgid2, n) const char *domainname; const char *msgid1; const char *msgid2; unsigned long int n; { return dngettext__ (domainname, msgid1, msgid2, n); } char * dcngettext (domainname, msgid1, msgid2, n, category) const char *domainname; const char *msgid1; const char *msgid2; unsigned long int n; int category; { return dcngettext__ (domainname, msgid1, msgid2, n, category); } char * textdomain (domainname) const char *domainname; { return textdomain__ (domainname); } char * bindtextdomain (domainname, dirname) const char *domainname; const char *dirname; { return bindtextdomain__ (domainname, dirname); } char * bind_textdomain_codeset (domainname, codeset) const char *domainname; const char *codeset; { return bind_textdomain_codeset__ (domainname, codeset); } pidgin-encryption-3.1/intl/dcngettext.c0000644000175100017510000000356711365171217015244 00000000000000/* Implementation of the dcngettext(3) function. Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifdef HAVE_CONFIG_H # include #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DCNGETTEXT __dcngettext # define DCIGETTEXT __dcigettext #else # define DCNGETTEXT dcngettext__ # define DCIGETTEXT dcigettext__ #endif /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale. */ char * DCNGETTEXT (domainname, msgid1, msgid2, n, category) const char *domainname; const char *msgid1; const char *msgid2; unsigned long int n; int category; { return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dcngettext, dcngettext); #endif pidgin-encryption-3.1/intl/localcharset.c0000644000175100017510000001540111365171217015525 00000000000000/* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ /* Written by Bruno Haible . */ #ifdef HAVE_CONFIG_H # include #endif #if HAVE_STDDEF_H # include #endif #include #if HAVE_STRING_H # include #else # include #endif #if HAVE_STDLIB_H # include #endif #if defined _WIN32 || defined __WIN32__ # undef WIN32 /* avoid warning on mingw32 */ # define WIN32 #endif #ifndef WIN32 # if HAVE_LANGINFO_CODESET # include # else # if HAVE_SETLOCALE # include # endif # endif #else /* WIN32 */ # define WIN32_LEAN_AND_MEAN # include #endif #ifndef DIRECTORY_SEPARATOR # define DIRECTORY_SEPARATOR '/' #endif #ifndef ISSLASH # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) #endif /* The following static variable is declared 'volatile' to avoid a possible multithread problem in the function get_charset_aliases. If we are running in a threaded environment, and if two threads initialize 'charset_aliases' simultaneously, both will produce the same value, and everything will be ok if the two assignments to 'charset_aliases' are atomic. But I don't know what will happen if the two assignments mix. */ #if __STDC__ != 1 # define volatile /* empty */ #endif /* Pointer to the contents of the charset.alias file, if it has already been read, else NULL. Its format is: ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ static const char * volatile charset_aliases; /* Return a pointer to the contents of the charset.alias file. */ static const char * get_charset_aliases () { const char *cp; cp = charset_aliases; if (cp == NULL) { #ifndef WIN32 FILE *fp; const char *dir = LIBDIR; const char *base = "charset.alias"; char *file_name; /* Concatenate dir and base into freshly allocated file_name. */ { size_t dir_len = strlen (dir); size_t base_len = strlen (base); int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); file_name = (char *) malloc (dir_len + add_slash + base_len + 1); if (file_name != NULL) { memcpy (file_name, dir, dir_len); if (add_slash) file_name[dir_len] = DIRECTORY_SEPARATOR; memcpy (file_name + dir_len + add_slash, base, base_len + 1); } } if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL) /* Out of memory or file not found, treat it as empty. */ cp = ""; else { /* Parse the file's contents. */ int c; char buf1[50+1]; char buf2[50+1]; char *res_ptr = NULL; size_t res_size = 0; size_t l1, l2; for (;;) { c = getc (fp); if (c == EOF) break; if (c == '\n' || c == ' ' || c == '\t') continue; if (c == '#') { /* Skip comment, to end of line. */ do c = getc (fp); while (!(c == EOF || c == '\n')); if (c == EOF) break; continue; } ungetc (c, fp); if (fscanf(fp, "%50s %50s", buf1, buf2) < 2) break; l1 = strlen (buf1); l2 = strlen (buf2); if (res_size == 0) { res_size = l1 + 1 + l2 + 1; res_ptr = malloc (res_size + 1); } else { res_size += l1 + 1 + l2 + 1; res_ptr = realloc (res_ptr, res_size + 1); } if (res_ptr == NULL) { /* Out of memory. */ res_size = 0; break; } strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); strcpy (res_ptr + res_size - (l2 + 1), buf2); } fclose (fp); if (res_size == 0) cp = ""; else { *(res_ptr + res_size) = '\0'; cp = res_ptr; } } if (file_name != NULL) free (file_name); #else /* WIN32 */ /* To avoid the troubles of installing a separate file in the same directory as the DLL and of retrieving the DLL's directory at runtime, simply inline the aliases here. */ cp = "CP936" "\0" "GBK" "\0" "CP1361" "\0" "JOHAB" "\0"; #endif charset_aliases = cp; } return cp; } /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed in config.charset. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ #ifdef STATIC STATIC #endif const char * locale_charset () { const char *codeset; const char *aliases; #ifndef WIN32 # if HAVE_LANGINFO_CODESET /* Most systems support nl_langinfo (CODESET) nowadays. */ codeset = nl_langinfo (CODESET); # else /* On old systems which lack it, use setlocale or getenv. */ const char *locale = NULL; /* But most old systems don't have a complete set of locales. Some (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't use setlocale here; it would return "C" when it doesn't support the locale name the user has set. */ # if HAVE_SETLOCALE && 0 locale = setlocale (LC_CTYPE, NULL); # endif if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } } /* On some old systems, one used to set locale = "iso8859_1". On others, you set it to "language_COUNTRY.charset". In any case, we resolve it through the charset.alias file. */ codeset = locale; # endif #else /* WIN32 */ static char buf[2 + 10 + 1]; /* Win32 has a function returning the locale's codepage as a number. */ sprintf (buf, "CP%u", GetACP ()); codeset = buf; #endif if (codeset == NULL) /* The canonical name cannot be determined. */ codeset = ""; /* Resolve alias. */ for (aliases = get_charset_aliases (); *aliases != '\0'; aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) if (strcmp (codeset, aliases) == 0 || (aliases[0] == '*' && aliases[1] == '\0')) { codeset = aliases + strlen (aliases) + 1; break; } return codeset; } pidgin-encryption-3.1/intl/libgnuintl.h0000644000175100017510000001045511365171216015240 00000000000000/* Message catalogs for internationalization. Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifndef _LIBINTL_H #define _LIBINTL_H 1 #include /* The LC_MESSAGES locale category is the category used by the functions gettext() and dgettext(). It is specified in POSIX, but not in ANSI C. On systems that don't define it, use an arbitrary value instead. On Solaris, defines __LOCALE_H then includes (i.e. this file!) and then only defines LC_MESSAGES. To avoid a redefinition warning, don't define LC_MESSAGES in this case. */ #if !defined LC_MESSAGES && !defined __LOCALE_H # define LC_MESSAGES 1729 #endif /* We define an additional symbol to signal that we use the GNU implementation of gettext. */ #define __USE_GNU_GETTEXT 1 /* Resolve a platform specific conflict on DJGPP. GNU gettext takes precedence over _conio_gettext. */ #ifdef __DJGPP__ # undef gettext # define gettext gettext #endif #ifndef PARAMS # if __STDC__ || defined __cplusplus # define PARAMS(args) args # else # define PARAMS(args) () # endif #endif #ifdef __cplusplus extern "C" { #endif /* Look up MSGID in the current default message catalog for the current LC_MESSAGES locale. If not found, returns MSGID itself (the default text). */ extern char *gettext PARAMS ((const char *__msgid)); /* Look up MSGID in the DOMAINNAME message catalog for the current LC_MESSAGES locale. */ extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid)); /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale. */ extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid, int __category)); /* Similar to `gettext' but select the plural form corresponding to the number N. */ extern char *ngettext PARAMS ((const char *__msgid1, const char *__msgid2, unsigned long int __n)); /* Similar to `dgettext' but select the plural form corresponding to the number N. */ extern char *dngettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n)); /* Similar to `dcgettext' but select the plural form corresponding to the number N. */ extern char *dcngettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category)); /* Set the current default message catalog to DOMAINNAME. If DOMAINNAME is null, return the current default. If DOMAINNAME is "", reset to the default of "messages". */ extern char *textdomain PARAMS ((const char *__domainname)); /* Specify that the DOMAINNAME message catalog will be found in DIRNAME rather than in the system locale data base. */ extern char *bindtextdomain PARAMS ((const char *__domainname, const char *__dirname)); /* Specify the character encoding in which the messages from the DOMAINNAME message catalog will be returned. */ extern char *bind_textdomain_codeset PARAMS ((const char *__domainname, const char *__codeset)); /* Optimized version of the functions above. */ #if defined __OPTIMIZED /* These are macros, but could also be inline functions. */ # define gettext(msgid) \ dgettext (NULL, msgid) # define dgettext(domainname, msgid) \ dcgettext (domainname, msgid, LC_MESSAGES) # define ngettext(msgid1, msgid2, n) \ dngettext (NULL, msgid1, msgid2, n) # define dngettext(domainname, msgid1, msgid2, n) \ dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES) #endif /* Optimizing. */ #ifdef __cplusplus } #endif #endif /* libintl.h */ pidgin-encryption-3.1/intl/dgettext.c0000644000175100017510000000342011365171217014707 00000000000000/* Implementation of the dgettext(3) function. Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DGETTEXT __dgettext # define DCGETTEXT __dcgettext #else # define DGETTEXT dgettext__ # define DCGETTEXT dcgettext__ #endif /* Look up MSGID in the DOMAINNAME message catalog of the current LC_MESSAGES locale. */ char * DGETTEXT (domainname, msgid) const char *domainname; const char *msgid; { return DCGETTEXT (domainname, msgid, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dgettext, dgettext); #endif pidgin-encryption-3.1/intl/dcgettext.c0000644000175100017510000000345411365171217015061 00000000000000/* Implementation of the dcgettext(3) function. Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifdef HAVE_CONFIG_H # include #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DCGETTEXT __dcgettext # define DCIGETTEXT __dcigettext #else # define DCGETTEXT dcgettext__ # define DCIGETTEXT dcigettext__ #endif /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale. */ char * DCGETTEXT (domainname, msgid, category) const char *domainname; const char *msgid; int category; { return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dcgettext, dcgettext); #endif pidgin-encryption-3.1/intl/finddomain.c0000644000175100017510000001317011365171217015172 00000000000000/* Handle list of needed message catalogs Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* List of already loaded domains. */ static struct loaded_l10nfile *_nl_loaded_domains; /* Return a data structure describing the message catalog described by the DOMAINNAME and CATEGORY parameters with respect to the currently established bindings. */ struct loaded_l10nfile * internal_function _nl_find_domain (dirname, locale, domainname, domainbinding) const char *dirname; char *locale; const char *domainname; struct binding *domainbinding; { struct loaded_l10nfile *retval; const char *language; const char *modifier; const char *territory; const char *codeset; const char *normalized_codeset; const char *special; const char *sponsor; const char *revision; const char *alias_value; int mask; /* LOCALE can consist of up to four recognized parts for the XPG syntax: language[_territory[.codeset]][@modifier] and six parts for the CEN syntax: language[_territory][+audience][+special][,[sponsor][_revision]] Beside the first part all of them are allowed to be missing. If the full specified locale is not found, the less specific one are looked for. The various parts will be stripped off according to the following order: (1) revision (2) sponsor (3) special (4) codeset (5) normalized codeset (6) territory (7) audience/modifier */ /* If we have already tested for this locale entry there has to be one data set in the list of loaded domains. */ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, strlen (dirname) + 1, 0, locale, NULL, NULL, NULL, NULL, NULL, NULL, NULL, domainname, 0); if (retval != NULL) { /* We know something about this locale. */ int cnt; if (retval->decided == 0) _nl_load_domain (retval, domainbinding); if (retval->data != NULL) return retval; for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) { if (retval->successor[cnt]->decided == 0) _nl_load_domain (retval->successor[cnt], domainbinding); if (retval->successor[cnt]->data != NULL) break; } return cnt >= 0 ? retval : NULL; /* NOTREACHED */ } /* See whether the locale value is an alias. If yes its value *overwrites* the alias name. No test for the original value is done. */ alias_value = _nl_expand_alias (locale); if (alias_value != NULL) { #if defined _LIBC || defined HAVE_STRDUP locale = strdup (alias_value); if (locale == NULL) return NULL; #else size_t len = strlen (alias_value) + 1; locale = (char *) malloc (len); if (locale == NULL) return NULL; memcpy (locale, alias_value, len); #endif } /* Now we determine the single parts of the locale name. First look for the language. Termination symbols are `_' and `@' if we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */ mask = _nl_explode_name (locale, &language, &modifier, &territory, &codeset, &normalized_codeset, &special, &sponsor, &revision); /* Create all possible locale entries which might be interested in generalization. */ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, strlen (dirname) + 1, mask, language, territory, codeset, normalized_codeset, modifier, special, sponsor, revision, domainname, 1); if (retval == NULL) /* This means we are out of core. */ return NULL; if (retval->decided == 0) _nl_load_domain (retval, domainbinding); if (retval->data == NULL) { int cnt; for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) { if (retval->successor[cnt]->decided == 0) _nl_load_domain (retval->successor[cnt], domainbinding); if (retval->successor[cnt]->data != NULL) break; } } /* The room for an alias was dynamically allocated. Free it now. */ if (alias_value != NULL) free (locale); /* The space for normalized_codeset is dynamically allocated. Free it. */ if (mask & XPG_NORM_CODESET) free ((void *) normalized_codeset); return retval; } #ifdef _LIBC static void __attribute__ ((unused)) free_mem (void) { struct loaded_l10nfile *runp = _nl_loaded_domains; while (runp != NULL) { struct loaded_l10nfile *here = runp; if (runp->data != NULL) _nl_unload_domain ((struct loaded_domain *) runp->data); runp = runp->next; free ((char *) here->filename); free (here); } } text_set_element (__libc_subfreeres, free_mem); #endif pidgin-encryption-3.1/intl/config.charset0000755000175100017510000003201511365171215015536 00000000000000#! /bin/sh # Output a system dependent table of character encoding aliases. # # Copyright (C) 2000-2001 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU Library General Public License as published # by the Free Software Foundation; either version 2, 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 # Library General Public License for more details. # # You should have received a copy of the GNU Library 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. # # The table consists of lines of the form # ALIAS CANONICAL # # ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". # ALIAS is compared in a case sensitive way. # # CANONICAL is the GNU canonical name for this character encoding. # It must be an encoding supported by libiconv. Support by GNU libc is # also desirable. CANONICAL is case insensitive. Usually an upper case # MIME charset name is preferred. # The current list of GNU canonical charset names is as follows. # # name used by which systems a MIME name? # ASCII, ANSI_X3.4-1968 glibc solaris freebsd # ISO-8859-1 glibc aix hpux irix osf solaris freebsd yes # ISO-8859-2 glibc aix hpux irix osf solaris freebsd yes # ISO-8859-3 glibc yes # ISO-8859-4 osf solaris freebsd yes # ISO-8859-5 glibc aix hpux irix osf solaris freebsd yes # ISO-8859-6 glibc aix hpux solaris yes # ISO-8859-7 glibc aix hpux irix osf solaris yes # ISO-8859-8 glibc aix hpux osf solaris yes # ISO-8859-9 glibc aix hpux irix osf solaris yes # ISO-8859-13 glibc # ISO-8859-15 glibc aix osf solaris freebsd # KOI8-R glibc solaris freebsd yes # KOI8-U glibc freebsd yes # CP437 dos # CP775 dos # CP850 aix osf dos # CP852 dos # CP855 dos # CP856 aix # CP857 dos # CP861 dos # CP862 dos # CP864 dos # CP865 dos # CP866 freebsd dos # CP869 dos # CP874 win32 dos # CP922 aix # CP932 aix win32 dos # CP943 aix # CP949 osf win32 dos # CP950 win32 dos # CP1046 aix # CP1124 aix # CP1129 aix # CP1250 win32 # CP1251 glibc win32 # CP1252 aix win32 # CP1253 win32 # CP1254 win32 # CP1255 win32 # CP1256 win32 # CP1257 win32 # GB2312 glibc aix hpux irix solaris freebsd yes # EUC-JP glibc aix hpux irix osf solaris freebsd yes # EUC-KR glibc aix hpux irix osf solaris freebsd yes # EUC-TW glibc aix hpux irix osf solaris # BIG5 glibc aix hpux osf solaris freebsd yes # BIG5-HKSCS glibc # GBK aix osf win32 dos # GB18030 glibc # SHIFT_JIS hpux osf solaris freebsd yes # JOHAB glibc win32 # TIS-620 glibc aix hpux osf solaris # VISCII glibc yes # HP-ROMAN8 hpux # HP-ARABIC8 hpux # HP-GREEK8 hpux # HP-HEBREW8 hpux # HP-TURKISH8 hpux # HP-KANA8 hpux # DEC-KANJI osf # DEC-HANYU osf # UTF-8 glibc aix hpux osf solaris yes # # Note: Names which are not marked as being a MIME name should not be used in # Internet protocols for information interchange (mail, news, etc.). # # Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications # must understand both names and treat them as equivalent. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM host="$1" os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` echo "# This file contains a table of character encoding aliases," echo "# suitable for operating system '${os}'." echo "# It was automatically generated from config.charset." # List of references, updated during installation: echo "# Packages using this file: " case "$os" in linux* | *-gnu*) # With glibc-2.1 or newer, we don't need any canonicalization, # because glibc has iconv and both glibc and libiconv support all # GNU canonical names directly. Therefore, the Makefile does not # need to install the alias file at all. # The following applies only to glibc-2.0.x and older libcs. echo "ISO_646.IRV:1983 ASCII" ;; aix*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-6 ISO-8859-6" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "IBM-850 CP850" echo "IBM-856 CP856" echo "IBM-921 ISO-8859-13" echo "IBM-922 CP922" echo "IBM-932 CP932" echo "IBM-943 CP943" echo "IBM-1046 CP1046" echo "IBM-1124 CP1124" echo "IBM-1129 CP1129" echo "IBM-1252 CP1252" echo "IBM-eucCN GB2312" echo "IBM-eucJP EUC-JP" echo "IBM-eucKR EUC-KR" echo "IBM-eucTW EUC-TW" echo "big5 BIG5" echo "GBK GBK" echo "TIS-620 TIS-620" echo "UTF-8 UTF-8" ;; hpux*) echo "iso88591 ISO-8859-1" echo "iso88592 ISO-8859-2" echo "iso88595 ISO-8859-5" echo "iso88596 ISO-8859-6" echo "iso88597 ISO-8859-7" echo "iso88598 ISO-8859-8" echo "iso88599 ISO-8859-9" echo "iso885915 ISO-8859-15" echo "roman8 HP-ROMAN8" echo "arabic8 HP-ARABIC8" echo "greek8 HP-GREEK8" echo "hebrew8 HP-HEBREW8" echo "turkish8 HP-TURKISH8" echo "kana8 HP-KANA8" echo "tis620 TIS-620" echo "big5 BIG5" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "hp15CN GB2312" #echo "ccdc ?" # what is this? echo "SJIS SHIFT_JIS" echo "utf8 UTF-8" ;; irix*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-9 ISO-8859-9" echo "eucCN GB2312" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" ;; osf*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "cp850 CP850" echo "big5 BIG5" echo "dechanyu DEC-HANYU" echo "dechanzi GB2312" echo "deckanji DEC-KANJI" echo "deckorean EUC-KR" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "GBK GBK" echo "KSC5601 CP949" echo "sdeckanji EUC-JP" echo "SJIS SHIFT_JIS" echo "TACTIS TIS-620" echo "UTF-8 UTF-8" ;; solaris*) echo "646 ASCII" echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-6 ISO-8859-6" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "koi8-r KOI8-R" echo "BIG5 BIG5" echo "gb2312 GB2312" echo "cns11643 EUC-TW" echo "5601 EUC-KR" echo "eucJP EUC-JP" echo "PCK SHIFT_JIS" echo "TIS620.2533 TIS-620" #echo "sun_eu_greek ?" # what is this? echo "UTF-8 UTF-8" ;; freebsd*) # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "C ASCII" echo "US-ASCII ASCII" for l in la_LN lt_LN; do echo "$l.ASCII ASCII" done for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do echo "$l.ISO_8859-1 ISO-8859-1" echo "$l.DIS_8859-15 ISO-8859-15" done for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do echo "$l.ISO_8859-2 ISO-8859-2" done for l in la_LN lt_LT; do echo "$l.ISO_8859-4 ISO-8859-4" done for l in ru_RU ru_SU; do echo "$l.KOI8-R KOI8-R" echo "$l.ISO_8859-5 ISO-8859-5" echo "$l.CP866 CP866" done echo "uk_UA.KOI8-U KOI8-U" echo "zh_TW.BIG5 BIG5" echo "zh_TW.Big5 BIG5" echo "zh_CN.EUC GB2312" echo "ja_JP.EUC EUC-JP" echo "ja_JP.SJIS SHIFT_JIS" echo "ja_JP.Shift_JIS SHIFT_JIS" echo "ko_KR.EUC EUC-KR" ;; beos*) # BeOS has a single locale, and it has UTF-8 encoding. echo "* UTF-8" ;; msdosdjgpp*) # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "#" echo "# The encodings given here may not all be correct." echo "# If you find that the encoding given for your language and" echo "# country is not the one your DOS machine actually uses, just" echo "# correct it in this file, and send a mail to" echo "# Juan Manuel Guerrero " echo "# and Bruno Haible ." echo "#" echo "C ASCII" # ISO-8859-1 languages echo "ca CP850" echo "ca_ES CP850" echo "da CP865" # not CP850 ?? echo "da_DK CP865" # not CP850 ?? echo "de CP850" echo "de_AT CP850" echo "de_CH CP850" echo "de_DE CP850" echo "en CP850" echo "en_AU CP850" # not CP437 ?? echo "en_CA CP850" echo "en_GB CP850" echo "en_NZ CP437" echo "en_US CP437" echo "en_ZA CP850" # not CP437 ?? echo "es CP850" echo "es_AR CP850" echo "es_BO CP850" echo "es_CL CP850" echo "es_CO CP850" echo "es_CR CP850" echo "es_CU CP850" echo "es_DO CP850" echo "es_EC CP850" echo "es_ES CP850" echo "es_GT CP850" echo "es_HN CP850" echo "es_MX CP850" echo "es_NI CP850" echo "es_PA CP850" echo "es_PY CP850" echo "es_PE CP850" echo "es_SV CP850" echo "es_UY CP850" echo "es_VE CP850" echo "et CP850" echo "et_EE CP850" echo "eu CP850" echo "eu_ES CP850" echo "fi CP850" echo "fi_FI CP850" echo "fr CP850" echo "fr_BE CP850" echo "fr_CA CP850" echo "fr_CH CP850" echo "fr_FR CP850" echo "ga CP850" echo "ga_IE CP850" echo "gd CP850" echo "gd_GB CP850" echo "gl CP850" echo "gl_ES CP850" echo "id CP850" # not CP437 ?? echo "id_ID CP850" # not CP437 ?? echo "is CP861" # not CP850 ?? echo "is_IS CP861" # not CP850 ?? echo "it CP850" echo "it_CH CP850" echo "it_IT CP850" echo "lt CP775" echo "lt_LT CP775" echo "lv CP775" echo "lv_LV CP775" echo "nb CP865" # not CP850 ?? echo "nb_NO CP865" # not CP850 ?? echo "nl CP850" echo "nl_BE CP850" echo "nl_NL CP850" echo "nn CP865" # not CP850 ?? echo "nn_NO CP865" # not CP850 ?? echo "no CP865" # not CP850 ?? echo "no_NO CP865" # not CP850 ?? echo "pt CP850" echo "pt_BR CP850" echo "pt_PT CP850" echo "sv CP850" echo "sv_SE CP850" # ISO-8859-2 languages echo "cs CP852" echo "cs_CZ CP852" echo "hr CP852" echo "hr_HR CP852" echo "hu CP852" echo "hu_HU CP852" echo "pl CP852" echo "pl_PL CP852" echo "ro CP852" echo "ro_RO CP852" echo "sk CP852" echo "sk_SK CP852" echo "sl CP852" echo "sl_SI CP852" echo "sq CP852" echo "sq_AL CP852" echo "sr CP852" # CP852 or CP866 or CP855 ?? echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? # ISO-8859-3 languages echo "mt CP850" echo "mt_MT CP850" # ISO-8859-5 languages echo "be CP866" echo "be_BE CP866" echo "bg CP866" # not CP855 ?? echo "bg_BG CP866" # not CP855 ?? echo "mk CP866" # not CP855 ?? echo "mk_MK CP866" # not CP855 ?? echo "ru KOI8-R" # not CP866 ?? echo "ru_RU KOI8-R" # not CP866 ?? # ISO-8859-6 languages echo "ar CP864" echo "ar_AE CP864" echo "ar_DZ CP864" echo "ar_EG CP864" echo "ar_IQ CP864" echo "ar_IR CP864" echo "ar_JO CP864" echo "ar_KW CP864" echo "ar_MA CP864" echo "ar_OM CP864" echo "ar_QA CP864" echo "ar_SA CP864" echo "ar_SY CP864" # ISO-8859-7 languages echo "el CP869" echo "el_GR CP869" # ISO-8859-8 languages echo "he CP862" echo "he_IL CP862" # ISO-8859-9 languages echo "tr CP857" echo "tr_TR CP857" # Japanese echo "ja CP932" echo "ja_JP CP932" # Chinese echo "zh_CN GBK" echo "zh_TW CP950" # not CP938 ?? # Korean echo "kr CP949" # not CP934 ?? echo "kr_KR CP949" # not CP934 ?? # Thai echo "th CP874" echo "th_TH CP874" # Other echo "eo CP850" echo "eo_EO CP850" ;; esac pidgin-encryption-3.1/intl/ref-add.sin0000644000175100017510000000210111365171216014722 00000000000000# Add this package to a list of references stored in a text file. # # Copyright (C) 2000 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU Library General Public License as published # by the Free Software Foundation; either version 2, 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 # Library General Public License for more details. # # You should have received a copy of the GNU Library 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. # # Written by Bruno Haible . # /^# Packages using this file: / { s/# Packages using this file:// ta :a s/ @PACKAGE@ / @PACKAGE@ / tb s/ $/ @PACKAGE@ / :b s/^/# Packages using this file:/ } pidgin-encryption-3.1/intl/gettext.h0000644000175100017510000000604011365171215014547 00000000000000/* Description of GNU message catalog format: general file layout. Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifndef _GETTEXT_H #define _GETTEXT_H 1 #if HAVE_LIMITS_H || _LIBC # include #endif /* @@ end of prolog @@ */ /* The magic number of the GNU message catalog format. */ #define _MAGIC 0x950412de #define _MAGIC_SWAPPED 0xde120495 /* Revision number of the currently used .mo (binary) file format. */ #define MO_REVISION_NUMBER 0 /* The following contortions are an attempt to use the C preprocessor to determine an unsigned integral type that is 32 bits wide. An alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work when cross-compiling. */ #if __STDC__ # define UINT_MAX_32_BITS 4294967295U #else # define UINT_MAX_32_BITS 0xFFFFFFFF #endif /* If UINT_MAX isn't defined, assume it's a 32-bit type. This should be valid for all systems GNU cares about because that doesn't include 16-bit systems, and only modern systems (that certainly have ) have 64+-bit integral types. */ #ifndef UINT_MAX # define UINT_MAX UINT_MAX_32_BITS #endif #if UINT_MAX == UINT_MAX_32_BITS typedef unsigned nls_uint32; #else # if USHRT_MAX == UINT_MAX_32_BITS typedef unsigned short nls_uint32; # else # if ULONG_MAX == UINT_MAX_32_BITS typedef unsigned long nls_uint32; # else /* The following line is intended to throw an error. Using #error is not portable enough. */ "Cannot determine unsigned 32-bit data type." # endif # endif #endif /* Header for binary .mo file format. */ struct mo_file_header { /* The magic number. */ nls_uint32 magic; /* The revision number of the file format. */ nls_uint32 revision; /* The number of strings pairs. */ nls_uint32 nstrings; /* Offset of table with start offsets of original strings. */ nls_uint32 orig_tab_offset; /* Offset of table with start offsets of translation strings. */ nls_uint32 trans_tab_offset; /* Size of hashing table. */ nls_uint32 hash_tab_size; /* Offset of first hashing entry. */ nls_uint32 hash_tab_offset; }; struct string_desc { /* Length of addressed string. */ nls_uint32 length; /* Offset of string in file. */ nls_uint32 offset; }; /* @@ begin of epilog @@ */ #endif /* gettext.h */ pidgin-encryption-3.1/intl/loadinfo.h0000644000175100017510000000646411365171216014671 00000000000000/* Copyright (C) 1996-1999, 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ #ifndef _LOADINFO_H #define _LOADINFO_H 1 #ifndef PARAMS # if __STDC__ # define PARAMS(args) args # else # define PARAMS(args) () # endif #endif #ifndef internal_function # define internal_function #endif /* Tell the compiler when a conditional or integer expression is almost always true or almost always false. */ #ifndef HAVE_BUILTIN_EXPECT # define __builtin_expect(expr, val) (expr) #endif /* Separator in PATH like lists of pathnames. */ #if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ /* Win32, OS/2, DOS */ # define PATH_SEPARATOR ';' #else /* Unix */ # define PATH_SEPARATOR ':' #endif /* Encoding of locale name parts. */ #define CEN_REVISION 1 #define CEN_SPONSOR 2 #define CEN_SPECIAL 4 #define XPG_NORM_CODESET 8 #define XPG_CODESET 16 #define TERRITORY 32 #define CEN_AUDIENCE 64 #define XPG_MODIFIER 128 #define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE) #define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER) struct loaded_l10nfile { const char *filename; int decided; const void *data; struct loaded_l10nfile *next; struct loaded_l10nfile *successor[1]; }; /* Normalize codeset name. There is no standard for the codeset names. Normalization allows the user to use any of the common names. The return value is dynamically allocated and has to be freed by the caller. */ extern const char *_nl_normalize_codeset PARAMS ((const char *codeset, size_t name_len)); extern struct loaded_l10nfile * _nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list, const char *dirlist, size_t dirlist_len, int mask, const char *language, const char *territory, const char *codeset, const char *normalized_codeset, const char *modifier, const char *special, const char *sponsor, const char *revision, const char *filename, int do_allocate)); extern const char *_nl_expand_alias PARAMS ((const char *name)); /* normalized_codeset is dynamically allocated and has to be freed by the caller. */ extern int _nl_explode_name PARAMS ((char *name, const char **language, const char **modifier, const char **territory, const char **codeset, const char **normalized_codeset, const char **special, const char **sponsor, const char **revision)); extern char *_nl_find_language PARAMS ((const char *name)); #endif /* loadinfo.h */ pidgin-encryption-3.1/intl/plural.y0000644000175100017510000002035011365171217014405 00000000000000%{ /* Expression parsing for plural form selection. Copyright (C) 2000, 2001 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ /* The bison generated parser uses alloca. AIX 3 forces us to put this declaration at the beginning of the file. The declaration in bison's skeleton file comes too late. This must come before because may include arbitrary system headers. */ #if defined _AIX && !defined __GNUC__ #pragma alloca #endif #ifdef HAVE_CONFIG_H # include #endif #include #include "gettextP.h" /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define FREE_EXPRESSION __gettext_free_exp #else # define FREE_EXPRESSION gettext_free_exp__ # define __gettextparse gettextparse__ #endif #define YYLEX_PARAM &((struct parse_args *) arg)->cp #define YYPARSE_PARAM arg %} %pure_parser %expect 10 %union { unsigned long int num; enum operator op; struct expression *exp; } %{ /* Prototypes for local functions. */ static struct expression *new_exp PARAMS ((int nargs, enum operator op, struct expression * const *args)); static inline struct expression *new_exp_0 PARAMS ((enum operator op)); static inline struct expression *new_exp_1 PARAMS ((enum operator op, struct expression *right)); static struct expression *new_exp_2 PARAMS ((enum operator op, struct expression *left, struct expression *right)); static inline struct expression *new_exp_3 PARAMS ((enum operator op, struct expression *bexp, struct expression *tbranch, struct expression *fbranch)); static int yylex PARAMS ((YYSTYPE *lval, const char **pexp)); static void yyerror PARAMS ((const char *str)); /* Allocation of expressions. */ static struct expression * new_exp (nargs, op, args) int nargs; enum operator op; struct expression * const *args; { int i; struct expression *newp; /* If any of the argument could not be malloc'ed, just return NULL. */ for (i = nargs - 1; i >= 0; i--) if (args[i] == NULL) goto fail; /* Allocate a new expression. */ newp = (struct expression *) malloc (sizeof (*newp)); if (newp != NULL) { newp->nargs = nargs; newp->operation = op; for (i = nargs - 1; i >= 0; i--) newp->val.args[i] = args[i]; return newp; } fail: for (i = nargs - 1; i >= 0; i--) FREE_EXPRESSION (args[i]); return NULL; } static inline struct expression * new_exp_0 (op) enum operator op; { return new_exp (0, op, NULL); } static inline struct expression * new_exp_1 (op, right) enum operator op; struct expression *right; { struct expression *args[1]; args[0] = right; return new_exp (1, op, args); } static struct expression * new_exp_2 (op, left, right) enum operator op; struct expression *left; struct expression *right; { struct expression *args[2]; args[0] = left; args[1] = right; return new_exp (2, op, args); } static inline struct expression * new_exp_3 (op, bexp, tbranch, fbranch) enum operator op; struct expression *bexp; struct expression *tbranch; struct expression *fbranch; { struct expression *args[3]; args[0] = bexp; args[1] = tbranch; args[2] = fbranch; return new_exp (3, op, args); } %} /* This declares that all operators have the same associativity and the precedence order as in C. See [Harbison, Steele: C, A Reference Manual]. There is no unary minus and no bitwise operators. Operators with the same syntactic behaviour have been merged into a single token, to save space in the array generated by bison. */ %right '?' /* ? */ %left '|' /* || */ %left '&' /* && */ %left EQUOP2 /* == != */ %left CMPOP2 /* < > <= >= */ %left ADDOP2 /* + - */ %left MULOP2 /* * / % */ %right '!' /* ! */ %token EQUOP2 CMPOP2 ADDOP2 MULOP2 %token NUMBER %type exp %% start: exp { if ($1 == NULL) YYABORT; ((struct parse_args *) arg)->res = $1; } ; exp: exp '?' exp ':' exp { $$ = new_exp_3 (qmop, $1, $3, $5); } | exp '|' exp { $$ = new_exp_2 (lor, $1, $3); } | exp '&' exp { $$ = new_exp_2 (land, $1, $3); } | exp EQUOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | exp CMPOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | exp ADDOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | exp MULOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | '!' exp { $$ = new_exp_1 (lnot, $2); } | 'n' { $$ = new_exp_0 (var); } | NUMBER { if (($$ = new_exp_0 (num)) != NULL) $$->val.num = $1; } | '(' exp ')' { $$ = $2; } ; %% void internal_function FREE_EXPRESSION (exp) struct expression *exp; { if (exp == NULL) return; /* Handle the recursive case. */ switch (exp->nargs) { case 3: FREE_EXPRESSION (exp->val.args[2]); /* FALLTHROUGH */ case 2: FREE_EXPRESSION (exp->val.args[1]); /* FALLTHROUGH */ case 1: FREE_EXPRESSION (exp->val.args[0]); /* FALLTHROUGH */ default: break; } free (exp); } static int yylex (lval, pexp) YYSTYPE *lval; const char **pexp; { const char *exp = *pexp; int result; while (1) { if (exp[0] == '\0') { *pexp = exp; return YYEOF; } if (exp[0] != ' ' && exp[0] != '\t') break; ++exp; } result = *exp++; switch (result) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { unsigned long int n = result - '0'; while (exp[0] >= '0' && exp[0] <= '9') { n *= 10; n += exp[0] - '0'; ++exp; } lval->num = n; result = NUMBER; } break; case '=': if (exp[0] == '=') { ++exp; lval->op = equal; result = EQUOP2; } else result = YYERRCODE; break; case '!': if (exp[0] == '=') { ++exp; lval->op = not_equal; result = EQUOP2; } break; case '&': case '|': if (exp[0] == result) ++exp; else result = YYERRCODE; break; case '<': if (exp[0] == '=') { ++exp; lval->op = less_or_equal; } else lval->op = less_than; result = CMPOP2; break; case '>': if (exp[0] == '=') { ++exp; lval->op = greater_or_equal; } else lval->op = greater_than; result = CMPOP2; break; case '*': lval->op = mult; result = MULOP2; break; case '/': lval->op = divide; result = MULOP2; break; case '%': lval->op = module; result = MULOP2; break; case '+': lval->op = plus; result = ADDOP2; break; case '-': lval->op = minus; result = ADDOP2; break; case 'n': case '?': case ':': case '(': case ')': /* Nothing, just return the character. */ break; case ';': case '\n': case '\0': /* Be safe and let the user call this function again. */ --exp; result = YYEOF; break; default: result = YYERRCODE; #if YYDEBUG != 0 --exp; #endif break; } *pexp = exp; return result; } static void yyerror (str) const char *str; { /* Do nothing. We don't print error messages here. */ } pidgin-encryption-3.1/intl/l10nflist.c0000644000175100017510000002441611365171217014703 00000000000000/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ /* Tell glibc's to provide a prototype for stpcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif #include #if !HAVE_STRCHR && !defined _LIBC # ifndef strchr # define strchr index # endif #endif #if defined _LIBC || defined HAVE_ARGZ_H # include #endif #include #include #include #include "loadinfo.h" /* On some strange systems still no definition of NULL is found. Sigh! */ #ifndef NULL # if defined __STDC__ && __STDC__ # define NULL ((void *) 0) # else # define NULL 0 # endif #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # ifndef stpcpy # define stpcpy(dest, src) __stpcpy(dest, src) # endif #else # ifndef HAVE_STPCPY static char *stpcpy PARAMS ((char *dest, const char *src)); # endif #endif /* Define function which are usually not available. */ #if !defined _LIBC && !defined HAVE___ARGZ_COUNT /* Returns the number of strings in ARGZ. */ static size_t argz_count__ PARAMS ((const char *argz, size_t len)); static size_t argz_count__ (argz, len) const char *argz; size_t len; { size_t count = 0; while (len > 0) { size_t part_len = strlen (argz); argz += part_len + 1; len -= part_len + 1; count++; } return count; } # undef __argz_count # define __argz_count(argz, len) argz_count__ (argz, len) #endif /* !_LIBC && !HAVE___ARGZ_COUNT */ #if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY /* Make '\0' separated arg vector ARGZ printable by converting all the '\0's except the last into the character SEP. */ static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep)); static void argz_stringify__ (argz, len, sep) char *argz; size_t len; int sep; { while (len > 0) { size_t part_len = strlen (argz); argz += part_len; len -= part_len + 1; if (len > 0) *argz++ = sep; } } # undef __argz_stringify # define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep) #endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */ #if !defined _LIBC && !defined HAVE___ARGZ_NEXT static char *argz_next__ PARAMS ((char *argz, size_t argz_len, const char *entry)); static char * argz_next__ (argz, argz_len, entry) char *argz; size_t argz_len; const char *entry; { if (entry) { if (entry < argz + argz_len) entry = strchr (entry, '\0') + 1; return entry >= argz + argz_len ? NULL : (char *) entry; } else if (argz_len > 0) return argz; else return 0; } # undef __argz_next # define __argz_next(argz, len, entry) argz_next__ (argz, len, entry) #endif /* !_LIBC && !HAVE___ARGZ_NEXT */ /* Return number of bits set in X. */ static int pop PARAMS ((int x)); static inline int pop (x) int x; { /* We assume that no more than 16 bits are used. */ x = ((x & ~0x5555) >> 1) + (x & 0x5555); x = ((x & ~0x3333) >> 2) + (x & 0x3333); x = ((x >> 4) + x) & 0x0f0f; x = ((x >> 8) + x) & 0xff; return x; } struct loaded_l10nfile * _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language, territory, codeset, normalized_codeset, modifier, special, sponsor, revision, filename, do_allocate) struct loaded_l10nfile **l10nfile_list; const char *dirlist; size_t dirlist_len; int mask; const char *language; const char *territory; const char *codeset; const char *normalized_codeset; const char *modifier; const char *special; const char *sponsor; const char *revision; const char *filename; int do_allocate; { char *abs_filename; struct loaded_l10nfile *last = NULL; struct loaded_l10nfile *retval; char *cp; size_t entries; int cnt; /* Allocate room for the full file name. */ abs_filename = (char *) malloc (dirlist_len + strlen (language) + ((mask & TERRITORY) != 0 ? strlen (territory) + 1 : 0) + ((mask & XPG_CODESET) != 0 ? strlen (codeset) + 1 : 0) + ((mask & XPG_NORM_CODESET) != 0 ? strlen (normalized_codeset) + 1 : 0) + (((mask & XPG_MODIFIER) != 0 || (mask & CEN_AUDIENCE) != 0) ? strlen (modifier) + 1 : 0) + ((mask & CEN_SPECIAL) != 0 ? strlen (special) + 1 : 0) + (((mask & CEN_SPONSOR) != 0 || (mask & CEN_REVISION) != 0) ? (1 + ((mask & CEN_SPONSOR) != 0 ? strlen (sponsor) + 1 : 0) + ((mask & CEN_REVISION) != 0 ? strlen (revision) + 1 : 0)) : 0) + 1 + strlen (filename) + 1); if (abs_filename == NULL) return NULL; retval = NULL; last = NULL; /* Construct file name. */ memcpy (abs_filename, dirlist, dirlist_len); __argz_stringify (abs_filename, dirlist_len, PATH_SEPARATOR); cp = abs_filename + (dirlist_len - 1); *cp++ = '/'; cp = stpcpy (cp, language); if ((mask & TERRITORY) != 0) { *cp++ = '_'; cp = stpcpy (cp, territory); } if ((mask & XPG_CODESET) != 0) { *cp++ = '.'; cp = stpcpy (cp, codeset); } if ((mask & XPG_NORM_CODESET) != 0) { *cp++ = '.'; cp = stpcpy (cp, normalized_codeset); } if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0) { /* This component can be part of both syntaces but has different leading characters. For CEN we use `+', else `@'. */ *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@'; cp = stpcpy (cp, modifier); } if ((mask & CEN_SPECIAL) != 0) { *cp++ = '+'; cp = stpcpy (cp, special); } if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0) { *cp++ = ','; if ((mask & CEN_SPONSOR) != 0) cp = stpcpy (cp, sponsor); if ((mask & CEN_REVISION) != 0) { *cp++ = '_'; cp = stpcpy (cp, revision); } } *cp++ = '/'; stpcpy (cp, filename); /* Look in list of already loaded domains whether it is already available. */ last = NULL; for (retval = *l10nfile_list; retval != NULL; retval = retval->next) if (retval->filename != NULL) { int compare = strcmp (retval->filename, abs_filename); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It's not in the list. */ retval = NULL; break; } last = retval; } if (retval != NULL || do_allocate == 0) { free (abs_filename); return retval; } retval = (struct loaded_l10nfile *) malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len) * (1 << pop (mask)) * sizeof (struct loaded_l10nfile *))); if (retval == NULL) return NULL; retval->filename = abs_filename; retval->decided = (__argz_count (dirlist, dirlist_len) != 1 || ((mask & XPG_CODESET) != 0 && (mask & XPG_NORM_CODESET) != 0)); retval->data = NULL; if (last == NULL) { retval->next = *l10nfile_list; *l10nfile_list = retval; } else { retval->next = last->next; last->next = retval; } entries = 0; /* If the DIRLIST is a real list the RETVAL entry corresponds not to a real file. So we have to use the DIRLIST separation mechanism of the inner loop. */ cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask; for (; cnt >= 0; --cnt) if ((cnt & ~mask) == 0 && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0) && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0)) { /* Iterate over all elements of the DIRLIST. */ char *dir = NULL; while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir)) != NULL) retval->successor[entries++] = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt, language, territory, codeset, normalized_codeset, modifier, special, sponsor, revision, filename, 1); } retval->successor[entries] = NULL; return retval; } /* Normalize codeset name. There is no standard for the codeset names. Normalization allows the user to use any of the common names. The return value is dynamically allocated and has to be freed by the caller. */ const char * _nl_normalize_codeset (codeset, name_len) const char *codeset; size_t name_len; { int len = 0; int only_digit = 1; char *retval; char *wp; size_t cnt; for (cnt = 0; cnt < name_len; ++cnt) if (isalnum (codeset[cnt])) { ++len; if (isalpha (codeset[cnt])) only_digit = 0; } retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1); if (retval != NULL) { if (only_digit) wp = stpcpy (retval, "iso"); else wp = retval; for (cnt = 0; cnt < name_len; ++cnt) if (isalpha (codeset[cnt])) *wp++ = tolower (codeset[cnt]); else if (isdigit (codeset[cnt])) *wp++ = codeset[cnt]; *wp = '\0'; } return (const char *) retval; } /* @@ begin of epilog @@ */ /* We don't want libintl.a to depend on any other library. So we avoid the non-standard function stpcpy. In GNU C Library this function is available, though. Also allow the symbol HAVE_STPCPY to be defined. */ #if !_LIBC && !HAVE_STPCPY static char * stpcpy (dest, src) char *dest; const char *src; { while ((*dest++ = *src++) != '\0') /* Do nothing. */ ; return dest - 1; } #endif pidgin-encryption-3.1/intl/Makefile.in0000644000175100017510000002335311365171217014767 00000000000000# Makefile for directory with message catalog handling in GNU NLS Utilities. # Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU Library General Public License as published # by the Free Software Foundation; either version 2, 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 # Library General Public License for more details. # # You should have received a copy of the GNU Library 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. PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = .. VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ transform = @program_transform_name@ libdir = @libdir@ includedir = @includedir@ datadir = @datadir@ localedir = $(datadir)/locale gettextsrcdir = $(datadir)/gettext/intl aliaspath = $(localedir) subdir = intl INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac` l = @INTL_LIBTOOL_SUFFIX_PREFIX@ AR = ar CC = @CC@ LIBTOOL = @LIBTOOL@ RANLIB = @RANLIB@ YACC = @INTLBISON@ -y -d YFLAGS = --name-prefix=__gettext DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \ -DLIBDIR=\"$(libdir)\" @DEFS@ CPPFLAGS = @CPPFLAGS@ CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) HEADERS = $(COMHDRS) libgnuintl.h libgettext.h loadinfo.h COMHDRS = gettext.h gettextP.h hash-string.h SOURCES = $(COMSRCS) intl-compat.c COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \ finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \ explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \ localcharset.c OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \ finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \ explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \ plural.$lo localcharset.$lo GETTOBJS = intl-compat.$lo DISTFILES.common = Makefile.in \ config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES) DISTFILES.generated = plural.c DISTFILES.normal = VERSION DISTFILES.gettext = COPYING.LIB-2 COPYING.LIB-2.1 libintl.glibc DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c # Libtool's library version information for libintl. # Before making a gettext release, the gettext maintainer must change this # according to the libtool documentation, section "Library interface versions". # Maintainers of other packages that include the intl directory must *not* # change these values. LTV_CURRENT=1 LTV_REVISION=1 LTV_AGE=0 .SUFFIXES: .SUFFIXES: .c .y .o .lo .sin .sed .c.o: $(COMPILE) $< .c.lo: $(LIBTOOL) --mode=compile $(COMPILE) $< .y.c: $(YACC) $(YFLAGS) --output $@ $< rm -f $*.h .sin.sed: sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@ mv t-$@ $@ INCLUDES = -I.. -I. -I$(top_srcdir)/intl all: all-@USE_INCLUDED_LIBINTL@ all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed all-no: all-no-@BUILD_INCLUDED_LIBINTL@ all-no-yes: libgnuintl.$la all-no-no: libintl.a libgnuintl.a: $(OBJECTS) rm -f $@ $(AR) cru $@ $(OBJECTS) $(RANLIB) $@ libintl.la libgnuintl.la: $(OBJECTS) $(LIBTOOL) --mode=link \ $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \ $(OBJECTS) @LIBICONV@ \ -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \ -rpath $(libdir) \ -no-undefined libintl.h: libgnuintl.h cp $(srcdir)/libgnuintl.h libintl.h charset.alias: config.charset $(SHELL) $(srcdir)/config.charset '@host@' > t-$@ mv t-$@ $@ check: all # This installation goal is only used in GNU gettext. Packages which # only use the library should use install instead. # We must not install the libintl.h/libintl.a files if we are on a # system which has the GNU gettext() function in its C library or in a # separate library. # If you want to use the one which comes with this version of the # package, you have to use `configure --with-included-gettext'. install: install-exec install-data install-exec: all if test "$(PACKAGE)" = "gettext" \ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \ $(LIBTOOL) --mode=install \ $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \ else \ : ; \ fi if test '@USE_INCLUDED_LIBINTL@' = yes; then \ $(mkinstalldirs) $(DESTDIR)$(libdir); \ temp=$(DESTDIR)$(libdir)/t-charset.alias; \ dest=$(DESTDIR)$(libdir)/charset.alias; \ if test -f $(DESTDIR)$(libdir)/charset.alias; then \ orig=$(DESTDIR)$(libdir)/charset.alias; \ sed -f ref-add.sed $$orig > $$temp; \ $(INSTALL_DATA) $$temp $$dest; \ rm -f $$temp; \ else \ if test @GLIBC21@ = no; then \ orig=charset.alias; \ sed -f ref-add.sed $$orig > $$temp; \ $(INSTALL_DATA) $$temp $$dest; \ rm -f $$temp; \ fi; \ fi; \ $(mkinstalldirs) $(DESTDIR)$(localedir); \ test -f $(DESTDIR)$(localedir)/locale.alias \ && orig=$(DESTDIR)$(localedir)/locale.alias \ || orig=$(srcdir)/locale.alias; \ temp=$(DESTDIR)$(localedir)/t-locale.alias; \ dest=$(DESTDIR)$(localedir)/locale.alias; \ sed -f ref-add.sed $$orig > $$temp; \ $(INSTALL_DATA) $$temp $$dest; \ rm -f $$temp; \ else \ : ; \ fi install-data: all if test "$(PACKAGE)" = "gettext"; then \ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \ $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \ dists="COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common)"; \ for file in $$dists; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \ dists="$(DISTFILES.generated)"; \ for file in $$dists; do \ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ $(INSTALL_DATA) $$dir/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ dists="$(DISTFILES.obsolete)"; \ for file in $$dists; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi # Define this as empty until I found a useful application. installcheck: uninstall: if test "$(PACKAGE)" = "gettext" \ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \ rm -f $(DESTDIR)$(includedir)/libintl.h; \ $(LIBTOOL) --mode=uninstall \ rm -f $(DESTDIR)$(libdir)/libintl.$la; \ else \ : ; \ fi if test '@USE_INCLUDED_LIBINTL@' = yes; then \ if test -f $(DESTDIR)$(libdir)/charset.alias; then \ temp=$(DESTDIR)$(libdir)/t-charset.alias; \ dest=$(DESTDIR)$(libdir)/charset.alias; \ sed -f ref-del.sed $$dest > $$temp; \ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ rm -f $$dest; \ else \ $(INSTALL_DATA) $$temp $$dest; \ fi; \ rm -f $$temp; \ fi; \ if test -f $(DESTDIR)$(localedir)/locale.alias; then \ temp=$(DESTDIR)$(localedir)/t-locale.alias; \ dest=$(DESTDIR)$(localedir)/locale.alias; \ sed -f ref-del.sed $$dest > $$temp; \ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ rm -f $$dest; \ else \ $(INSTALL_DATA) $$temp $$dest; \ fi; \ rm -f $$temp; \ fi; \ else \ : ; \ fi if test "$(PACKAGE)" = "gettext"; then \ for file in VERSION ChangeLog COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi info dvi: $(OBJECTS): ../pidgin-encryption-config.h libgnuintl.h bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h tags: TAGS TAGS: $(HEADERS) $(SOURCES) here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES) id: ID ID: $(HEADERS) $(SOURCES) here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES) mostlyclean: rm -f *.a *.la *.o *.lo core core.* rm -f libintl.h charset.alias ref-add.sed ref-del.sed rm -f -r .libs _libs clean: mostlyclean distclean: clean rm -f Makefile ID TAGS if test "$(PACKAGE)" = gettext; then \ rm -f ChangeLog.inst $(DISTFILES.normal); \ else \ : ; \ fi maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." # GNU gettext needs not contain the file `VERSION' but contains some # other files which should not be distributed in other packages. distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: Makefile if test "$(PACKAGE)" = gettext; then \ additional="$(DISTFILES.gettext)"; \ else \ additional="$(DISTFILES.normal)"; \ fi; \ $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \ for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ ln $$dir/$$file $(distdir) 2> /dev/null \ || cp -p $$dir/$$file $(distdir); \ done Makefile: Makefile.in ../config.status cd .. \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pidgin-encryption-3.1/nonce.h0000644000175100017510000000267211365171052013225 00000000000000/* Nonces for the Pidgin-Encryption plugin */ /* Copyright (C) 2001-2007 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #ifndef NONCE_H #define NONCE_H #include "glib.h" typedef unsigned char Nonce[24]; void PE_nonce_map_init(); void PE_str_to_nonce(Nonce* nonce, char* nonce_str); gchar* PE_nonce_to_str(Nonce* nonce); void PE_incr_nonce(Nonce* nonce); gchar* PE_new_incoming_nonce(const char* name); int PE_check_incoming_nonce(const char* name, char* nonce_str); int PE_nonce_str_len(); #endif pidgin-encryption-3.1/encrypt.h0000755000175100017510000000326711365214370013614 00000000000000/* Gaim encryption plugin */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #ifndef ENCRYPT_H #define ENCRYPT_H #include #ifndef NO_CONFIG #include "pidgin-encryption-config.h" #endif #include #define ENC_WEBSITE "http://pidgin-encrypt.sourceforge.net" #define CRYPTO_SMILEY "PECRYPT:" #define CRYPTO_SMILEY_LEN (sizeof(CRYPTO_SMILEY)-1) typedef struct PE_SentMessage { time_t time; gchar* id; gchar* msg; } PE_SentMessage; void PE_send_stored_msgs(PurpleAccount*, const char *who); void PE_delete_stored_msgs(PurpleAccount*, const char *who); void PE_show_stored_msgs(PurpleAccount*, const char* who); void PE_resend_msg(PurpleAccount*, const char* who, gchar*); #endif pidgin-encryption-3.1/pixmaps/0000777000175100017510000000000011365216007013510 500000000000000pidgin-encryption-3.1/pixmaps/icon_in_lock.png0000644000175100017510000000476211365171051016570 00000000000000‰PNG  IHDR00Wù‡sBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< oIDAThÅš{pTÕÇ?çœ{ïÞ»›Í’H <ä 0(Ó¬­ïq¦ñ¤hg¬ ƒm‡© cµkšAítªÓ±S­ÕvTªhGèˆ "ZBx$ȃ„$»›ì}œþ±I$ $ÙÐïÌ™³÷¼~¿ïùýî9¿sÏ ­5×Ï<»Eض]à8Nûc®d,q-lظ~°(B̰m{ºã8¶mÛØ¶Ýâ8N­RªøøÃšÕk¯šÔ¨ذqý"àWÀ½€è-·,‹qãÆ!¥$,ËÂq Ãh¶¯¬Y½6q%£F`ÃÆõ¿DVV%%%L™2…X,† >Öè •J¡5ÔŸ9Cuu5=:57­Y½¶úšذqýƒÀ_C¡7–ÜÈ ±BJ*¤R ¡3Þ‰i†øh­ ‡#H!9pà+êêêöË׬^Û}9YÆ((=ðG€Ò•+˜:u*>'NTsøp%5'kH&“}íMÓ¤°°Ù³gST\„eY”®XÉ_òðbàEà±ËÉ“™&¼ DæÍŸK~Áx\7Å×¾æoÿ“ÊÕ$“É8쎺®›'’H$pgÑåfÚ…ÄÆ¤ 464õ–¿:˜òýQ^¶í<ðÖš#GŽà{ŽíL&I$ /×/Óäæå`Y!ZZZ{Ë?ºšÎåeÛu$q”R„¬‰DbNù¶2s°>™&‰DÈ g¡ƒ¾%úðÆ8O¦÷°p8L2™4‰Dd°Æ™~Ã0ÉŠD1Œ¾IkÂ.€ë¦ÒžK"‘àrûU¦-  à Žb[öEåCëºéŽZãy‰ÄàQŨ0{,`Ûö•Ú_žï^ð}Ðv™&H!1 e¨aÔk®êd,zþq±Ø£ð-Sv[*Žiš SH`H·]J­•)AI¢'—r)aF„Fo™8´§rÉ 5=¼j]çk£BàÙGÅÓR²YI¤R’PÈBJ0”èSLI¢GÙž\‰~Ê÷¯K÷S?‰Ò±œ†-c¹ëtªWöˆW¡-?÷HÉ–iè¥Ëg2µh2‘,)-¤ !¤‰”6B˜Hi!d!,„4ÓIXHi"„ ½åÂDD­Mâ­G9²ç%Î7|{[Þ9¶z娛ÿVŠ•¥«n`ò´BL#@É”êUغ$7˜~K)Ò9Âì!c¤Ÿ‰‚*Ã÷Rì~ëV‚TÜÙ+Vë.È€4,Sfˆü‰ pIœß…et£”BJ!ÓyoÊF )‚uÒ€þ¿EÈ|°ï@™“˜X|u‡Þ2ƒó/3Bˆ8á,„”xn=:èFÈ0Ê*@)„F©B\´îÂR W·FùàŸ5 '{zzÒ$}»rFvâ´ „Šb9³P†&ðΡ½Ó©Ð—̲R eïqs1°&#œÈx {©ä¼®#ˆF)•vƒŒ M@ë[úˆ$lÙ²EæNXÂäÙ·OÔc Fï+GèúûÞˆ”Þù“{*º9U[Iñ4!ôЃž«‚N§ Ò»P3¬PB!¶¾±ç®¶xrnk‡GsýAÔ þ™Y\p£þUëÞ(ÌͱK+kÛ¼ú¦6lÕ1 Í±ú¼ S¡VÚš´ú`x¦Dî?ÛâÒÚ™Œ%}™Žá.ÂgÇ–ñêÎéö=H é`Zsƒ!(¸íweZKšÚâN¼ËÏMúÑAý¾5cÞÜûxþu´'œáëÝÖš ¡–_d(5¥¥³;;Þíæ˜Yã©í(Ю­# RRzs)Ͻó$Mç£#R¾ÀHßßÜdW*Ëóü¼x2•²Nè;i÷Ä3=HyŠ–vMem3·~÷f^úè—Ô4å“€Zhä/±tks[gDH1Ö÷È;Óêû³Š‹øÍÛ+ØqpÊÌ¡Ð:º Ï+Tµ±|i ù|µ¤òþI^’úÕɨB@ÓÚx@ƒðhîGmh¨É.nÊ=Ý=Íʲ4ÚˆûQ·»ÅUEÓgp¬­Ýo/F{ Ξ7˜ÖmÑwèö$û·±xá l¯xš.¹“ås½žèóB¤š~¥Cki€Èáh¯¡îÈÇZhÚ÷%©¸£wB‡Nϼû…]Ó¦O]O:ËVV(d˜ ± ɘ¨m*,\_ÐÐÇ 8–AVØdQÑ8jjk™û+ohOŸzÏ2N§ã& D”T7œ=}ˆovÿM{©¸Šu<©_îóˆá˜¶êùëró¢{³rÆŽOt{H)° …iȾ¤dÚ;•i=$¶ɂci¨?CÅ'¿fNÖ®GËÞ#gÿ2Câ ÁÖmÒ›úë2ìMÑÝ/üvòä‚u.¦ÓøÅ@ö!¥˜Jb™ ÛRDÃ9Q›gì<|üþ+5%±7*‘VÚ ¦¡h7 Íß¼YW^*gØŠo)„Ùýñ¤ÂñóµiGãIwHý§Œ2oê÷ýO¾­8[×¼ìÄÎÍ]ÃÑcÄGÊâû^øEN$òDþÄü±‰T@¢ËÃóîÌýQ4i 96‰{ŽîŒÔFîÝ·ï‘¡±ï‡Œ|•(úásó¤a½9&;(Õ–¡`§3m§£3>Ú?*S•Z…Ž E ãD †‡Q ܼî#÷Þ³Û?îM¸&ÈMÂwfgÏîžÝß÷{ö·»¿½Wc*¶<¿9ìóù<ë×>Ñ<äÎ# q5UÕë €Ç€ù@¹ã8Ó}>_±×ëÅëõ&|>_£ã8 À àÅÕ«Ö|:ú´/ã+TU¯ ë'€1½õRJŠŠŠðûý¸®‹RЬ ü øùêUkNŒ>ý¯PU½înàŸ@XJIee%•••1Zãj ÆJ§pÓ.ñxœãÇ“H$\à‰Õ«Öì¸îªª×•5@Ù¬Y³X|ûbŠŠŠPR!•BIE,Ckãq0F£µÆ²m‚þg8räˆÑZ»À]«W­9tÝTU¯À;À²éåÓXzïR”RÄcqjk?åô©Ó´··£µ2¨¨ bNÁP’±¥D£QvïÙÐ,X½jMÛh °ú•×ËB!n]¼ˆT*I[¤›=»Þ2ñX\d߉d‰i­õäH$2öàÁƒ;v̬X±B(e3~\³gϦ®®n2°xüz ¸`ÞüJÀÐiåÝwÞë%ÿ °iÛÖí§s;TU¯›Tuvv>¹sçNóðÊ•¢ âæ 9zô(¶mß>Zäd¿ò<€¢¢B\íòáÁÈ’x´?y€m[·ŸÝ¶uûSÀ³ÝÝÝbÏîÝh­ñz¼ƒ!’ÉdÅ__ú‹3ꪪ×ÙÀlÇãàóûpÓ.-Í—:€5Û¶n¿â±mëö-ÀG­­­4·dη’q%Äb1;‘HÌuÀ,À.,ƒm;tttö.ÖýÛ¶nO_ãxÿ8q²c Å㊉ÅbÄãñù#Ì»¹k Àñ8|l«oÖ‡r²žèîîÆƒ×ã%cŒsµŽù¢ÿ"Àï ð{‹C/N§0Æ &‹‘O¼u­è¿ˆŒ€P0Ô[²u×u1Fc´ÁC,Ç+bpþ¡PAÞƒj­ÑÙm *À¶llËÎ{PW»h­GÕuzÑJd¸ý–eaŒÁu]€g³[ä±e½¸ES´MIùu[v¡¤AJP”tJº=JÒW'E6——óÜç¾:A+pLÀß—üļÖßnî"ŽgÒé/íšW#ÿ«ŸŠç¤d£%Û¤BâØR ,%²Ä”WIá•Bd‰es%rÈç¶eú)Ú‡î™f`ù{¶³ü‘GLrÀ ä‹M?IÉNŸ×2‹îœ)¦”O"ô!¥ƒT„´‘Ò‹6R:éA!íLRÚaCo½°ÂÀ›hä$'í ãÂQüþ››ª°ñGâßJ±tÉ} ˜4u¶¥Q² ¥z ;ýr}ùYÚH‘ÉvVŒ•)U"Œ›Nràõeèd4%|ܳÊ$à+ΡÀÀbe{(½a<豎ý8VJ)¤´2“÷&¡¼Há …Ø&-È}cA–‚÷”=‘f,§ñøë¶Žqð¿|þ BJÒ©&ŒîAH?Ê)C)ƒR„ÐR“ÀÕI uMûàž5_Á´ÌG“z[GB@ö¤ÂñÍFYnŤÏ!¤ÂôûÊJXH1è~E ˆ-#"À(ÁòV’ŒL:qá1(¥2n0"È0f`X0, ›6m’Eã2©â^¢±&}Äè^0r}oX–<øÃ‡.Ôöp¶¡ŽSSa†8]L&iÐdÎ15GìƒB<ÿÊ¡åíÑøÜHWšKM5¨AüsdqÙr‘—€ûÖ¾2¡¨Ð»¤®¡=ÝÔÜŽWu xçTSi×ðƒ 3†Ì äÆ yY˜\XÙÒ–"ÒÇ]’QçÁS‹ùó¾ïÓ“Î?(ü2 FëÌ Ç…Ê¾õÛ€²…ÍíQ_4áÅÝР~‰‡©œû0[Þ\KgÌ—?ï>dîZsüŽ[n)5¹­»§ Ú“*´ƒ%4tÍð^{—¤dÉKØüæÓ4w„íÚÉ÷ îp]Š'’ÁtÚ' =^Ÿ›‰D³ñLÉ´¢­ÓP×p‰ewÝÁŽwŸåLsQž,0mÜá/b¡MäR{w@HQì¦{>⺳g”óë7îaoÍ<”] Ba t%,.v(>þ¬;ÝÆËÿÝ@mC™<7É~)§M†AM ‘‹5h"Í¥iCÙ‚ÍEç.Lu‚ŽÁXQ7”êiK©òiÓ9Õ>oÜ‚IÇhé°˜ÚãÐõÑ“–9ÝÎ-_[ÀžÚçHÈ}Ü97>/Gª™²'ZK Dˆ±Î34žxßCçá8µô~Ð|Âé™+^Ø?uÚ”EѤ6A¯r<ˉcIÆ„¼xm…cAÊ\h‹âóXø‹ ßf~ù8Î440=üKtfî ½w™ §3q“"D²ZÎ瓯™t2*„bí#O›û<"SïÛrcÑØÐ‡ÁÂâ’XO)Ž¥°-Ù—”Ìx§’"# +Âïµ™7½˜ Mç©ýà—Ì îpì½ræÖY’´<ÿÝ fC.—¼/4å+^øÍ¤IekSؾž¤; ]J)¶’8¶Âë(B~‡Â—[+ʈwwè÷ßþÙÛ¯žT"CÚ’ ¶¡è´5–áßÛhêúÛÉ[ÀŒûwx°{ÞŸ8¡ä&c{CÑxjHý'—„¨œ2&õöGk[/-þ|߯D><†}¥œñð ?+ ž,½¡´8–ÔÄiÒî•*Ÿ8†B/±}‡Nî 4¾søðcCSŸƒa (ÿöæJi9¯Ž)ð‡V à/p<ŽJiÁÙ–/ÇIsnK*ÞÕùQMãK§ß¬^?\Û#"  þÉn-½4i-VBl¼yþ̲Ï/t™51gJÎ7GN|Ñü\ý®§^¼Êpׄ‹ýî?ó*§£¡9Š¥$3'†ù¬þlKÓÅÈ>ÛýÌž‘²3Rw¾A¡Ác+& pìxýùHWôþúÝÏÔŒ¤Q ¤¤4츟¯¯Otv/­ß»¡q¤mŒª€hW4YßÐT£Ý÷žÞ»q(ÿ3\3FM€ëêÄé/Îï Ÿ-Xyøð“yo“Wè iý‹S»ž90Zã÷Ù¹¿á&þôR½‡óÅ6§IEND®B`‚pidgin-encryption-3.1/pixmaps/icon_out_unlock.png0000644000175100017510000000472411365171051017332 00000000000000‰PNG  IHDR00Wù‡bKGDÿÿÿ ½§“ pHYs × ×B(›xtIME× &U Óqœ2×u{ï¼ãno:¿Õ¦ðÄöÇóm¥®ëæk !òcê'ÓÐë J©J×u+Ç©p]Ww]W8ŽsXÑ ´/5Ô7>?c€ñŽH)q‡L&“Ñ4’É$étzÒß7Ô7òÄöÇ5à{À`Õ44þÜÛPßøÜ)í|Yy9ÕÕÕ蚆´ÐuMÓ0t!$©TŠžžnšö5ÑÓÝ@mm­¼\tªÀnàò†úFg¼?©¦O,cíÚ (**b8B†®#¥"㺄ÃLÓ$^':'JÕò*Zš›Ù½ûm€€‹f¢‘L&/¶7N9c³‹Ç¸æªõ|‘ìÇÉ8´nãÓOÿK¢µ×uóã-Ë¢bA5gÖP]] (Þ~kÏõÀ_cñ˜ºæªõÚ©h¤R)þ¶ã•q3ðÆúÆ'O 0>u¾{õz¦Aj8ESÓ^ö5íÃóN\,ªª–Q\ }@ô>Ðt¥À 8¦qéºKQJÒv¸×^Ý0,l¨oLM)…–,©¤t^)Ýìkj¢io¾ïOZi6m¾9ßN$R[[»ˆG£¸ xn|^oÚ|³\<”H¬’(.¸ð«Ì/+eÑâ…t´wF€:à(¥p‡eK—!„ ««“={öäËäd%r¬o D)Uw~`]C}ãG“hàåM›o^¼y(qhIEE•K—P2·„ŽöN€5cúñlÛÆqâñ|áÓÜÜ|Bç'±m{Íq4î™Ìù£4>nèêì ^{½æ¤UÈqÇ¡8RŒç{$‰iï°ŽãÔGãŸS”x ½=}ºe)--ë¯kœ4@)¶mOiöÇGÁ¶íø$²¡¾±uŠ@o6›¥8¥¸¸xìÕ¼)Œ•7!|¤”ÓŽÀq4¼iʤtM'Ž´‚ùÃÀI²Ùln!¢ð…àT}…Д¦kDÂQ,ÓÊ÷€qC}ᡘÁ©u†ºnD±ŽD`¨\å˜Ñ©{fš¦iaÆ1)4éN¼óaíû}î’GÂTÌÔ¤!A*ÐTvHJŽô{'Žê÷¥RÓ5=„ï 2~ˆ¬Š§~ë7ïxP5Q›ðôÓš5¯gѸ@ÓƒèFB9¦R:¨Ž8+Žôå`ÔèØQ‘kg2Y„H‰ò÷ÞõúUAv>ª5 Ø+_Å™l$RRƒ¦y FPÊG)%=PY”òÒC©,Jæúsí Ry(™EJ%=¤È e–‘´Ãç-m¼óv³rOS‚ ÷<¦ž @~#û÷v-¤)~ª›aê¾ýF Ôˆ`¤ÊsØË;/eŸ¶ÌNø+„‡iE9£¦ à i;_z?  lVkæ‚êï`˜qíྲT?JúÈÑg|;÷¿ÈµÕñß !ÈúAÌ¢¯S¶pV(B6ãe¦)”¯BJ'ŠVŽubfù©‡1¬JÁ‚Ë0ƒUhzӚǜxžï…µ­[õ‚DàHÁÓŽ.µÓž͈0ç"„‡Èö ü¾\² ™A0$^6†DmÙ"  &ø} ú|T  ÏmEË6®ÁlÚ„ð)9n‡˜Î6¥4\¹š¬y5®}Cu iŠÓaG"à:ŸÃÔHù#ͳp“ïRbu¢¡P§Çÿ£RH1zàRSœy84p‹ñl°ø#”Û´N—é〜ÿ'‡HGIz«¶éêd^ôØ[Í]øR? kÀÏͨœFt¬&m m“ÁtC?vêwv>¿þ#2¾9û‹XÊѼ˜€ Ð1´”Á4 ÙEô¥Â“æ}ÒžÃêU×qÿË¿dØ Ïn MŒÀ‰!Úú¢¤Ü¹ô´ƒxÌã­Ë7˜£t˾¶ŽÆ[éO…g1 ”’£Q8ñ'#à Û:)'Ä@Ú"*bÇ;W0žè`Æ7H¦Ÿ¶õó­K.ä»o ½¿U 2•Ð|ú¥‚d÷‡¹Ù7ŒqžbažÁˆ%eG8ÜçQ½¬†Ûÿ|ß÷å#c% ;&½CïµqÑùçñÌ{×ÒÚø¢`etÿV1ÔÞòF,=˜ 8VÖ…`®5„&}tåÌ€ò˜ôø¬Így`>B‚PÕ«80°Œ]Oö"}›¾Aƒ¥Y‹Á‘0_çÝ–$çÕÕò¾q?Ÿt_Ka/4¿ÑnR‚m†Qk.þ6ÑJ¬ j)³£'Ì#GèŸl+Ç6V`g$!ËÄ ZH©atâÑ!ÓÀ €'4ºF( (²‡MêªçÓr°ÃÞñê'7~¼cÓSøË}Ú½Rq»˜ò$WÆd¦„ ÝJ ¾ ;ã£ëVÀÀ èùÇÐsYjèZ`"2©]^JOÏ€ýÇ÷ßõþSW€§¶jgy°AHê”`ŽP¹Qü1RÀ®¾ëkÜ’+*3™¬˜ä‹‚†®i躆ièX¦AÈ2ˆ†-J¢!ÎÿRîȈûûg÷nkúÓÏn-Àtlŕۂ˜™‹•­Vf(:âLï»UeY”³Ïˆ{ÿxó£}mýkîÚâžV€<ȆßÞ^‰ÜR¾°¼ÔÎJl×Ç'>U/ŽSÂÞµ÷³]‘Ñk÷ïÿ±wÚ#0Á¡«î;[XOÆç„Ä¢‘@$žc-Óí}ÃÆ®\:ÏNíû m{Ës›7lÂÎ=÷1ó‹òþU赆¦m9§®¦â`w:¿&Vž1—îÎÞäÿõÞ“xþ¬ŒÎ†­XÿÀëµg/¿äpïC§fqŒÖD{_WOò†Ön{± ÷Ù2©AÓ r~„?It&‡G®L¼pÛ¿ÐÌ–ºNyÌ~’H¸©ôe‰Wîl›•ÙlÙÈðH6q¸ë馿ÑòÊ–Ô¬])gÄnË¡ÎWbís®Û¿ÿ¯Ðú³ ùò×ÍÏßöÖ¬é«Óõù`–ìÿæ†ßp¨héIEND®B`‚pidgin-encryption-3.1/pixmaps/icon_out_capable.png0000644000175100017510000000605311365171051017423 00000000000000‰PNG  IHDR00Wù‡sBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< ¨IDAThÍš{ŒUÇ}Ç?3sÎ}œ»÷î.°` á`Y^†›:uìªuÚÚ´RšDU›üÑ6JE­c[Nk[M+­ä?ÜcpRµ!%JË©êÐÔmdjŠÛ˜RƆµ»,ìÞ÷ãÜÇ93¿þq——Œ1kXÚŸ4:çž=gæû™ßïÌ™ßÌ*áÿÚžØúøìf³ÙyøÁ?-OõYu½¶ïض¸XÞét4›Í´Z­T«Õ¢Ùl:Î1à8pøÖæM[. uÝ¶ïØ¶øð»€n·Û4›MDÏóÃ|!í…UÇÍïr]¶ïØöGÀ€I%“¬\µŠ àyžñ@Ñm FƒR±È¡C‡8xð 8çP>¾yÓ–®;ÀöÛ6{•RþúõëY¸p°NEh­QJÓi·ÑÚÖYœµXg)—ËìÛ·C¯8 ¬Ý¼iËøuؾc[ð2°øî»6’Ëõ2^8M£ÞàÈ‘×9rø0årçZkúúúXºl)+V d¬µìya¯9 ð¯À]›7m9'ZO›ú®= ,dÖ¬Šååb™?Ø)/îÝK±XÄ9W^^uΕŠÅ"û^ÚÇ?|ÿ211Nuøð-ëéíëø5à 6àM3ÀmQqó‡7† …Ï<óŒ„aY¥Rö‰Aõ‰¿úÔÛp> îàÞAà+­Vë÷v=ûc~õ®;ÉdÖ¬]ÅÞþà—€¿™v€í;¶%:ΊžL©dŠVsŒ=»¿KÌ«EóËßøÜgþe£žÂS!jä(mÞ$oÜÿÀ½tšÍæçÿëÅ—øåÝAßÙª×^ØÎ´…P«ÕZ†¡?wn¸a*•ÿÁ3?ç7æîÓ»÷@b’BÌ6¹ÒƒÔ’Ë(©ÞÉÿ"P,ä ÄqL:H“L&–ßÿÀ½©ih6›k n¼¡2L~|³gÖY¶d|í !É!´7„N-G’ƒÆ,!é/!Ts7oÚbŸ8稖kø~‚¾® °òl;ÓBÙà­9qÜ"”ÛÀ7£ ̪3ׇ`AZh]ÃI!:ó|ÊÁ—ŽxÆ#“î!¤ÏVŸ›^€¢Êõå>ÞW«1ã Iñf¶ÈfílHf1 ,b›`*(›2à|4 åǹLh«€t: d¸Ô?=&9 YEÏäA"2A…lÐ"òg¡r=(Ä‚j„!è,¢)Ð1øÍy7rµc=™™ .ñɺöeÕGŸ‘íi÷hmðL $$“n Ò2ýõÀW¨¨:$߃K¡P"TsÙ0Hø²Ù,A:ƒ\‚àÚ$ÉâLoŠ‘£ë eŒéÇ1¥çôL’ :‚+9TƢȩ9 u´« ®ÉtR©Tß÷ñ=ÿÊ=ðü7Õ§Eó;JXí„YÎupáñפ{Ìõ+íLnÆëþì¾$Bm³hïƒx¦‘¹)‘ùZ™–À¸ÅiP-Aªi¨ô!*‹R=)?öÓ©ˆ'ŸÜŠRŠ8Ž/°s§JÌœà‡(6*¥“ø&Ь´“Iá2y ´í^ó¼„à'^B“Hjü„A륳(Ý0ÛX™Ÿ6 X¥1ZuÁåªG!Õ¥Ó8•J§ÛQ*Ùs. ¥¶. 0³Àc(6öÎYÅòÜG¦¥""1"â""ÎEˆt×½.4QŒ* U­khÓB™P¨L÷]Õ3PzȈ £˜°PXOòpâ¡ÄÜ~ëÑçoÿÈoD/wßøË„Ð¿ïP)%ü¡öÖÝõ×/ R{¨‹@âI€IÁg.¹"m”.£T Ñ „¢JuÀD@Œ¢ ÔpöMDÊÊè¦@\$Ý@‹V‡CYØw€ Y£þÜ¥¿ñûÀŽ@k¸q<âbÜd¹ð¼ûÛvÏ%FëÚDh_О‡‡Òlô JaãÓ@[¿d‘’ëŽFui"ÒBK§:X]{7ñˆ&£RÙ“D£]ø)š ˆLö™Ñˆ$&Çû I ‘ØÃI _7-ŒYdÂ!Õ¸2ÊVêh×@µ«Wp^€:wö~LœAt€2)„7‰Œ7ÚÑmPœÕ8׆d'ꊳˆ=²8[Dl¤J ™+‹t¿=€ÓÄÆG9…6ã)ÚŒ´@gq±`].Š‘j±gÐñ(bOƒ›Ç狤u¹&/pà¦.EË­Ô‡ˆk»HêqŽnm ‡8m1¦6Za“8ŠÉöx£à*(;Ñ‚ÃE§HE#ïÕöy€xRü97\¹ªñí8ˆVéeú§pV!"ˆëg¢ ÎeU0ÆQ 5ÕfŠb=A2•æéÿ¾›b=¸è¾vl(U…#'óüú·ñw/~–‘|ú’éáU¨˜¼(>˜y {é.œ-ú\é "Î-(K5Ìpb"béâAþû{øÇ}:¯ƒZÓg¼bxåx…n¸…g^ùÇÏ…«8×Íû^“¦2rlOo½¦îËVãgdííŸQóV’H*Îu&gŸç§Ð_Ü:‡Ð,#l;R ŸD2sŠ„§é˦Hù†„‘Uœ.6H'=Ò žÀgÝÒ޽5>ýo‡>ÿÚÓ÷?uM¾ÿ¨ú3'iëÄ’³Ò ±Ÿ…pvOüö`«ÿîmÒ¦Ýyçô[k…V ­¾Ñ$|C*aÈ ú³)6¬¸V£Ñúöºõ¥ï~éÁk0[¶qk¿ýüüy³×ˆŸÊ6šÑ”ž_0;Ëê…}Ñÿãg‡'Næo}k÷#Sú\³ ŽeŸü‹‡û3™/Ϲqά°ã[1±½ü`¿t~ý)ÂÝ?}cwæDæû÷ajô\㚥¿ùèjí%¾×— æöf3^&äÉ„‰œbdââÌp墙DÍZuß«'wû§î{¿mNËÓÍ7ÿ­_˜“_…ön5J=²~Ýà oîNô´V¬\8ƒÓ§ÆKGßÿÚð³üäÕ´5í›|Ë~ë¯^¸iõ’;NŒ7ðŒfp~/LJG&ÆÎ”>{üGíºÚú§{‹ èί’¾aÁ@†× Ÿ*Õ‡ôЫעîë`´fNoÂ<4<ܪÖï~î+'¯UÝ× Qkt†OŒ½êZõ{î‘Ë.“LÕ¦ÀZ×:öö©çzGrŸÚ¿ÿËS&ß˦@ÅîÏß|ö¡½ÓVÿÿ‡·¹û_H;+™R¿IEND®B`‚pidgin-encryption-3.1/pixmaps/mkinstalldirs0000755000175100017510000000131611365171220016230 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs 340 2005-12-19 01:16:19Z obobo $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here pidgin-encryption-3.1/pixmaps/crypto.png0000644000175100017510000000124111365171051015447 00000000000000‰PNG  IHDRóÿasBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<IDAT8¥S1kSQþòš¼¤yšD¡Ûд t²C#Šg+â⪋4K~@— Ò¡h²4ƒ "dÈ¢bÅÁÁ¥ Z,VDD%iÁ˜¼Wcòzã{÷ÞwLbÒ"ôÀárçûøøÎ¹6!ö~Íx…qæ&„˜¥R‰hªúi›ýº’šOýìž—º‹L&Od§"‘u[µòù|µXÜhœ …”é‹ÎûìžÇ½ v8œWÇÆÂGŸ.=)¯­¾½QøZ<¹Uú>±²ò:§jSQ”p4=´§Fýœ,ËP5M[X¸»Ôj×b±Ø\¥\½|Ì?äÒ*Õ oú*¨T*NÓ4`Y\ëî'“É.—[òùeK’ä=x…Ãë6î}|¾xç¶AÌV:Ü3žÚÖáeë£^¶1-,§¯ŸI‡§‹ÕÀÙ(Ý£:¨©ƒÑ £÷«›õ—o·æR"·KÃå™ MÝTŒûàÒ&˜€‚€¡õÚdé7NŸ9ë)K³r½È’ ö»LIâþùÐ!à¬}Àý£CÀ,@„€spüÏÇ‹·ËމMBrŸß=› ŽNº,6J`T£u0f€sŒS|È«MJÿn ‡@_\[N—ó¯œ×LÆe“Y0©!„IrŽGmÜšb2)²+IEND®B`‚pidgin-encryption-3.1/pixmaps/Makefile.am0000644000175100017510000000036211365171051015460 00000000000000EXTRA_DIST = \ crypto.png \ icon_in_lock.png \ icon_in_unlock.png \ icon_out_capable.png \ icon_out_lock.png \ icon_out_unlock.png pidginencryptionpixdir = $(datadir)/pixmaps/pidgin-encryption pidginencryptionpix_DATA = $(EXTRA_DIST) pidgin-encryption-3.1/pixmaps/Makefile.in0000644000175100017510000003155711365171230015502 00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = pixmaps DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/pre-config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pidginencryptionpixdir)" DATA = $(pidginencryptionpix_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ NM = @NM@ NMEDIT = @NMEDIT@ NSS_CFLAGS = @NSS_CFLAGS@ NSS_LIBS = @NSS_LIBS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PIDGIN_CFLAGS = @PIDGIN_CFLAGS@ PIDGIN_DATADIR = @PIDGIN_DATADIR@ PIDGIN_LIBS = @PIDGIN_LIBS@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ PURPLE_CFLAGS = @PURPLE_CFLAGS@ PURPLE_DATADIR = @PURPLE_DATADIR@ PURPLE_LIBS = @PURPLE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = \ crypto.png \ icon_in_lock.png \ icon_in_unlock.png \ icon_out_capable.png \ icon_out_lock.png \ icon_out_unlock.png pidginencryptionpixdir = $(datadir)/pixmaps/pidgin-encryption pidginencryptionpix_DATA = $(EXTRA_DIST) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-pidginencryptionpixDATA: $(pidginencryptionpix_DATA) @$(NORMAL_INSTALL) test -z "$(pidginencryptionpixdir)" || $(MKDIR_P) "$(DESTDIR)$(pidginencryptionpixdir)" @list='$(pidginencryptionpix_DATA)'; test -n "$(pidginencryptionpixdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pidginencryptionpixdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pidginencryptionpixdir)" || exit $$?; \ done uninstall-pidginencryptionpixDATA: @$(NORMAL_UNINSTALL) @list='$(pidginencryptionpix_DATA)'; test -n "$(pidginencryptionpixdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pidginencryptionpixdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pidginencryptionpixdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(pidginencryptionpixdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-pidginencryptionpixDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pidginencryptionpixDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir 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-pidginencryptionpixDATA install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am \ uninstall-pidginencryptionpixDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pidgin-encryption-3.1/pixmaps/icon_out_lock.png0000644000175100017510000000466211365171051016770 00000000000000‰PNG  IHDR00Wù‡sBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< /IDATh½š{lÅÇ?³{»w¾óÅçı—IÇЄ— *”¶Ph!”?ZU•PUU”PhyJ*ñG ®åðJÓ¨¥*)T¼ ¥$åˆCÊ›Ðbûâ÷Ÿ}>ßîÝîÌôó3ÁŽã»ä+­<73û›ïgs³³{ZkòÑC<`9ŽSîºnïwüÒË+Ø$N`ÇÎíp-°Ik]åºn•ã8•®ë®ëJÇqŽH)[àù†úÆgN’ïqÍ `ÇÎíø.°X£”Âq2™L.ˆ$ R©Ôѧþ¸§¡¾ñéÂÚžÐqvìÜn/”WTPSSƒ!vÐÆ0 „˜†‰”Šd2IOO7Mû›èéî ³¸´¡¾Ñ)4@`}î.())aýúó)**b8•D¦a ”&㺄Ã,Ë"V#:/JõÊjZš›Ù»÷ ‰Ä`p}¡fÌÀŽÛ¯þZ+Ñß¹â*ñY¢'ãÐv¤?þ/ñÖV\×ïoÛ6•‹*©=½–šš@“L&ùÛ®'uÆÍà õ€;·> úí+¯"`™$‡“45ícÓ~<Ïð  (–A€êê\¼ñb´V´iãå—öŒ‹ê“…˜i ­¢Ë–UQ¶ ŒÎîö75Ñ´¯ ß÷û€§'Ïë›n¾Ñ.ŒÇU+4çoø2 ËËX²t1í xõ¤h­ëÇaÅòH)éêêäÍ7ßDJÙll¨oüàèsê%ðÂM7߸xípüð²ÊÊrª–/£t~)íë `L×N§×9ŽC,VŠ/}š››‘RÜýyæù¸ «³€XiÉXóºBÓ´p§ÎqŠ#Åx¾G<kúç,c¿ ¨Þž>öƒ”••Õ×ÍÝ)1Çq()I§Óª¡¾±u6ê€Þl6Kq8JqqñXÓ‚¼]OÒLãK¤”>J)€Ýë$ a GÚÁ±:5£ÓiZ€l6 €FãKÉ7}Z‚H8ŠmÙãus 4¦˜°¾ôÐs×0L¢‘(öDN1:·úÌqX!À²lLÓ«*èúÜ;ñî‡Ä÷úÜe‡ÉËpP ¤¥AèìRLÔMj“GÕûÊŠJ% a„ð}IƑձdÀoýú覂<ñ„°ôñ‚Ë„Ä0‹z̘F)=jPO˜•u9=ÚwDæÊ™L)J¡}Í=w=¨UP€Ýˆ4›K*Öpúù›‰”Ö"„z­}´öÐÊEk¥<´Î¢U®>WΠ´‡VY”rÑÊCÉ JeI9|ÚÒÆ[o4kÇñ„–lºûQýT>ã7²ï!¡ù‰a…©ûæÃ˜"ÐC {€aPh`̰7n^©,šIe•òWJËŽrZm5¦»Ÿ ?  Ó¬kQÍ·0­ÈvpŸÕ º­|Ôè1¹œû,se=}›”’¬Ä*ú*å‹a‡"d3þ—ò1“V!mE«F‰:™Wpa„1í*ÁU‚+°‚Õ#ˆe/`^¬Ï÷ÂbëÖY¬„Ó똽FŒ—æ&aÆXó‘ÒCf{~_.YVL…—M!Pè-[òZV§è)¾ç`,DªñÜVD¶yô;’_;ääZÍí.£µÀUkÉZWâ¦cê„(è wZMdÀ5?ž†ÙHú¢¬3poSjw"Ðäù¾lÖš:…4£›¶Ù®58Ì¥xi°|3”»i*O!ŸÜv`Ô³HEIxkNÓÕ7È‚è1/¶hîªÄWy-43j"²Ÿ»¢ê2p°c-©´d0m1˜ bÇ^ú½ŸœÇöW~HÆ· åyЦ\¥ÈQÌ Ð1´œÁ ¥‹èK†?wÞ'ÒóX»æî{á ;áٞД)453C´õEIºóé0˜â±€×®<¦ß`*Œ6 .ùÊFwo¥?YXˆ©РµÍÂÌoMS1œ6H:!R6ÁP»ÞºŒÔTƒß$‘Ô|ÜÖÏ7.ÚÀö^G{Ñ\Ÿð¦>ýJC¢û}@ƒ¹ŒÀœtãGIØ£g@2âEI¦#éó¨YQËí¾¿ïÿâD_ÃŽEïÉ;­C\pÞ¹<ùÎÕ´ö„>Ë`ü2áàÚ"†Ú[^-I Æ).){Xë@!”¡=PÐ ƒŸ´ù¬ ,D*#°ªf V°ç±^”Ÿ¦oÐdyÖfp$LÆ7x»%Á¹ugñ®yŸ~poK¾Sh~#nÐ’m¦Ñë.ü¾X¸d5vP€F©ìèsb ýãm¤ÍU¤3Šmam”؃X4DÈ2±àIA÷ÀEÁEv€â°E]ÍBZu¤w½ôÑõîºéñ‚üå^qÒÜ.%–:Î#c"SÊ¿†n%[A:ãc;`bŒñÃ4r³Ô4D`"²8ke==é?>wà®wßü»‚<¾UœáÁ&©¨Ó’yR禈–àÁhPöô][ë–^V•¡ÈÌdݸ†ÀÃX¦m™„l“hئ4â¼/T⎌¸¿jß¶¦?ýôÖ‚œˆV]¾-ˆ•Ù½tIùZm…¢#Ή½ûª*ræi1ï¯}p°¯­ý¡=[ÜãŸ5¡¼Æ´jÓoo/Dn©X\Q–Î*Ò®/gÞÕ,Q"½gß'{"G"W8ð£þ•³`5WÜ{¦°‹Í /*‰F‘Hxž´MO Úû†§ô]½|ž3œÜÿ^ÛΖ§oÞ<×1 0¦sÎyÔú¬¢ F`½)Ä–³ëj+uç6z†!X}Ú|º;{ÿ;Ü{wü™Ÿ?ÏX'`²V]uÿ+g¹ò¢#½#LƒÚ¥%´ÆÛûºz×µ>{ÛsùƟͯ”yKiMÐ2©ZáÃâ‰á‘ËãÏÞö^!bŸÓ0¨(±åûÅãn2uIüÅ;Û û”Œ dãGºÞSnêk-/n)Ø/”p ¤TnËáÎKÚç]sàÀ-ÿg“ |õëægn{ý¤Å?Ù«ÐÉÖÿãoöµÓõYIEND®B`‚pidgin-encryption-3.1/Makefile.in0000644000175100017510000010062011365171230014005 00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/pre-config.h.in \ $(top_srcdir)/configure $(top_srcdir)/intl/Makefile.in \ ABOUT-NLS COPYING INSTALL TODO config.guess config.sub depcomp \ install-sh ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = pre-config.h CONFIG_CLEAN_FILES = intl/Makefile CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(encryptdir)" LTLIBRARIES = $(encrypt_LTLIBRARIES) am__DEPENDENCIES_1 = encrypt_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_encrypt_la_OBJECTS = pe_blist.lo config_ui.lo cryptproto.lo \ cryptutil.lo encrypt.lo gpg.lo keys.lo keys_ui.lo nonce.lo \ nss_mgf1.lo nss_oaep.lo nss_pss.lo prefs.lo rsa_nss.lo \ state.lo state_ui.lo pe_ui.lo encrypt_la_OBJECTS = $(am_encrypt_la_OBJECTS) encrypt_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(encrypt_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(encrypt_la_SOURCES) DIST_SOURCES = $(encrypt_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ NM = @NM@ NMEDIT = @NMEDIT@ NSS_CFLAGS = @NSS_CFLAGS@ NSS_LIBS = @NSS_LIBS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PIDGIN_CFLAGS = @PIDGIN_CFLAGS@ PIDGIN_DATADIR = @PIDGIN_DATADIR@ PIDGIN_LIBS = @PIDGIN_LIBS@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ PURPLE_CFLAGS = @PURPLE_CFLAGS@ PURPLE_DATADIR = @PURPLE_DATADIR@ PURPLE_LIBS = @PURPLE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign encryptdir = $(libdir)/pidgin encrypt_la_LDFLAGS = -module -avoid-version encrypt_la_LIBADD = $(NSS_LIBS) encrypt_LTLIBRARIES = encrypt.la noinst_LIBRARIES = EXTRA_DIST = \ Makefile.mingw \ po/Makefile.mingw \ po/mkinstalldirs \ pixmaps/mkinstalldirs \ m4 \ COPYING \ CHANGELOG \ INSTALL \ NOTES \ README \ VERSION \ WISHLIST \ pidgin-encryption-installer.nsi \ nsis/header.bmp \ nsis/install.ico \ $(wildcard nsis/translations/*.nsh) encrypt_la_SOURCES = \ nls.h \ pe_blist.c \ pe_blist.h \ config_ui.c \ config_ui.h \ cryptproto.c \ cryptproto.h \ cryptutil.c \ cryptutil.h \ encrypt.c \ encrypt.h \ gpg.c \ gpg.h \ icon_capable.xpm \ icon_in_lock.xpm \ icon_in_unlock.xpm \ icon_lock.xpm \ icon_out_capable.xpm \ icon_out_lock.xpm \ icon_out_unlock.xpm \ icon_unlock.xpm \ internal.h \ keys.c \ keys.h \ keys_ui.c \ keys_ui.h \ nonce.c \ nonce.h \ nss_mgf1.c \ nss_mgf1.h \ nss_oaep.c \ nss_oaep.h \ nss_pss.c \ nss_pss.h \ prefs.c \ prefs.h \ rsa_nss.c \ rsa_nss.h \ state.c \ state.h \ state_ui.c \ state_ui.h \ pe_ui.c \ pe_ui.h AM_CFLAGS = \ -Wall -fno-strict-aliasing AM_CPPFLAGS = \ -DLOCALEDIR=\"$(datadir)/locale\" \ -DLIBDIR=\"$(libdir)/pidgin/\" \ -DDATADIR=\"$(datadir)\" \ $(GLIB_CFLAGS) \ $(PIDGIN_CFLAGS) \ $(PURPLE_CFLAGS) \ $(NSS_CFLAGS) BUILT_SOURCES = pidgin-encryption-config.h SUBDIRS = pixmaps po intl ACLOCAL_AMFLAGS = -I m4 all: $(BUILT_SOURCES) pre-config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): pre-config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/pre-config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status pre-config.h $(srcdir)/pre-config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f pre-config.h stamp-h1 intl/Makefile: $(top_builddir)/config.status $(top_srcdir)/intl/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) install-encryptLTLIBRARIES: $(encrypt_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(encryptdir)" || $(MKDIR_P) "$(DESTDIR)$(encryptdir)" @list='$(encrypt_LTLIBRARIES)'; test -n "$(encryptdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(encryptdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(encryptdir)"; \ } uninstall-encryptLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(encrypt_LTLIBRARIES)'; test -n "$(encryptdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(encryptdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(encryptdir)/$$f"; \ done clean-encryptLTLIBRARIES: -test -z "$(encrypt_LTLIBRARIES)" || rm -f $(encrypt_LTLIBRARIES) @list='$(encrypt_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done encrypt.la: $(encrypt_la_OBJECTS) $(encrypt_la_DEPENDENCIES) $(encrypt_la_LINK) -rpath $(encryptdir) $(encrypt_la_OBJECTS) $(encrypt_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config_ui.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cryptproto.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cryptutil.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encrypt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keys.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keys_ui.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonce.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nss_mgf1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nss_oaep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nss_pss.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pe_blist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pe_ui.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rsa_nss.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/state.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/state_ui.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) pre-config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) pre-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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) pre-config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) pre-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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) 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-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) 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.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ --with-included-gettext \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) pre-config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(encryptdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-encryptLTLIBRARIES clean-generic clean-libtool \ clean-noinstLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-encryptLTLIBRARIES install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-encryptLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean \ clean-encryptLTLIBRARIES clean-generic clean-libtool \ clean-noinstLIBRARIES ctags ctags-recursive dist dist-all \ dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-compile \ distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-encryptLTLIBRARIES 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-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-encryptLTLIBRARIES $(OBJECTS): $(BUILT_SOURCES) pidgin-encryption-config.h: pre-config.h sed 's/#define PACKAGE/#define PE_PACKAGE/g' pre-config.h > $@ testprog: $(encrypt_la_SOURCES) testmain.c $(CC) -g -Wall -lgdk -lgtk $(AM_CPPFLAGS) $(CPPFLAGS) $(NSS_INCLUDES) $(NSS_CFLAGS) -o testprog testmain.c $(NSS_LIBS) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pidgin-encryption-3.1/keys.h0000644000175100017510000000721411365171052013073 00000000000000/* Protocol-independent Key structures */ /* Copyright (C) 2001-2003 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #ifndef KEYS_H #define KEYS_H #include "cryptproto.h" #include "debug.h" #include "conversation.h" #define KEY_DIGEST_LENGTH 10 #define KEY_FINGERPRINT_LENGTH 59 #define MAX_KEY_STORLEN 8000 /* The maximum length of a key stored in a file (in chars) */ struct crypt_key { crypt_proto* proto; proto_union store; /* Protocol dependent key data */ /* enum {Public, Private} type; */ char length[6]; /* string: Size of key (for ui display) */ char digest[KEY_DIGEST_LENGTH]; /* Top 10 hex digits of modulus */ char fingerprint[KEY_FINGERPRINT_LENGTH]; /* SHA-1 hash of modulus, as 12:34:56...*/ /* Why have both digest and fingerprint? Well a) historical b) practicality */ /* digest is insecure as a means of verifying that keys are actually the same */ /* fingerprint is too long to include with every message */ }; typedef struct crypt_key crypt_key; struct key_ring_data { char name[64]; PurpleAccount* account; crypt_key* key; }; typedef struct key_ring_data key_ring_data; typedef GSList key_ring; /* List of all the keys we know about */ extern key_ring *PE_buddy_ring, *PE_saved_buddy_ring, *PE_my_priv_ring, *PE_my_pub_ring; static const char Private_key_file[] = "id.priv"; static const char Public_key_file[] = "id"; static const char Buddy_key_file[] = "known_keys"; /*The key routines: */ crypt_key * PE_find_key_by_name(key_ring *, const char *name, PurpleAccount* acct); crypt_key * PE_find_own_key_by_name(key_ring **, char *name, PurpleAccount *acct, PurpleConversation *conv); void PE_debug_dump_keyring(key_ring *); key_ring * PE_find_key_node_by_name(key_ring *, const char *name, PurpleAccount* acct); void PE_received_key(char *keystr, char *name, PurpleAccount* acct, PurpleConversation *conv, char** orig_msg); key_ring * PE_load_keys(const char *); void PE_save_keys(key_ring *, char *, char *); void PE_key_rings_init(void); key_ring* PE_add_key_to_ring(key_ring*, key_ring_data*); void PE_add_key_to_file(const char *filename, key_ring_data* key); key_ring* PE_del_key_from_ring(key_ring* ring, const char* name, PurpleAccount* acct); void PE_del_key_from_file(const char *filename, const char *name, PurpleAccount *acct); void PE_del_one_key_from_file(const char *filename, int key_num, const char *name); key_ring* PE_clear_ring(key_ring*); void PE_make_private_pair(crypt_proto* proto, const char* name, PurpleAccount* acct, int keylength); gboolean PE_check_base_key_path(); #endif pidgin-encryption-3.1/configure0000755000175100017510000164770511365171227013702 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.64. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software # Foundation, Inc. # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_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 <<_LT_EOF $* _LT_EOF exit 0 fi # 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 if test -z "$lt_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 && { 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. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="./encrypt.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO AR OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED LIBTOOL PLUGINS_FALSE PLUGINS_TRUE GTK_LIBS GTK_CFLAGS NSS_LIBS NSS_CFLAGS PURPLE_DATADIR PURPLE_LIBS PURPLE_CFLAGS PIDGIN_DATADIR PIDGIN_LIBS PIDGIN_CFLAGS PKG_CONFIG INTL_LIBTOOL_SUFFIX_PREFIX MKINSTALLDIRS GENCAT INSTOBJEXT DATADIRNAME POSUB POFILES INTLOBJS INTLLIBS GMOFILES CATOBJEXT CATALOGS USE_INCLUDED_LIBINTL BUILD_INCLUDED_LIBINTL INTLBISON XGETTEXT GMSGFMT MSGFMT USE_NLS LIBICONV GLIBC21 ALLOCA EGREP GREP CPP RANLIB am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_os target_vendor target_cpu target host_os host_vendor host_cpu host build_os build_vendor build_cpu build target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking with_libiconv_prefix enable_nls with_included_gettext with_nspr_includes with_nspr_libs with_nss_includes with_nss_libs enable_gtktest enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG PIDGIN_CFLAGS PIDGIN_LIBS PURPLE_CFLAGS PURPLE_LIBS NSS_CFLAGS NSS_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error "unrecognized option: \`$ac_option' Try \`$0 --help' for more information." ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-nls do not use Native Language Support --disable-gtktest do not try to compile and run a test GTK+ program --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib --with-included-gettext use the GNU gettext library included here --with-nspr-includes=PREFIX Specify location of Mozilla nspr4 includes. --with-nspr-libs=PREFIX Specify location of Mozilla nspr4 libs. --with-nss-includes=PREFIX Specify location of Mozilla nss3 includes. --with-nss-libs=PREFIX Specify location of Mozilla nss3 libs. --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility PIDGIN_CFLAGS C compiler flags for PIDGIN, overriding pkg-config PIDGIN_LIBS linker flags for PIDGIN, overriding pkg-config PURPLE_CFLAGS C compiler flags for PURPLE, overriding pkg-config PURPLE_LIBS linker flags for PURPLE, overriding pkg-config NSS_CFLAGS C compiler flags for NSS, overriding pkg-config NSS_LIBS linker flags for NSS, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.64 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_type # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do for ac_t in install-sh install.sh shtool; do if test -f "$ac_dir/$ac_t"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/$ac_t -c" break 2 fi done done if test -z "$ac_aux_dir"; then as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } if test "${ac_cv_target+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) as_fn_error "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- # # Init automake # The third argument to AM_INIT_AUTOMAKE surpresses the PACKAGE and # VERSION macors # PIDGIN_ENC_VERSION="`cat $srcdir/VERSION`" am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=pidgin-encryption VERSION=$PIDGIN_ENC_VERSION # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' cat >>confdefs.h <<_ACEOF #define ENC_VERSION "$PIDGIN_ENC_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define ENC_PACKAGE "$PACKAGE" _ACEOF # before gettexting, in case iconv matters case "$host_os" in darwin*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fink" >&5 $as_echo_n "checking for fink... " >&6; } if test -d /sw; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, adding /sw to search paths" >&5 $as_echo "found, adding /sw to search paths" >&6; } CFLAGS="$CFLAGS -I/sw/include" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } fi ;; *) ;; esac ALL_LINGUAS="bg cs da de es fr hu it ja lt nl nn pl pt_BR pt_PT ro ru sl sv ta tr uk zh_CN zh_TW" DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 rm -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then : $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { as_fn_set_status 77 as_fn_error "C compiler cannot create executables See \`config.log' for more details." "$LINENO" 5; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of object files: cannot compile See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror in -lcposix" >&5 $as_echo_n "checking for strerror in -lcposix... " >&6; } if test "${ac_cv_lib_cposix_strerror+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcposix $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strerror (); int main () { return strerror (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_cposix_strerror=yes else ac_cv_lib_cposix_strerror=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cposix_strerror" >&5 $as_echo "$ac_cv_lib_cposix_strerror" >&6; } if test "x$ac_cv_lib_cposix_strerror" = x""yes; then : LIBS="$LIBS -lcposix" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if test "${ac_cv_c_inline+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define off_t long int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if test "${ac_cv_working_alloca_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if test "${ac_cv_func_alloca_works+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if test "${ac_cv_os_cray+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" eval as_val=\$$as_ac_var if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if test "${ac_cv_c_stack_direction+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction () { static char *addr = 0; auto char dummy; if (addr == 0) { addr = &dummy; return find_stack_direction (); } else return (&dummy > addr) ? 1 : -1; } int main () { return find_stack_direction () < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi for ac_header in stdlib.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in getpagesize do : ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" if test "x$ac_cv_func_getpagesize" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 $as_echo_n "checking for working mmap... " >&6; } if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_mmap_fixed_mapped=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default /* malloc might have been renamed as rpl_malloc. */ #undef malloc /* Thanks to Mike Haertel and Jim Avera for this test. Here is a matrix of mmap possibilities: mmap private not fixed mmap private fixed at somewhere currently unmapped mmap private fixed at somewhere already mapped mmap shared not fixed mmap shared fixed at somewhere currently unmapped mmap shared fixed at somewhere already mapped For private mappings, we should verify that changes cannot be read() back from the file, nor mmap's back from the file at a different address. (There have been systems where private was not correctly implemented like the infamous i386 svr4.0, and systems where the VM page cache was not coherent with the file system buffer cache like early versions of FreeBSD and possibly contemporary NetBSD.) For shared mappings, we should conversely verify that changes get propagated back to all the places they're supposed to be. Grep wants private fixed already mapped. The main things grep needs to know about mmap are: * does it exist and is it safe to write into the mmap'd area * how to use it (BSD variants) */ #include #include #if !defined STDC_HEADERS && !defined HAVE_STDLIB_H char *malloc (); #endif /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE /* Assume that all systems that can run configure have sys/param.h. */ # ifndef HAVE_SYS_PARAM_H # define HAVE_SYS_PARAM_H 1 # endif # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ # ifdef HAVE_SYS_PARAM_H # include # ifdef EXEC_PAGESIZE # define getpagesize() EXEC_PAGESIZE # else /* no EXEC_PAGESIZE */ # ifdef NBPG # define getpagesize() NBPG * CLSIZE # ifndef CLSIZE # define CLSIZE 1 # endif /* no CLSIZE */ # else /* no NBPG */ # ifdef NBPC # define getpagesize() NBPC # else /* no NBPC */ # ifdef PAGESIZE # define getpagesize() PAGESIZE # endif /* PAGESIZE */ # endif /* no NBPC */ # endif /* no NBPG */ # endif /* no EXEC_PAGESIZE */ # else /* no HAVE_SYS_PARAM_H */ # define getpagesize() 8192 /* punt totally */ # endif /* no HAVE_SYS_PARAM_H */ # endif /* no _SC_PAGESIZE */ #endif /* no HAVE_GETPAGESIZE */ int main () { char *data, *data2, *data3; int i, pagesize; int fd; pagesize = getpagesize (); /* First, make a file with some known garbage in it. */ data = (char *) malloc (pagesize); if (!data) return 1; for (i = 0; i < pagesize; ++i) *(data + i) = rand (); umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) return 1; if (write (fd, data, pagesize) != pagesize) return 1; close (fd); /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) return 1; data2 = (char *) malloc (2 * pagesize); if (!data2) return 1; data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1); if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED, fd, 0L)) return 1; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) return 1; /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on some variants of i386 svr4.0.) */ for (i = 0; i < pagesize; ++i) *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) return 1; if (read (fd, data3, pagesize) != pagesize) return 1; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) return 1; close (fd); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_mmap_fixed_mapped=yes else ac_cv_func_mmap_fixed_mapped=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 $as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } if test $ac_cv_func_mmap_fixed_mapped = yes; then $as_echo "#define HAVE_MMAP 1" >>confdefs.h fi rm -f conftest.mmap { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2.1 or newer" >&5 $as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; } if test "${ac_cv_gnu_library_2_1+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : ac_cv_gnu_library_2_1=yes else ac_cv_gnu_library_2_1=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 $as_echo "$ac_cv_gnu_library_2_1" >&6; } GLIBC21="$ac_cv_gnu_library_2_1" for ac_header in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in feof_unlocked fgets_unlocked getcwd getegid geteuid \ getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ strdup strtoul tsearch __argz_count __argz_stringify __argz_next do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" eval as_val=\$$as_ac_var if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; for dir in `echo "$withval" | tr : ' '`; do if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if test "${am_cv_func_iconv+set}" = set; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS -liconv" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 $as_echo_n "checking for iconv declaration... " >&6; } if test "${am_cv_proto_iconv+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_cv_proto_iconv_arg1="" else am_cv_proto_iconv_arg1="const" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:- }$am_cv_proto_iconv" >&5 $as_echo "${ac_t:- }$am_cv_proto_iconv" >&6; } cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 _ACEOF fi LIBICONV= if test "$am_cv_lib_iconv" = yes; then LIBICONV="-liconv" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } if test "${am_cv_langinfo_codeset+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char* cs = nl_langinfo(CODESET); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_langinfo_codeset=yes else am_cv_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 $as_echo "$am_cv_langinfo_codeset" >&6; } if test $am_cv_langinfo_codeset = yes; then $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if test "${am_cv_val_LC_MESSAGES+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no INTLLIBS= if test "$USE_NLS" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether included gettext is requested" >&5 $as_echo_n "checking whether included gettext is requested... " >&6; } # Check whether --with-included-gettext was given. if test "${with_included_gettext+set}" = set; then : withval=$with_included_gettext; nls_cv_force_use_gnu_gettext=$withval else nls_cv_force_use_gnu_gettext=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nls_cv_force_use_gnu_gettext" >&5 $as_echo "$nls_cv_force_use_gnu_gettext" >&6; } nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then CATOBJEXT=NONE ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if test "${gt_cv_func_gnugettext1_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern int _nl_msg_cat_cntr; int main () { bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_gnugettext1_libc=yes else gt_cv_func_gnugettext1_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libc" >&5 $as_echo "$gt_cv_func_gnugettext1_libc" >&6; } if test "$gt_cv_func_gnugettext1_libc" != "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -lintl $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern int _nl_msg_cat_cntr; int main () { bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_gnugettext1_libintl=yes else gt_cv_func_gnugettext1_libintl=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libintl" >&5 $as_echo "$gt_cv_func_gnugettext1_libintl" >&6; } fi if test "$gt_cv_func_gnugettext1_libc" = "yes" \ || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \ && test "$PACKAGE" != gettext; }; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then INTLLIBS="-lintl $LIBICONV" fi gt_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done LIBS="$gt_save_LIBS" # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi CATOBJEXT=.gmo fi fi if test "$CATOBJEXT" = "NONE"; then nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then INTLOBJS="\$(GETTOBJS)" # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes CATOBJEXT=.gmo INTLLIBS="\$(top_builddir)/intl/libintl.a $LIBICONV" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi if test "$GMSGFMT" != ":"; then if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found msgfmt program is not GNU msgfmt; ignore it" >&5 $as_echo "found msgfmt program is not GNU msgfmt; ignore it" >&6; } GMSGFMT=":" fi fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi POSUB=po fi ac_config_commands="$ac_config_commands default-1" if test "$PACKAGE" = gettext; then BUILD_INCLUDED_LIBINTL=yes fi for ac_prog in bison do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_INTLBISON+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$INTLBISON"; then ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_INTLBISON="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi INTLBISON=$ac_cv_prog_INTLBISON if test -n "$INTLBISON"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLBISON" >&5 $as_echo "$INTLBISON" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$INTLBISON" && break done if test -z "$INTLBISON"; then ac_verc_fail=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of bison" >&5 $as_echo_n "checking version of bison... " >&6; } ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5 $as_echo "$ac_prog_version" >&6; } fi if test $ac_verc_fail = yes; then INTLBISON=: fi for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done nls_cv_header_intl= nls_cv_header_libgt= DATADIRNAME=share INSTOBJEXT=.mo GENCAT=gencat if test "x$CATOBJEXT" != "x"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi INTL_LIBTOOL_SUFFIX_PREFIX= # # Setup the header file # # # Look for the C compiler # CFLAGS_save="$CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 rm -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi CFLAGS="$CFLAGS_save" # # Utility function # check_for_header() { file="$1" bases="$2" variations=". $3" result= for dir in $bases; do if test -z "$result"; then for variant in $variations; do if test -z "$result" -a -f "$dir/$variant/$file"; then result="$dir/$variant" fi done fi done if test -z "$result"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found!" >&5 $as_echo "not found!" >&6; } as_fn_error "*** Cannot continue" "$LINENO" 5 fi } check_for_lib() { func="$1" lib="$2" bases="$3" variations="$4" LIBS_save="$LIBS" LDFLAGS_save="$LDFLAGS" found=0 result= LIBS="-l$lib $LIBS_save" as_ac_var=`$as_echo "ac_cv_func_$func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$func" "$as_ac_var" eval as_val=\$$as_ac_var if test "x$as_val" = x""yes; then : result="$dir/$variant" fi if test -z "$result"; then for dir in $bases; do if test -z "$result"; then for variant in $variations; do echo checking: $dir/$variant if test -z "$result"; then if test -d "$dir/$variant"; then LDFLAGS="-L$dir/$variant $LDFLAGS_save" as_ac_var=`$as_echo "ac_cv_func_$func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$func" "$as_ac_var" eval as_val=\$$as_ac_var if test "x$as_val" = x""yes; then : result="$dir/$variant" fi fi cmd="unset ac_cv_func_$func" eval $cmd unset cmd fi done fi done fi if test -z "$result"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: could not find $lib" >&5 $as_echo "could not find $lib" >&6; } as_fn_error "*** Cannot continue" "$LINENO" 5 fi LDFLAGS="-L$result $LDFLAGS_save" } # # Check for Pidgin # if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PIDGIN" >&5 $as_echo_n "checking for PIDGIN... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$PIDGIN_CFLAGS"; then pkg_cv_PIDGIN_CFLAGS="$PIDGIN_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pidgin\""; } >&5 ($PKG_CONFIG --exists --print-errors "pidgin") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PIDGIN_CFLAGS=`$PKG_CONFIG --cflags "pidgin" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$PIDGIN_LIBS"; then pkg_cv_PIDGIN_LIBS="$PIDGIN_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pidgin\""; } >&5 ($PKG_CONFIG --exists --print-errors "pidgin") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PIDGIN_LIBS=`$PKG_CONFIG --libs "pidgin" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then PIDGIN_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "pidgin"` else PIDGIN_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pidgin"` fi # Put the nasty error message in config.log where it belongs echo "$PIDGIN_PKG_ERRORS" >&5 as_fn_error "Package requirements (pidgin) were not met: $PIDGIN_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables PIDGIN_CFLAGS and PIDGIN_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " "$LINENO" 5 elif test $pkg_failed = untried; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables PIDGIN_CFLAGS and PIDGIN_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details." "$LINENO" 5; } else PIDGIN_CFLAGS=$pkg_cv_PIDGIN_CFLAGS PIDGIN_LIBS=$pkg_cv_PIDGIN_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_PIDGIN 1" >>confdefs.h fi PIDGIN_DATADIR=`pkg-config --variable=datadir pidgin` # # Check for libpurple # pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PURPLE" >&5 $as_echo_n "checking for PURPLE... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$PURPLE_CFLAGS"; then pkg_cv_PURPLE_CFLAGS="$PURPLE_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"purple\""; } >&5 ($PKG_CONFIG --exists --print-errors "purple") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PURPLE_CFLAGS=`$PKG_CONFIG --cflags "purple" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$PURPLE_LIBS"; then pkg_cv_PURPLE_LIBS="$PURPLE_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"purple\""; } >&5 ($PKG_CONFIG --exists --print-errors "purple") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PURPLE_LIBS=`$PKG_CONFIG --libs "purple" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then PURPLE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "purple"` else PURPLE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "purple"` fi # Put the nasty error message in config.log where it belongs echo "$PURPLE_PKG_ERRORS" >&5 as_fn_error "Package requirements (purple) were not met: $PURPLE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables PURPLE_CFLAGS and PURPLE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " "$LINENO" 5 elif test $pkg_failed = untried; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables PURPLE_CFLAGS and PURPLE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details." "$LINENO" 5; } else PURPLE_CFLAGS=$pkg_cv_PURPLE_CFLAGS PURPLE_LIBS=$pkg_cv_PURPLE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_PURPLE 1" >>confdefs.h fi PIDGIN_DATADIR=`pkg-config --variable=datadir purple` if test "x$enable_nss" != "xno"; then # Check whether --with-nspr-includes was given. if test "${with_nspr_includes+set}" = set; then : withval=$with_nspr_includes; with_nspr_includes="$withval" fi # Check whether --with-nspr-libs was given. if test "${with_nspr_libs+set}" = set; then : withval=$with_nspr_libs; with_nspr_libs="$withval" fi # Check whether --with-nss-includes was given. if test "${with_nss_includes+set}" = set; then : withval=$with_nss_includes; with_nss_includes="$withval" fi # Check whether --with-nss-libs was given. if test "${with_nss_libs+set}" = set; then : withval=$with_nss_libs; with_nss_libs="$withval" fi if test -n "$with_nspr_includes" || test -n "$with_nspr_libs" || \ test -n "$with_nss_includes" || test -n "$with_nss_libs" || test "x$enable_nss" = "xstatic"; then nss_manual_check="yes" else nss_manual_check="no" fi enable_nss="no" if test "x$nss_manual_check" = "xno"; then if `$PKG_CONFIG --exists mozilla-nss`; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSS" >&5 $as_echo_n "checking for NSS... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$NSS_CFLAGS"; then pkg_cv_NSS_CFLAGS="$NSS_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozilla-nss\""; } >&5 ($PKG_CONFIG --exists --print-errors "mozilla-nss") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "mozilla-nss" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$NSS_LIBS"; then pkg_cv_NSS_LIBS="$NSS_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozilla-nss\""; } >&5 ($PKG_CONFIG --exists --print-errors "mozilla-nss") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "mozilla-nss" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mozilla-nss"` else NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-nss"` fi # Put the nasty error message in config.log where it belongs echo "$NSS_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_nss="no" elif test $pkg_failed = untried; then have_nss="no" else NSS_CFLAGS=$pkg_cv_NSS_CFLAGS NSS_LIBS=$pkg_cv_NSS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_nss="yes" fi mozilla_nspr="mozilla-nspr" mozilla_nss="mozilla-nss" else if `$PKG_CONFIG --exists nss`; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSS" >&5 $as_echo_n "checking for NSS... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$NSS_CFLAGS"; then pkg_cv_NSS_CFLAGS="$NSS_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nss\""; } >&5 ($PKG_CONFIG --exists --print-errors "nss") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "nss" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$NSS_LIBS"; then pkg_cv_NSS_LIBS="$NSS_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nss\""; } >&5 ($PKG_CONFIG --exists --print-errors "nss") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "nss" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "nss"` else NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "nss"` fi # Put the nasty error message in config.log where it belongs echo "$NSS_PKG_ERRORS" >&5 as_fn_error "Package requirements (nss) were not met: $NSS_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables NSS_CFLAGS and NSS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " "$LINENO" 5 elif test $pkg_failed = untried; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables NSS_CFLAGS and NSS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details." "$LINENO" 5; } else NSS_CFLAGS=$pkg_cv_NSS_CFLAGS NSS_LIBS=$pkg_cv_NSS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_nss="yes" fi mozilla_nspr="nspr" mozilla_nss="nss" fi fi if test "x$have_nss" = "xyes"; then $as_echo "#define HAVE_NSS 1" >>confdefs.h $as_echo "#define HAVE_SSL 1" >>confdefs.h msg_nss="Mozilla NSS" enable_nss="yes" else nss_manual_check="yes" fi fi if test "x$nss_manual_check" = "xyes"; then mozilla_nss="" have_nspr_includes="no" if test "x$with_nspr_includes" != "xno"; then CPPFLAGS_save=$CPPFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mozilla nspr4 includes in $with_nspr_includes" >&5 $as_echo_n "checking for Mozilla nspr4 includes in $with_nspr_includes... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"\"" >&5 $as_echo "\"\"" >&6; } CPPFLAGS="$CPPFLAGS -I$with_nspr_includes" for ac_header in nspr.h prio.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF moz_nspr_includes="yes" fi done CPPFLAGS=$CPPFLAGS_save if test "x$moz_nspr_includes" != "xno" -a \ "x$moz_nspr_includes" != "x"; then have_nspr_includes="yes" NSPR_CFLAGS="-I$with_nspr_includes" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mozilla nspr4 includes" >&5 $as_echo_n "checking for Mozilla nspr4 includes... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } enable_nss="no" fi have_nspr_libs="no" if test "x$with_nspr_libs" != "xno" -a \ "x$have_nspr_includes" != "xno"; then CFLAGS_save=$CFLAGS LDFLAGS_save=$LDFLAGS if test "$enable_nss" = "static"; then if test -z "$with_nspr_libs"; then as_fn_error "Static linkage requested, but path to nspr libraries not set. Please specify the path to libnspr4.a Example: --with-nspr-libs=/usr/lib" "$LINENO" 5 enable_nss="no" else nsprlibs="$LIBDL $with_nspr_libs/libplc4.a $with_nspr_libs/libplds4.a $with_nspr_libs/libnspr4.a $PTHREAD_LIB" fi else nsprlibs="$LIBDL -lplc4 -lplds4 -lnspr4 $PTHREAD_LIB" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mozilla nspr libraries" >&5 $as_echo_n "checking for Mozilla nspr libraries... " >&6; } if test "${moz_nspr_libs+set}" = set; then : $as_echo_n "(cached) " >&6 else LIBS_save=$LIBS CFLAGS="$CFLAGS $NSPR_CFLAGS" LIBS="$nsprlibs" if test "x$with_nspr_libs" != "x"; then LDFLAGS="$LDFLAGS -L$with_nspr_libs" else LDFLAGS="$LDFLAGS" fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char PR_Init (); int main () { return PR_Init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : moz_nspr_libs="yes" else moz_nspr_libs="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$CFLAGS_save LDFLAGS=$LDFLAGS_save LIBS=$LIBS_save fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $moz_nspr_libs" >&5 $as_echo "$moz_nspr_libs" >&6; } if test "x$moz_nspr_libs" != "xno"; then have_nspr_libs="yes" NSPR_LIBS="-L$with_nspr_libs $nsprlibs" else NSPR_CFLAGS="" enable_nss="no" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mozilla nspr4 libraries" >&5 $as_echo_n "checking for Mozilla nspr4 libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi have_nss_includes="no" if test "x$with_nss_includes" != "xno" -a \ "x$have_nspr_libs" != "xno"; then CPPFLAGS_save=$CPPFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mozilla nss3 includes in $with_nss_includes" >&5 $as_echo_n "checking for Mozilla nss3 includes in $with_nss_includes... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"\"" >&5 $as_echo "\"\"" >&6; } if test "x$with_nspr_includes" != "x"; then CPPFLAGS="$CPPFLAGS -I$with_nspr_includes -I$with_nss_includes" else CPPFLAGS="$CPPFLAGS -I$with_nss_includes" fi for ac_header in nss.h ssl.h smime.h keyhi.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF moz_nss_includes="yes" else moz_nss_includes="no" fi done CPPFLAGS=$CPPFLAGS_save if test "x$moz_nss_includes" = "xyes"; then have_nss_includes="yes" NSS_CFLAGS="-I$with_nss_includes" else NSPR_CFLAGS="" NSPR_LIBS="" enable_nss="no" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mozilla nss3 includes" >&5 $as_echo_n "checking for Mozilla nss3 includes... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } enable_nss="no" fi if test "x$with_nss_libs" != "xno" -a \ "x$have_nss_includes" != "xno"; then LDFLAGS_save=$LDFLAGS if test "$enable_nss" = "static"; then if test -z "$with_nss_libs"; then as_fn_error "Static linkage requested, but path to nss libraries not set. Please specify the path to libnss3.a Example: --with-nspr-libs=/usr/lib/mozilla" "$LINENO" 5 enable_nss="no" else nsslibs="-ldb1 $with_nss_libs/libnssckfw.a $with_nss_libs/libasn1.a $with_nss_libs/libcrmf.a $with_nss_libs/libswfci.a $with_nss_libs/libjar.a $with_nss_libs/libpkcs12.a $with_nss_libs/libpkcs7.a $with_nss_libs/libpki1.a $with_nss_libs/libsmime.a $with_nss_libs/libssl.a $with_nss_libs/libnss.a $with_nss_libs/libpk11wrap.a $with_nss_libs/libsoftokn.a $with_nss_libs/libfreebl.a $with_nss_libs/libnsspki.a $with_nss_libs/libnssdev.a $with_nss_libs/libcryptohi.a $with_nss_libs/libcerthi.a $with_nss_libs/libcertdb.a $with_nss_libs/libsecutil.a $with_nss_libs/libnssb.a" case "$host" in *solaris*) nsslibs="$nsslibs $with_nss_libs/libfreeb1.a" ;; esac fi else nsslibs="-lssl3 -lsmime3 -lnss3 -lsoftokn3" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mozilla nss libraries" >&5 $as_echo_n "checking for Mozilla nss libraries... " >&6; } if test "${moz_nss_libs+set}" = set; then : $as_echo_n "(cached) " >&6 else LIBS_save=$LIBS LDFLAGS="$LDFLAGS -L$with_nspr_libs $nsprlibs -L$with_nss_libs $nsslibs" LIBS="$nsslibs $nsprlibs" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char NSS_Init (); int main () { return NSS_Init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : moz_nss_libs="yes" else moz_nss_libs="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "x$moz_nss_libs" = "xno"; then nsslibs="-lssl3 -lsmime3 -lnss3 -lsoftokn3" LDFLAGS="$LDFLAGS -L$with_nspr_libs $nsprlibs -L$with_nss_libs $nsslibs" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char NSS_Init (); int main () { return NSS_Init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : moz_nss_libs="yes" else moz_nss_libs="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi LDFLAGS=$LDFLAGS_save LIBS=$LIBS_save fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $moz_nss_libs" >&5 $as_echo "$moz_nss_libs" >&6; } if test "x$moz_nss_libs" != "xno"; then $as_echo "#define HAVE_NSS 1" >>confdefs.h $as_echo "#define HAVE_SSL 1" >>confdefs.h NSS_LIBS="-L$with_nss_libs $nsslibs" if test "$enable_nss" = "static"; then msg_nss="Mozilla NSS (static)" else msg_nss="Mozilla NSS" fi enable_nss="yes" else NSS_CFLAGS="" NSPR_CFLAGS="" NSPR_LIBS="" enable_nss="no" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mozilla nss libraries" >&5 $as_echo_n "checking for Mozilla nss libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi NSS_CFLAGS="$NSPR_CFLAGS $NSS_CFLAGS" NSS_LIBS="$NSPR_LIBS $NSS_LIBS" fi fi # Check whether --enable-gtktest was given. if test "${enable_gtktest+set}" = set; then : enableval=$enable_gtktest; else enable_gtktest=yes fi pkg_config_args=gtk+-2.0 for module in . do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$PKG_CONFIG != xno ; then if pkg-config --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=2.0.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK+ - version >= $min_gtk_version" >&5 $as_echo_n "checking for GTK+ - version >= $min_gtk_version... " >&6; } if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" rm -f conf.gtktest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.gtktest"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_gtk=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&5 $as_echo "yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&6; } : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" as_fn_error " *** GTK+ 2.0 is required to build Pidgin-Encryption; please make sure you have the GTK+ *** development headers installed. The latest version of GTK+ is *** always available at http://www.gtk.org/." "$LINENO" 5 fi rm -f conf.gtktest CPPFLAGS="$GTK_CFLAGS $CPPFLAGS" # # A little tomfoolery to make this buildable both in the pidgin # structure and standalone # want_plugins=yes if test "$want_plugins" = "yes"; then PLUGINS_TRUE= PLUGINS_FALSE='#' else PLUGINS_TRUE='#' PLUGINS_FALSE= fi # # Setup libtool # case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6' macro_revision='1.3012' ltmain="$ac_aux_dir/ltmain.sh" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file 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 : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:8270: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:8273: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:8276: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; 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 # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; 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=pass_all ;; 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in 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 # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi 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 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 9481 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$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*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) 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*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test 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 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) 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* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$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 for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "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. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; 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-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # 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:10743: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:10747: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "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 lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # 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:11082: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:11086: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "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 lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "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 lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:11187: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:11191: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "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_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:11242: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:11246: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "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_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$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 ;; linux* | k*bsd*-gnu) link_all_deplibs=no ;; esac ld_shlibs=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 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` 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 ld_shlibs=no cat <<_LT_EOF 1>&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. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='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 ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $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' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 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 ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$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 export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$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. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' 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 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no 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 export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$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*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$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 archive_cmds='$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 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$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*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$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 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$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' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "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. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We 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. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$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 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux 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*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$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' ;; esac ;; 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* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # 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}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux 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 # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) 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 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 shlibpath_overrides_runpath=yes 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' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no 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 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != 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_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; 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 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* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; 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" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 13625 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #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 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 ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 13721 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #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 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 ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: # # Party on # ac_config_headers="$ac_config_headers pre-config.h" ac_config_files="$ac_config_files Makefile pixmaps/Makefile intl/Makefile po/Makefile.in" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${PLUGINS_TRUE}" && test -z "${PLUGINS_FALSE}"; then as_fn_error "conditional \"PLUGINS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.64, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "pre-config.h") CONFIG_HEADERS="$CONFIG_HEADERS pre-config.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES pixmaps/Makefile" ;; "intl/Makefile") CONFIG_FILES="$CONFIG_FILES intl/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "default-1":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" fi ;; esac done ;; "libtool":C) # 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 cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # 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 # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # 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_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # 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=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit $? fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi pidgin-encryption-3.1/rsa_nss.c0000755000175100017510000007250711365171052013575 00000000000000/* NSS keys for the Pidgin-Encryption plugin */ /* Copyright (C) 2001 William Tompkins */ /* This plugin is free software, distributed under the GNU General Public */ /* License. */ /* Please see the file "COPYING" distributed with this source code */ /* for more details */ /* */ /* */ /* This software is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* General Public License for more details. */ /* To compile and use: */ /* See INSTALL file. */ #include "internal.h" #include #include #include #include #include #include "glib/gmain.h" #include #include #ifdef _WIN32 #include "win32dep.h" #endif #include "rsa_nss.h" #include #include #include #include #include #include #include #include "nls.h" #include "nss_mgf1.h" #include "nss_oaep.h" #include "nss_pss.h" #include "cryptutil.h" #include "keys.h" #include "cryptproto.h" #include "state_ui.h" char* rsa_nss_proto_string="NSS 1.0"; crypt_proto* rsa_nss_proto; /*Functions exported through crypt_proto structure */ static int rsa_nss_encrypt(unsigned char**, unsigned char*, int, crypt_key*); static int rsa_nss_decrypt(unsigned char**, unsigned char*, int, crypt_key*); static int rsa_nss_sign(unsigned char**, unsigned char*, int, crypt_key*, crypt_key*); static int rsa_nss_auth(unsigned char**, unsigned char*, int, crypt_key*, const char* name); static crypt_key* rsa_nss_make_key_from_str(char *key_str); static GString* rsa_nss_key_to_gstr(crypt_key* inkey); static char* rsa_nss_parseable(char* key); static crypt_key* rsa_nss_parse_sent_key(char *key_str); static GString* rsa_nss_make_sendable_key(crypt_key* inkey, const char* name); static gchar* rsa_nss_make_key_id(crypt_key* inkey); void rsa_nss_gen_key_pair(crypt_key **, crypt_key **, const char* name, int keysize); static void rsa_nss_free(crypt_key*); static crypt_key* rsa_nss_make_pub_from_priv(crypt_key* priv); static int rsa_nss_calc_unencrypted_size(struct crypt_key*, int); static int rsa_nss_calc_unsigned_size(struct crypt_key*, int); /* internals */ void rsa_nss_test(crypt_key *pub, crypt_key *priv); gboolean rsa_nss_init() { gboolean nss_loaded_ok = FALSE; PurplePlugin *plugin = purple_plugins_find_with_name("NSS"); if (plugin != NULL) { nss_loaded_ok = purple_plugin_is_loaded(plugin); if (!nss_loaded_ok) { nss_loaded_ok = purple_plugin_load(plugin); } } if (!nss_loaded_ok) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Initializing NSS without Purple support\n"); /* Purple doesn't seem to have NSS support: try to load it ourselves: */ PR_Init(PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 1); NSS_NoDB_Init(NULL); /* TODO: Fix this so autoconf does the work trying to find this lib. */ SECMOD_AddNewModule("Builtins", #ifndef _WIN32 LIBDIR "/libnssckbi.so", #else "nssckbi.dll", #endif 0, 0); NSS_SetDomesticPolicy(); /* purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", _("Can't load the NSS plugin\n")); */ /* PE_error_window(_("Purple was not compiled with the NSS plugin enabled. " */ /* "Pidgin-Encryption requires the NSS plugin to function.")); */ /* return FALSE; */ } rsa_nss_proto = g_malloc(sizeof(crypt_proto)); crypt_proto_list = g_slist_prepend(crypt_proto_list, rsa_nss_proto); rsa_nss_proto->encrypt = rsa_nss_encrypt; rsa_nss_proto->decrypt = rsa_nss_decrypt; rsa_nss_proto->sign = rsa_nss_sign; rsa_nss_proto->auth = rsa_nss_auth; rsa_nss_proto->make_key_from_str = rsa_nss_make_key_from_str; rsa_nss_proto->key_to_gstr = rsa_nss_key_to_gstr; rsa_nss_proto->parseable = rsa_nss_parseable; rsa_nss_proto->parse_sent_key = rsa_nss_parse_sent_key; rsa_nss_proto->make_sendable_key = rsa_nss_make_sendable_key; rsa_nss_proto->make_key_id = rsa_nss_make_key_id; rsa_nss_proto->gen_key_pair = rsa_nss_gen_key_pair; rsa_nss_proto->free = rsa_nss_free; rsa_nss_proto->make_pub_from_priv = rsa_nss_make_pub_from_priv; rsa_nss_proto->calc_unencrypted_size = rsa_nss_calc_unencrypted_size; rsa_nss_proto->calc_unsigned_size = rsa_nss_calc_unsigned_size; rsa_nss_proto->name = rsa_nss_proto_string; return TRUE; } static void rsa_nss_free(crypt_key* key){ if (key->store.rsa_nss.pub) { SECKEY_DestroyPublicKey(key->store.rsa_nss.pub); key->store.rsa_nss.pub = 0; } if (key->store.rsa_nss.priv) { SECKEY_DestroyPrivateKey(key->store.rsa_nss.priv); key->store.rsa_nss.priv = 0; } } static SECItem* get_random_iv(CK_MECHANISM_TYPE mechType) { int iv_size = PK11_GetIVLength(mechType); SECItem *iv; SECStatus rv; iv = PORT_ZNew(SECItem); g_assert(iv != 0); g_assert(iv_size != 0); iv->data = PORT_NewArray(unsigned char, iv_size); g_assert(iv->data != 0); iv->len = iv_size; rv = PK11_GenerateRandom(iv->data, iv->len); g_assert(rv == SECSuccess); return iv; } static void generate_digest(char* digest, SECKEYPublicKey* key) { SECItem *hash = PK11_MakeIDFromPubKey(&key->u.rsa.modulus); int i = 0, digestPos = 0; while (i < hash->len && digestPos < KEY_DIGEST_LENGTH) { sprintf(digest + digestPos, "%02x", hash->data[i]); ++i; digestPos += 2; } SECITEM_ZfreeItem (hash, PR_TRUE); } static void generate_fingerprint(char* print, SECKEYPublicKey* key) { SECItem *hash = PK11_MakeIDFromPubKey(&key->u.rsa.modulus); int i; for (i= 0; i < hash->len - 1; ++i) { sprintf(print + (3*i), "%02x:", hash->data[i]); } sprintf(print + 3 * (hash->len - 1), "%02x", hash->data[(hash->len - 1)]); SECITEM_ZfreeItem (hash, PR_TRUE); } static SECKEYPublicKey * copy_public_rsa_key(SECKEYPublicKey *pubk) { SECKEYPublicKey *copyk; PRArenaPool *arena; SECStatus rv; arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE); g_assert(arena != NULL); copyk = (SECKEYPublicKey *) PORT_ArenaZAlloc (arena, sizeof (SECKEYPublicKey)); g_assert(copyk != NULL); copyk->arena = arena; copyk->keyType = pubk->keyType; copyk->pkcs11Slot = NULL; /* go get own reference */ copyk->pkcs11ID = CK_INVALID_HANDLE; rv = SECITEM_CopyItem(arena, ©k->u.rsa.modulus, &pubk->u.rsa.modulus); g_assert(rv == SECSuccess); rv = SECITEM_CopyItem (arena, ©k->u.rsa.publicExponent, &pubk->u.rsa.publicExponent); g_assert(rv == SECSuccess); return copyk; } void rsa_nss_gen_key_pair(crypt_key **pub_key, crypt_key **priv_key, const char* name, int keysize) { GtkWidget *status_window, *main_box, *label1, *label2; char labelText[1000]; PK11RSAGenParams rsaParams; PK11SlotInfo *slot; CK_MECHANISM_TYPE multiType[2] = {CKM_RSA_PKCS_KEY_PAIR_GEN, CKM_DES_CBC_PAD}; /* Create the widgets */ PIDGIN_DIALOG(status_window); gtk_window_set_wmclass(GTK_WINDOW(status_window), "keygen", "Pidgin"); gtk_widget_realize(status_window); gtk_container_set_border_width(GTK_CONTAINER(status_window), 10); gtk_widget_set_size_request(status_window, 350, 100); gtk_window_set_title(GTK_WINDOW(status_window), "Status"); main_box = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(status_window), main_box); gtk_widget_show(main_box); g_snprintf(labelText, sizeof(labelText), _("Generating RSA Key Pair for %s"), name); label1 = gtk_label_new (labelText); label2 = gtk_label_new (_("This may take a little bit...")); gtk_container_add (GTK_CONTAINER (main_box), label1); gtk_widget_show(label1); gtk_container_add (GTK_CONTAINER (main_box), label2); gtk_widget_show(label2); gtk_widget_show (status_window); // I don't understand: if I remove one of these // two loops, the contents of the status window don't // get drawn. Hmm... while (gtk_events_pending()) { gtk_main_iteration_do(FALSE); } gtk_main_iteration(); while (gtk_events_pending()) { gtk_main_iteration_do(FALSE); } *priv_key = g_malloc(sizeof(crypt_key)); rsaParams.keySizeInBits = keysize; rsaParams.pe = 65537L; slot = PK11_GetBestSlotMultiple(multiType, 2, 0); /* Generate "session" (first FALSE), "not sensitive" (next FALSE) key */ (*priv_key)->store.rsa_nss.priv = PK11_GenerateKeyPair(slot, CKM_RSA_PKCS_KEY_PAIR_GEN, &rsaParams, &(*priv_key)->store.rsa_nss.pub, PR_FALSE, PR_FALSE, 0); if (!(*priv_key)->store.rsa_nss.priv) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", _("Could not generate key. NSS Error: %d\n"), PORT_GetError()); exit(0); } (*priv_key)->proto = rsa_nss_proto; g_snprintf((*priv_key)->length, sizeof((*priv_key)->length), "%d", keysize); generate_digest((*priv_key)->digest, (*priv_key)->store.rsa_nss.pub); generate_fingerprint((*priv_key)->fingerprint, (*priv_key)->store.rsa_nss.pub); (*pub_key) = rsa_nss_make_pub_from_priv(*priv_key); gtk_widget_hide(status_window); gtk_widget_destroy(status_window); } char* rsa_nss_parseable(char *key) { /* If the key is ours, return a pointer to the ':' after our token */ /* otherwise return 0 */ /* if we were more sophisticated, we could look for older versions */ /* of our protocol here, and accept them too. */ if (strncmp(rsa_nss_proto_string, key, strlen(rsa_nss_proto_string)) == 0) { return key + strlen(rsa_nss_proto_string); } else { return 0; } } static GString* append_priv_key_to_gstr(GString *str, SECKEYPrivateKey* priv) { /* for now, we hope that everyone can use DES3. This is for wrapping */ /* private keys, which isn't actually secure at this point anyways */ /* (security provided by the OS: no one else can read/write the keyfile */ const CK_MECHANISM_TYPE SymEncryptionType = CKM_DES3_CBC_PAD; PK11SlotInfo *symSlot; PK11SymKey *symKey; SECItem symKeyItem; /* storage space for binary key import */ unsigned char symKeyData[24] = {0}; SECItem *iv = NULL; /* IV for CBC encoding */ SECItem exportedKey; /* storage space for exported key */ unsigned char exportedKeyData[5000] = {0}; char* tmpstr; int errCode; if (priv == 0) return str; /* Wrap key using a null symmetric key. When/If we add password protection to keys, we can generate the symmetric key from a hashed password instead */ symSlot = PK11_GetBestSlot(SymEncryptionType, NULL); g_assert(symSlot != 0); symKeyItem.data = &symKeyData[0]; symKeyItem.len = sizeof(symKeyData); symKey = PK11_ImportSymKey(symSlot, PK11_GetKeyGen(SymEncryptionType), PK11_OriginUnwrap, CKA_WRAP, &symKeyItem, NULL); iv = get_random_iv(SymEncryptionType); exportedKey.len = sizeof(exportedKeyData); exportedKey.data = exportedKeyData; errCode = PK11_WrapPrivKey(symSlot, symKey, priv, SymEncryptionType, iv, &exportedKey, NULL); g_assert(errCode == SECSuccess); g_string_append(str, ","); tmpstr = NSSBase64_EncodeItem(0, 0, 0, iv); g_string_append(str, tmpstr); PORT_Free(tmpstr); g_string_append(str, ","); tmpstr = NSSBase64_EncodeItem(0, 0, 0, &exportedKey); g_string_append(str, tmpstr); PORT_Free(tmpstr); g_string_append(str, ","); PK11_FreeSymKey(symKey); SECITEM_ZfreeItem(iv, PR_TRUE); /* The Base64 routine may have inserted lots of return chars into the string: */ /* take them out. */ PE_strip_returns(str); return str; } static GString* append_pub_key_to_gstr(GString *str, SECKEYPublicKey* pub) { char *tmpstr; SECItem *exportedKey; if (pub == 0) return str; exportedKey = SECKEY_EncodeDERSubjectPublicKeyInfo(pub); // exportedKey = PK11_DEREncodePublicKey(pub); tmpstr = NSSBase64_EncodeItem(0, 0, 0, exportedKey); g_string_append(str, tmpstr); PORT_Free(tmpstr); SECITEM_FreeItem (exportedKey, PR_TRUE); /* The Base64 routine may have inserted lots of return chars into the string: take them out. */ PE_strip_returns(str); return str; } GString* rsa_nss_make_sendable_key(crypt_key* inkey, const char* name) { GString *outString = g_string_new(""); gchar* nonce_str = PE_new_incoming_nonce(name); g_string_append(outString, nonce_str); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Sending Nonce with key: %s\n", nonce_str); g_free(nonce_str); g_string_append(outString, ","); append_pub_key_to_gstr(outString, inkey->store.rsa_nss.pub); return outString; } gchar* rsa_nss_make_key_id(crypt_key* inkey) { return PE_nonce_to_str(&inkey->store.rsa_nss.nonce); } crypt_key* rsa_nss_parse_sent_key(char *key_str) { gchar** split_key = g_strsplit(key_str, ",", 2); crypt_key* key; if ((split_key[0] == 0) || (split_key[1] == 0)) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Error parsing RSANSS nonce/key\n"); g_strfreev(split_key); return 0; } key = rsa_nss_make_key_from_str(split_key[1]); if (key == 0) { g_strfreev(split_key); return 0; } PE_str_to_nonce(&key->store.rsa_nss.nonce, split_key[0]); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Received Nonce with key: %s\n", split_key[0]); g_strfreev(split_key); return key; } GString* rsa_nss_key_to_gstr(crypt_key* inkey) { GString *outString = g_string_new(""); append_pub_key_to_gstr(outString, inkey->store.rsa_nss.pub); append_priv_key_to_gstr(outString, inkey->store.rsa_nss.priv); return outString; } crypt_key* rsa_nss_make_key_from_str(char *key_str){ gchar **split_key; crypt_key* key = g_malloc(sizeof(crypt_key)); /* For Private keys: */ const CK_MECHANISM_TYPE SymEncryptionType = CKM_DES3_CBC_PAD; PK11SlotInfo *symSlot; PK11SymKey *symKey; SECItem *pubKeyValue; SECItem symKeyItem; /* storage space for binary key import */ unsigned char symKeyData[24] = {0}; SECItem *iv = 0, *wrappedKey = 0, label; CK_ATTRIBUTE_TYPE attribs[3] = { CKA_SIGN, CKA_DECRYPT, CKA_SIGN_RECOVER }; const int NumAttribs = 3; int cur_piece; CERTSubjectPublicKeyInfo *certPubKeyInfo; /* key_str looks like "KKKKK" or "KKKKK,NNNN,MMMM", where */ /* KKKKK is the Base64 encoding of the public key, or */ /* NNNN is the Base64 encoding of the IV, and */ /* MMMM is the Base64 encoding of the encrypted private key */ key->proto = rsa_nss_proto; split_key = g_strsplit(key_str, ",", 3); key->store.rsa_nss.pub = 0; key->store.rsa_nss.priv = 0; cur_piece = 0; // Check for public key part, and get it: if (split_key[cur_piece] == 0) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "(%d) %s", 1, _("Error parsing RSANSS key\n")); g_free(key); g_strfreev(split_key); return 0; } wrappedKey = NSSBase64_DecodeBuffer(0, 0, split_key[cur_piece], strlen(split_key[cur_piece])); if (wrappedKey == 0) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "(%d) %s", 2, _("Error parsing RSANSS key\n")); g_free(key); g_strfreev(split_key); return 0; } certPubKeyInfo = SECKEY_DecodeDERSubjectPublicKeyInfo(wrappedKey); SECITEM_FreeItem(wrappedKey, PR_TRUE); if (certPubKeyInfo == NULL) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "(%d) %s", 3, _("Error parsing RSANSS key\n")); g_free(key); g_strfreev(split_key); return 0; } key->store.rsa_nss.pub = SECKEY_ExtractPublicKey(certPubKeyInfo); if (key->store.rsa_nss.pub == NULL) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "(%d) %s", 4, _("Error parsing RSANSS key\n")); g_free(key); g_strfreev(split_key); return 0; } SECKEY_DestroySubjectPublicKeyInfo(certPubKeyInfo); generate_digest(key->digest, key->store.rsa_nss.pub); generate_fingerprint(key->fingerprint, key->store.rsa_nss.pub); g_snprintf(key->length, sizeof(key->length), "%d", 8 * SECKEY_PublicKeyStrength(key->store.rsa_nss.pub)); if (split_key[++cur_piece] == 0) { /* No private part, so return a public key: */ g_strfreev(split_key); return key; } /* ------------------------------------------------------------------------ */ /* Extract Private key: */ /* */ iv = NSSBase64_DecodeBuffer(0, 0, split_key[cur_piece], strlen(split_key[cur_piece])); if (split_key[++cur_piece] == 0) { /* only part of a private key */ purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "(%d) %s", 5, _("Error parsing RSANSS key\n")); g_free(key); g_strfreev(split_key); /* SECItem_FreeItem will ignore null arguments, so just call it to clean up */ SECITEM_ZfreeItem (iv, PR_TRUE); return 0; } wrappedKey = NSSBase64_DecodeBuffer(0, 0, split_key[cur_piece], strlen(split_key[cur_piece])); if ((iv == 0) || (wrappedKey == 0)) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "(%d) %s", 6, _("Error parsing RSANSS key\n")); g_free(key); g_strfreev(split_key); SECITEM_ZfreeItem (iv, PR_TRUE); SECITEM_ZfreeItem (wrappedKey, PR_TRUE); return 0; } pubKeyValue = SECITEM_DupItem(&key->store.rsa_nss.pub->u.rsa.modulus); symSlot = PK11_GetBestSlot(SymEncryptionType, NULL); g_assert(symSlot != 0); symKeyItem.data = &symKeyData[0]; symKeyItem.len = sizeof(symKeyData); symKey = PK11_ImportSymKey(symSlot, PK11_GetKeyGen(SymEncryptionType), PK11_OriginUnwrap, CKA_WRAP, &symKeyItem, NULL); if (!symKey) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "(%d) %s", 7, _("Error parsing RSANSS key\n")); g_strfreev(split_key); SECKEY_DestroyPublicKey(key->store.rsa_nss.pub); SECITEM_ZfreeItem (iv, PR_TRUE); SECITEM_ZfreeItem (pubKeyValue, PR_TRUE); g_free(key); return 0; } label.data = NULL; label.len = 0; key->store.rsa_nss.priv = PK11_UnwrapPrivKey(symSlot, symKey, SymEncryptionType, iv, wrappedKey, &label, pubKeyValue, PR_FALSE, PR_FALSE, CKK_RSA, attribs, NumAttribs, 0); SECITEM_ZfreeItem (iv, PR_TRUE); SECITEM_ZfreeItem (wrappedKey, PR_TRUE); SECITEM_FreeItem (pubKeyValue, PR_TRUE); PK11_FreeSymKey(symKey); if (key->store.rsa_nss.priv == 0) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "(%d) %s", 8, _("Error parsing RSANSS key\n")); g_strfreev(split_key); SECKEY_DestroyPublicKey(key->store.rsa_nss.pub); g_free(key); return 0; } /* should sanity check public/private pair */ g_strfreev(split_key); return key; } crypt_key* rsa_nss_make_pub_from_priv(crypt_key* priv_key) { crypt_key* pub_key = g_malloc(sizeof(crypt_key)); pub_key->proto = rsa_nss_proto; strcpy(pub_key->length, priv_key->length); strncpy(pub_key->digest, priv_key->digest, KEY_DIGEST_LENGTH); strncpy(pub_key->fingerprint, priv_key->fingerprint, KEY_FINGERPRINT_LENGTH); pub_key->store.rsa_nss.pub = copy_public_rsa_key(priv_key->store.rsa_nss.pub); pub_key->store.rsa_nss.priv = 0; return pub_key; } int rsa_nss_encrypt(unsigned char** encrypted, unsigned char* msg, int msg_len, crypt_key* pub_key){ SECKEYPublicKey * key = pub_key->store.rsa_nss.pub; int modulus_len = SECKEY_PublicKeyStrength(key); int unpadded_block_len = oaep_max_unpadded_len(modulus_len); int num_blocks = ((msg_len - 1) / unpadded_block_len) + 1; unsigned char* msg_cur, *encrypt_cur; int msg_block_len; unsigned char *padded_block = g_malloc(modulus_len); int ret; SECStatus rv; // purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Starting Encrypt\n"); *encrypted = g_malloc(num_blocks * modulus_len); msg_cur = msg; encrypt_cur = *encrypted; while (msg_cur < msg + msg_len) { msg_block_len = unpadded_block_len; if (msg_cur + msg_block_len > msg + msg_len) { msg_block_len = msg + msg_len - msg_cur; } ret = oaep_pad_block(padded_block, modulus_len, msg_cur, msg_block_len); if (!ret) { g_free(padded_block); g_free(*encrypted); *encrypted = 0; return 0; } rv = PK11_PubEncryptRaw(key, encrypt_cur, padded_block, modulus_len, 0); if (rv != SECSuccess) { g_free(padded_block); g_free(*encrypted); *encrypted = 0; return 0; } msg_cur += msg_block_len; encrypt_cur += modulus_len; } g_free(padded_block); // purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Ending Encrypt\n"); return (encrypt_cur - *encrypted); } int rsa_nss_decrypt(unsigned char** decrypted, unsigned char* msg, int msg_len, crypt_key* priv_key){ SECKEYPrivateKey * key = priv_key->store.rsa_nss.priv; int modulus_len = SECKEY_PublicKeyStrength(priv_key->store.rsa_nss.pub); int unpadded_block_len = oaep_max_unpadded_len(modulus_len); int num_blocks = msg_len / modulus_len; unsigned char* msg_cur, *decrypt_cur; unsigned int decrypt_block_size; unsigned char *padded_block = g_malloc(modulus_len); int ret; SECStatus rv; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Starting Decrypt\n"); *decrypted = g_malloc(num_blocks * unpadded_block_len + 1); msg_cur = msg; decrypt_cur = *decrypted; if (num_blocks * modulus_len != msg_len) { /* not an even number of blocks */ purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Not a multiple of block len: %d %d %d\n", num_blocks, modulus_len, msg_len); g_free(padded_block); g_free(*decrypted); *decrypted = 0; return 0; } while (msg_cur < msg + msg_len) { rv = PK11_PubDecryptRaw(key, padded_block, &decrypt_block_size, modulus_len, msg_cur, modulus_len); if (rv != SECSuccess) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "PubDecryptRaw failed %d\n", rv); g_free(padded_block); g_free(*decrypted); *decrypted = 0; return 0; } g_assert(decrypt_block_size == modulus_len); /* for now. Don't understand how */ /* this could not be true */ ret = oaep_unpad_block(decrypt_cur, &decrypt_block_size, padded_block, modulus_len); if (!ret) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "OAEP unpadding failed\n"); g_free(padded_block); g_free(*decrypted); *decrypted = 0; return 0; } msg_cur += modulus_len; decrypt_cur += decrypt_block_size; } g_free(padded_block); /* Null terminate what just came out, in case someone tries to use it as a string */ *decrypt_cur = 0; // purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Ending Decrypt\n"); return (decrypt_cur - *decrypted); } int rsa_nss_sign(unsigned char** signed_msg, unsigned char* msg, int msg_len, crypt_key* priv_key, crypt_key* pub_key) { SECKEYPrivateKey * key = priv_key->store.rsa_nss.priv; int modulus_len = SECKEY_PublicKeyStrength(priv_key->store.rsa_nss.pub); unsigned char *sig_pos, *tmp_sig; SECStatus rv; unsigned int out_block_size; const int salt_len = 20; gchar *nonce_str = PE_nonce_to_str(&pub_key->store.rsa_nss.nonce); int nonce_len = strlen(nonce_str); PE_incr_nonce(&pub_key->store.rsa_nss.nonce); *signed_msg = g_malloc(msg_len + modulus_len + nonce_len + 1); tmp_sig = g_malloc(modulus_len); memcpy(*signed_msg, nonce_str, nonce_len); (*signed_msg)[nonce_len]=':'; memcpy(*signed_msg + nonce_len + 1, msg, msg_len); sig_pos = *signed_msg + msg_len + nonce_len + 1 ; g_free(nonce_str); pss_generate_sig(tmp_sig, modulus_len, *signed_msg, msg_len + nonce_len + 1, salt_len); rv = PK11_PubDecryptRaw(key, sig_pos, &out_block_size, modulus_len, tmp_sig, modulus_len); if (rv != SECSuccess) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "PK11_PubDecryptRaw Failed\n"); g_free(*signed_msg); g_free(tmp_sig); *signed_msg = 0; return 0; } g_assert(out_block_size == modulus_len); /* dunno why they yield out_block_size */ g_free(tmp_sig); return msg_len + nonce_len + 1 + modulus_len; } // Returns length of authed string, or 0 if not authenticated // g_malloc's space for the authed string, and null terminates the result // If returning zero, may return a message ID (nonce) as the authed string int rsa_nss_auth(unsigned char** authed, unsigned char* msg, int msg_len, crypt_key* pub_key, const char* name) { SECKEYPublicKey * key = pub_key->store.rsa_nss.pub; int modulus_len = SECKEY_PublicKeyStrength(key); unsigned char *tmp_sig; SECStatus rv; int verified; gchar *nonce_msg, **nonce_msg_split; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Starting Auth\n"); *authed = 0; if (msg_len < modulus_len) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Bad msg_len in Auth\n"); return 0; } tmp_sig = g_malloc(modulus_len); rv = PK11_PubEncryptRaw(key, tmp_sig, msg + msg_len - modulus_len, modulus_len, 0); if (rv != SECSuccess) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "PK11_PubEncryptRaw Failed\n"); g_free(tmp_sig); return 0; } /* purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Auth 2\n"); */ verified = pss_check_sig(tmp_sig, modulus_len, msg, msg_len - modulus_len); g_free(tmp_sig); if (!verified) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", _("Bad signature on message (len %d, mod %d)\n"), msg_len, modulus_len); return 0; } /* purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Auth 3\n"); */ nonce_msg = g_strndup((char*)msg, msg_len - modulus_len); nonce_msg_split = g_strsplit(nonce_msg, ":", 2); g_free(nonce_msg); /* purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Auth 4\n"); */ if ((nonce_msg_split[0] == 0) || (nonce_msg_split[1] == 0)) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "No Nonce in message\n"); g_strfreev(nonce_msg_split); return 0; } /* purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Auth 5\n"); */ if (!PE_check_incoming_nonce(name, nonce_msg_split[0])) { purple_debug(PURPLE_DEBUG_ERROR, "pidgin-encryption", "Bad Nonce in message\n"); /* a hack: return the nonce that was sent, to send to other side, to cause */ /* message to be re-sent */ *authed = (unsigned char*) g_strdup(nonce_msg_split[0]); g_strfreev(nonce_msg_split); return 0; } /* purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Auth 6\n"); */ *authed = (unsigned char*)nonce_msg_split[1]; g_free(nonce_msg_split[0]); g_free(nonce_msg_split); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "Auth End\n"); return strlen((char*)*authed); } int rsa_nss_calc_unencrypted_size(struct crypt_key* key, int insize) { int modulus_len = SECKEY_PublicKeyStrength(key->store.rsa_nss.pub); int unpadded_block_len = oaep_max_unpadded_len(modulus_len); int num_blocks = insize / modulus_len; /* floor: max number of blocks that could fit */ return num_blocks * unpadded_block_len; } int rsa_nss_calc_unsigned_size(struct crypt_key* key, int insize) { int modulus_len, nonce_len; purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "calc_unsigned_size\n"); modulus_len = SECKEY_PublicKeyStrength(key->store.rsa_nss.pub); nonce_len = PE_nonce_str_len(); purple_debug(PURPLE_DEBUG_INFO, "pidgin-encryption", "modulus_len:%d:%d\n", modulus_len, nonce_len); if (insize < modulus_len + nonce_len) return 0; return insize - modulus_len - nonce_len - 1; /* -1 from ":" after nonce */ }