diff -Nru cyrus-imapd-2.4-2.4.9/autom4te.cache/output.0 cyrus-imapd-2.4-2.4.12/autom4te.cache/output.0 --- cyrus-imapd-2.4-2.4.9/autom4te.cache/output.0 2011-06-21 19:51:33.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/autom4te.cache/output.0 2011-10-04 20:03:33.000000000 +0000 @@ -1,6 +1,6 @@ @%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.67. +@%:@ Generated by GNU Autoconf 2.68. @%:@ @%:@ @%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -89,6 +89,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in @%:@(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -214,11 +215,18 @@ # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -1196,7 +1204,7 @@ $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} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1477,8 +1485,9 @@ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor - YACC The `Yet Another C Compiler' implementation to use. Defaults to - the first program found out of: `bison -y', `byacc', `yacc'. + YACC The `Yet Another Compiler Compiler' implementation to use. + Defaults to the first program found out of: `bison -y', `byacc', + `yacc'. YFLAGS The list of arguments that will be passed by default to @S|@YACC. This script will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications. @@ -1550,7 +1559,7 @@ if $ac_init_version; then cat <<\_ACEOF configure -generated by GNU Autoconf 2.67 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1596,7 +1605,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_compile @@ -1633,7 +1642,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_cpp @@ -1646,10 +1655,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1712,7 +1721,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1721,7 +1730,7 @@ { $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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_mongrel @@ -1762,7 +1771,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_run @@ -1776,7 +1785,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1794,7 +1803,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_compile @@ -1839,7 +1848,7 @@ # 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_link @@ -2017,7 +2026,7 @@ rm -f conftest.val fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_compute_int @@ -2030,7 +2039,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2085,7 +2094,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_func @@ -2098,7 +2107,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } -if eval "test \"\${$4+set}\"" = set; then : +if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2142,7 +2151,7 @@ eval ac_res=\$$4 { $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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_member @@ -2157,7 +2166,7 @@ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2188,7 +2197,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_decl cat >config.log <<_ACEOF @@ -2196,7 +2205,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2454,7 +2463,7 @@ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi done @@ -2530,7 +2539,7 @@ $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 + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2563,7 +2572,7 @@ fi 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 + 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, @@ -2577,27 +2586,27 @@ # 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_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 : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 + 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 + 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 ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -2615,14 +2624,14 @@ { $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 : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi @@ -2630,7 +2639,7 @@ $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -2648,14 +2657,14 @@ { $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 : +if ${ac_cv_target+:} false; 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 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi @@ -2663,7 +2672,7 @@ $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' @@ -2702,7 +2711,7 @@ set dummy makedepend; 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_MAKEDEPEND+set}" = set; then : +if ${ac_cv_prog_MAKEDEPEND+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MAKEDEPEND"; then @@ -2745,7 +2754,7 @@ @%:@ Check whether --with-login was given. if test "${with_login+set}" = set; then : withval=$with_login; as_fn_error $? "--with-login is no longer supported. -Configure SASL appropriately instead." "$LINENO" 5 +Configure SASL appropriately instead." "$LINENO" 5 fi @@ -2820,7 +2829,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2860,7 +2869,7 @@ 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -2913,7 +2922,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2953,7 +2962,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3012,7 +3021,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3056,7 +3065,7 @@ 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3111,7 +3120,7 @@ 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 ; } +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 @@ -3226,7 +3235,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -3269,7 +3278,7 @@ { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 @@ -3328,7 +3337,7 @@ $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi fi fi @@ -3339,7 +3348,7 @@ ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3380,7 +3389,7 @@ { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -3390,7 +3399,7 @@ 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 : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3427,7 +3436,7 @@ 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 : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3505,7 +3514,7 @@ 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 : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3605,7 +3614,7 @@ 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 : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -3645,7 +3654,7 @@ 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 : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -3696,7 +3705,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -3740,7 +3749,7 @@ { $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 : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3829,7 +3838,7 @@ CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -3945,7 +3954,7 @@ { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -3957,7 +3966,7 @@ { $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 : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -4006,7 +4015,7 @@ 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 + 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 @@ -4020,7 +4029,7 @@ { $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 : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -4072,7 +4081,7 @@ 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 + 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 @@ -4087,7 +4096,7 @@ { $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 : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4216,7 +4225,7 @@ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = x""yes; then : +if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= @@ -4238,7 +4247,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : +if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4278,7 +4287,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } -if test "${ac_cv_search_strerror+set}" = set; then : +if ${ac_cv_search_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -4312,11 +4321,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_strerror+set}" = set; then : + if ${ac_cv_search_strerror+:} false; then : break fi done -if test "${ac_cv_search_strerror+set}" = set; then : +if ${ac_cv_search_strerror+:} false; then : else ac_cv_search_strerror=no @@ -4338,7 +4347,7 @@ 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 : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -4376,7 +4385,7 @@ { $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 : +if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4456,7 +4465,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5 $as_echo_n "checking for long file names... " >&6; } -if test "${ac_cv_sys_long_file_names+set}" = set; then : +if ${ac_cv_sys_long_file_names+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_long_file_names=yes @@ -4495,11 +4504,11 @@ fi if test $ac_cv_sys_long_file_names = no; then - as_fn_error $? "The Cyrus IMAPD requires support for long file names" "$LINENO" 5 + as_fn_error $? "The Cyrus IMAPD requires support for long file names" "$LINENO" 5 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 : +if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no @@ -4546,7 +4555,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } -if test "${ac_cv_sizeof_int+set}" = set; then : +if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : @@ -4556,7 +4565,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi @@ -4579,7 +4588,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : +if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : @@ -4589,7 +4598,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi @@ -4612,7 +4621,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 $as_echo_n "checking size of size_t... " >&6; } -if test "${ac_cv_sizeof_size_t+set}" = set; then : +if ${ac_cv_sizeof_size_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : @@ -4622,7 +4631,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (size_t) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_size_t=0 fi @@ -4645,7 +4654,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 $as_echo_n "checking size of off_t... " >&6; } -if test "${ac_cv_sizeof_off_t+set}" = set; then : +if ${ac_cv_sizeof_off_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : @@ -4655,7 +4664,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (off_t) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_off_t=0 fi @@ -4679,7 +4688,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long int" >&5 $as_echo_n "checking size of long long int... " >&6; } -if test "${ac_cv_sizeof_long_long_int+set}" = set; then : +if ${ac_cv_sizeof_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long int))" "ac_cv_sizeof_long_long_int" "$ac_includes_default"; then : @@ -4689,7 +4698,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long long int) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long_int=0 fi @@ -4712,7 +4721,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long long int" >&5 $as_echo_n "checking size of unsigned long long int... " >&6; } -if test "${ac_cv_sizeof_unsigned_long_long_int+set}" = set; then : +if ${ac_cv_sizeof_unsigned_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long long int))" "ac_cv_sizeof_unsigned_long_long_int" "$ac_includes_default"; then : @@ -4722,7 +4731,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned long long int) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_long_long_int=0 fi @@ -4746,7 +4755,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if test "${ac_cv_c_bigendian+set}" = set; then : +if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown @@ -4965,7 +4974,7 @@ ;; #( *) as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac fi @@ -4973,7 +4982,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__" >&5 $as_echo_n "checking for __attribute__... " >&6; } -if test "${ac_cv___attribute__+set}" = set; then : +if ${ac_cv___attribute__+:} false; then : $as_echo_n "(cached) " >&6 else @@ -5017,7 +5026,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports -fPIC" >&5 $as_echo_n "checking if compiler supports -fPIC... " >&6; } -if test "${ac_cv_fpic+set}" = set; then : +if ${ac_cv_fpic+:} false; then : $as_echo_n "(cached) " >&6 else @@ -5065,7 +5074,7 @@ # CMU GUESS RUNPATH SWITCH { $as_echo "$as_me:${as_lineno-$LINENO}: checking for runpath switch" >&5 $as_echo_n "checking for runpath switch... " >&6; } -if test "${andrew_cv_runpath_switch+set}" = set; then : +if ${andrew_cv_runpath_switch+:} false; then : $as_echo_n "(cached) " >&6 else @@ -5130,7 +5139,7 @@ done ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove" -if test "x$ac_cv_func_memmove" = x""yes; then : +if test "x$ac_cv_func_memmove" = xyes; then : $as_echo "@%:@define HAVE_MEMMOVE 1" >>confdefs.h else @@ -5143,7 +5152,7 @@ fi ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" -if test "x$ac_cv_func_strcasecmp" = x""yes; then : +if test "x$ac_cv_func_strcasecmp" = xyes; then : $as_echo "@%:@define HAVE_STRCASECMP 1" >>confdefs.h else @@ -5156,7 +5165,7 @@ fi ac_fn_c_check_func "$LINENO" "ftruncate" "ac_cv_func_ftruncate" -if test "x$ac_cv_func_ftruncate" = x""yes; then : +if test "x$ac_cv_func_ftruncate" = xyes; then : $as_echo "@%:@define HAVE_FTRUNCATE 1" >>confdefs.h else @@ -5169,7 +5178,7 @@ fi ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" -if test "x$ac_cv_func_strerror" = x""yes; then : +if test "x$ac_cv_func_strerror" = xyes; then : $as_echo "@%:@define HAVE_STRERROR 1" >>confdefs.h else @@ -5199,7 +5208,7 @@ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval "test \"\${$as_ac_Header+set}\"" = set; then : +if eval \${$as_ac_Header+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5239,7 +5248,7 @@ if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -5273,11 +5282,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then : + if ${ac_cv_search_opendir+:} false; then : break fi done -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no @@ -5296,7 +5305,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -5330,11 +5339,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then : + if ${ac_cv_search_opendir+:} false; then : break fi done -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no @@ -5356,7 +5365,7 @@ for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = x""yes; then : +if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_STDLIB_H 1 _ACEOF @@ -5368,7 +5377,7 @@ for ac_func in getpassphrase do : ac_fn_c_check_func "$LINENO" "getpassphrase" "ac_cv_func_getpassphrase" -if test "x$ac_cv_func_getpassphrase" = x""yes; then : +if test "x$ac_cv_func_getpassphrase" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_GETPASSPHRASE 1 _ACEOF @@ -5381,12 +5390,12 @@ save_LIBS="$LIBS" LIB_SOCKET="" ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" -if test "x$ac_cv_func_connect" = x""yes; then : +if test "x$ac_cv_func_connect" = xyes; then : : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5420,13 +5429,13 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : LIB_SOCKET="-lnsl $LIB_SOCKET" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 $as_echo_n "checking for connect in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_connect+set}" = set; then : +if ${ac_cv_lib_socket_connect+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5460,7 +5469,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 $as_echo "$ac_cv_lib_socket_connect" >&6; } -if test "x$ac_cv_lib_socket_connect" = x""yes; then : +if test "x$ac_cv_lib_socket_connect" = xyes; then : LIB_SOCKET="-lsocket $LIB_SOCKET" fi @@ -5469,7 +5478,7 @@ LIBS="$LIB_SOCKET $save_LIBS" ac_fn_c_check_func "$LINENO" "res_search" "ac_cv_func_res_search" -if test "x$ac_cv_func_res_search" = x""yes; then : +if test "x$ac_cv_func_res_search" = xyes; then : : else LIBS="-lresolv $LIB_SOCKET $save_LIBS" @@ -5525,14 +5534,14 @@ cyrus_cv_getaddrinfo=yes ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo" -if test "x$ac_cv_func_getaddrinfo" = x""yes; then : +if test "x$ac_cv_func_getaddrinfo" = xyes; then : ac_cv_lib_socket_getaddrinfo=no ac_cv_lib_inet6_getaddrinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -lsocket" >&5 $as_echo_n "checking for getaddrinfo in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_getaddrinfo+set}" = set; then : +if ${ac_cv_lib_socket_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5566,14 +5575,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_getaddrinfo" >&5 $as_echo "$ac_cv_lib_socket_getaddrinfo" >&6; } -if test "x$ac_cv_lib_socket_getaddrinfo" = x""yes; then : +if test "x$ac_cv_lib_socket_getaddrinfo" = xyes; then : LIBS="$LIBS -lsocket" ac_cv_lib_inet6_getaddrinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system has IPv6 directory" >&5 $as_echo_n "checking whether your system has IPv6 directory... " >&6; } - if test "${ipv6_cv_dir+set}" = set; then : + if ${ipv6_cv_dir+:} false; then : $as_echo_n "(cached) " >&6 else for ipv6_cv_dir in /usr/local/v6 /usr/inet6 no; do @@ -5594,7 +5603,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -linet6" >&5 $as_echo_n "checking for getaddrinfo in -linet6... " >&6; } -if test "${ac_cv_lib_inet6_getaddrinfo+set}" = set; then : +if ${ac_cv_lib_inet6_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5628,7 +5637,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inet6_getaddrinfo" >&5 $as_echo "$ac_cv_lib_inet6_getaddrinfo" >&6; } -if test "x$ac_cv_lib_inet6_getaddrinfo" = x""yes; then : +if test "x$ac_cv_lib_inet6_getaddrinfo" = xyes; then : if test $ipv6_libinet6 = no; then ipv6_libinet6=yes LIBS="$LIBS -linet6" @@ -5679,14 +5688,14 @@ if test $ipv6_cv_getaddrinfo = yes; then ac_fn_c_check_func "$LINENO" "gai_strerror" "ac_cv_func_gai_strerror" -if test "x$ac_cv_func_gai_strerror" = x""yes; then : +if test "x$ac_cv_func_gai_strerror" = xyes; then : ac_cv_lib_socket_gai_strerror=no ac_cv_lib_inet6_gai_strerror=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gai_strerror in -lsocket" >&5 $as_echo_n "checking for gai_strerror in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_gai_strerror+set}" = set; then : +if ${ac_cv_lib_socket_gai_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5720,14 +5729,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gai_strerror" >&5 $as_echo "$ac_cv_lib_socket_gai_strerror" >&6; } -if test "x$ac_cv_lib_socket_gai_strerror" = x""yes; then : +if test "x$ac_cv_lib_socket_gai_strerror" = xyes; then : LIBS="$LIBS -lsocket" ac_cv_lib_inet6_gai_strerror=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system has IPv6 directory" >&5 $as_echo_n "checking whether your system has IPv6 directory... " >&6; } - if test "${ipv6_cv_dir+set}" = set; then : + if ${ipv6_cv_dir+:} false; then : $as_echo_n "(cached) " >&6 else for ipv6_cv_dir in /usr/local/v6 /usr/inet6 no; do @@ -5748,7 +5757,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gai_strerror in -linet6" >&5 $as_echo_n "checking for gai_strerror in -linet6... " >&6; } -if test "${ac_cv_lib_inet6_gai_strerror+set}" = set; then : +if ${ac_cv_lib_inet6_gai_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5782,7 +5791,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inet6_gai_strerror" >&5 $as_echo "$ac_cv_lib_inet6_gai_strerror" >&6; } -if test "x$ac_cv_lib_inet6_gai_strerror" = x""yes; then : +if test "x$ac_cv_lib_inet6_gai_strerror" = xyes; then : if test $ipv6_libinet6 = no; then ipv6_libinet6=yes LIBS="$LIBS -linet6" @@ -5848,14 +5857,14 @@ cyrus_cv_getnameinfo=yes ac_fn_c_check_func "$LINENO" "getnameinfo" "ac_cv_func_getnameinfo" -if test "x$ac_cv_func_getnameinfo" = x""yes; then : +if test "x$ac_cv_func_getnameinfo" = xyes; then : ac_cv_lib_socket_getnameinfo=no ac_cv_lib_inet6_getnameinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getnameinfo in -lsocket" >&5 $as_echo_n "checking for getnameinfo in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_getnameinfo+set}" = set; then : +if ${ac_cv_lib_socket_getnameinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5889,14 +5898,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_getnameinfo" >&5 $as_echo "$ac_cv_lib_socket_getnameinfo" >&6; } -if test "x$ac_cv_lib_socket_getnameinfo" = x""yes; then : +if test "x$ac_cv_lib_socket_getnameinfo" = xyes; then : LIBS="$LIBS -lsocket" ac_cv_lib_inet6_getnameinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system has IPv6 directory" >&5 $as_echo_n "checking whether your system has IPv6 directory... " >&6; } - if test "${ipv6_cv_dir+set}" = set; then : + if ${ipv6_cv_dir+:} false; then : $as_echo_n "(cached) " >&6 else for ipv6_cv_dir in /usr/local/v6 /usr/inet6 no; do @@ -5917,7 +5926,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getnameinfo in -linet6" >&5 $as_echo_n "checking for getnameinfo in -linet6... " >&6; } -if test "${ac_cv_lib_inet6_getnameinfo+set}" = set; then : +if ${ac_cv_lib_inet6_getnameinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5951,7 +5960,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inet6_getnameinfo" >&5 $as_echo "$ac_cv_lib_inet6_getnameinfo" >&6; } -if test "x$ac_cv_lib_inet6_getnameinfo" = x""yes; then : +if test "x$ac_cv_lib_inet6_getnameinfo" = xyes; then : if test $ipv6_libinet6 = no; then ipv6_libinet6=yes LIBS="$LIBS -linet6" @@ -6014,7 +6023,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether you have ss_family in struct sockaddr_storage" >&5 $as_echo_n "checking whether you have ss_family in struct sockaddr_storage... " >&6; } -if test "${ipv6_cv_ss_family+set}" = set; then : +if ${ipv6_cv_ss_family+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6048,7 +6057,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether you have sa_len in struct sockaddr" >&5 $as_echo_n "checking whether you have sa_len in struct sockaddr... " >&6; } -if test "${ipv6_cv_sa_len+set}" = set; then : +if ${ipv6_cv_sa_len+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6085,7 +6094,7 @@ for ac_header in sys/time.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_time_h" = x""yes; then : +if test "x$ac_cv_header_sys_time_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_SYS_TIME_H 1 _ACEOF @@ -6096,7 +6105,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if test "${ac_cv_header_time+set}" = set; then : +if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6131,7 +6140,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if test "${ac_cv_struct_tm+set}" = set; then : +if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6168,7 +6177,7 @@ #include <$ac_cv_struct_tm> " -if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then : +if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_STRUCT_TM_TM_ZONE 1 @@ -6184,7 +6193,7 @@ else ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include " -if test "x$ac_cv_have_decl_tzname" = x""yes; then : +if test "x$ac_cv_have_decl_tzname" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -6196,7 +6205,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 $as_echo_n "checking for tzname... " >&6; } -if test "${ac_cv_var_tzname+set}" = set; then : +if ${ac_cv_var_tzname+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6240,13 +6249,13 @@ for ac_func in vprintf do : ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = x""yes; then : +if test "x$ac_cv_func_vprintf" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_VPRINTF 1 _ACEOF ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = x""yes; then : +if test "x$ac_cv_func__doprnt" = xyes; then : $as_echo "@%:@define HAVE_DOPRNT 1" >>confdefs.h @@ -6326,7 +6335,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "db.h" "ac_cv_header_db_h" "$ac_includes_default" -if test "x$ac_cv_header_db_h" = x""yes; then : +if test "x$ac_cv_header_db_h" = xyes; then : BDB_SAVE_LDFLAGS=$LDFLAGS @@ -6427,7 +6436,7 @@ if test "$dblib" = "no"; then as_fn_error $? "Berkeley DB 3.x or later was not found. You may need to - supply the --with-bdb-libdir or --with-bdb-incdir configure options." "$LINENO" 5 + supply the --with-bdb-libdir or --with-bdb-incdir configure options." "$LINENO" 5 fi if test "$with_bdb_lib" != "none"; then @@ -6518,7 +6527,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "mysql.h" "ac_cv_header_mysql_h" "$ac_includes_default" -if test "x$ac_cv_header_mysql_h" = x""yes; then : +if test "x$ac_cv_header_mysql_h" = xyes; then : MYSQL_SAVE_LDFLAGS=$LDFLAGS @@ -6583,7 +6592,7 @@ if test "$mysqllib" = "no"; then as_fn_error $? "MySQL was not found. You may need to supply the - --with-mysql-libdir or --with-mysql-incdir configure options." "$LINENO" 5 + --with-mysql-libdir or --with-mysql-incdir configure options." "$LINENO" 5 else HAVE_SQL=1 fi @@ -6667,7 +6676,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "libpq-fe.h" "ac_cv_header_libpq_fe_h" "$ac_includes_default" -if test "x$ac_cv_header_libpq_fe_h" = x""yes; then : +if test "x$ac_cv_header_libpq_fe_h" = xyes; then : PGSQL_SAVE_LDFLAGS=$LDFLAGS @@ -6732,7 +6741,7 @@ if test "$pgsqllib" = "no"; then as_fn_error $? "PgSQL was not found. You may need to supply the - --with-pgsql-libdir or --with-pgsql-incdir configure options." "$LINENO" 5 + --with-pgsql-libdir or --with-pgsql-incdir configure options." "$LINENO" 5 else HAVE_SQL=1 fi @@ -6816,7 +6825,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" -if test "x$ac_cv_header_sqlite3_h" = x""yes; then : +if test "x$ac_cv_header_sqlite3_h" = xyes; then : SQLITE_SAVE_LDFLAGS=$LDFLAGS @@ -6881,7 +6890,7 @@ if test "$sqlitelib" = "no"; then as_fn_error $? "Sqlite was not found. You may need to supply the - --with-sqlite-libdir or --with-sqlite-incdir configure options." "$LINENO" 5 + --with-sqlite-libdir or --with-sqlite-incdir configure options." "$LINENO" 5 else HAVE_SQL=1 fi @@ -6950,7 +6959,7 @@ 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_YACC+set}" = set; then : +if ${ac_cv_prog_YACC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then @@ -6993,7 +7002,7 @@ 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_LEX+set}" = set; then : +if ${ac_cv_prog_LEX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LEX"; then @@ -7063,7 +7072,7 @@ test $ac_status = 0; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 $as_echo_n "checking lex output file root... " >&6; } -if test "${ac_cv_prog_lex_root+set}" = set; then : +if ${ac_cv_prog_lex_root+:} false; then : $as_echo_n "(cached) " >&6 else @@ -7072,7 +7081,7 @@ elif test -f lexyy.c; then ac_cv_prog_lex_root=lexyy else - as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 + as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 @@ -7082,7 +7091,7 @@ if test -z "${LEXLIB+set}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 $as_echo_n "checking lex library... " >&6; } -if test "${ac_cv_lib_lex+set}" = set; then : +if ${ac_cv_lib_lex+:} false; then : $as_echo_n "(cached) " >&6 else @@ -7112,7 +7121,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 $as_echo_n "checking whether yytext is a pointer... " >&6; } -if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then : +if ${ac_cv_prog_lex_yytext_pointer+:} false; then : $as_echo_n "(cached) " >&6 else # POSIX says lex can declare yytext either as a pointer or an array; the @@ -7123,7 +7132,8 @@ LIBS="$LEXLIB $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#define YYTEXT_POINTER 1 + + #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : @@ -7146,7 +7156,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lfl" >&5 $as_echo_n "checking for main in -lfl... " >&6; } -if test "${ac_cv_lib_fl_main+set}" = set; then : +if ${ac_cv_lib_fl_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7174,7 +7184,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fl_main" >&5 $as_echo "$ac_cv_lib_fl_main" >&6; } -if test "x$ac_cv_lib_fl_main" = x""yes; then : +if test "x$ac_cv_lib_fl_main" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBFL 1 _ACEOF @@ -7186,15 +7196,15 @@ if test "$testpcre" != "no"; then ac_fn_c_check_header_mongrel "$LINENO" "pcreposix.h" "ac_cv_header_pcreposix_h" "$ac_includes_default" -if test "x$ac_cv_header_pcreposix_h" = x""yes; then : +if test "x$ac_cv_header_pcreposix_h" = xyes; then : fi - if test "$ac_cv_header_pcreposix_h" == "yes"; then + if test "$ac_cv_header_pcreposix_h" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for utf8 enabled pcre" >&5 $as_echo_n "checking for utf8 enabled pcre... " >&6; } - if test "${cyrus_cv_pcre_utf8+set}" = set; then : + if ${cyrus_cv_pcre_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7219,7 +7229,7 @@ fi fi - if test "$cyrus_cv_pcre_utf8" == "yes"; then + if test "$cyrus_cv_pcre_utf8" = "yes"; then LIBS="$LIBS -lpcre -lpcreposix"; $as_echo "@%:@define ENABLE_REGEX /**/" >>confdefs.h @@ -7231,7 +7241,7 @@ for ac_header in rxposix.h do : ac_fn_c_check_header_mongrel "$LINENO" "rxposix.h" "ac_cv_header_rxposix_h" "$ac_includes_default" -if test "x$ac_cv_header_rxposix_h" = x""yes; then : +if test "x$ac_cv_header_rxposix_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_RXPOSIX_H 1 _ACEOF @@ -7240,7 +7250,7 @@ done - if test "$ac_cv_header_rxposix_h" == "yes"; then + if test "$ac_cv_header_rxposix_h" = "yes"; then LIBS="$LIBS -lrx" $as_echo "@%:@define ENABLE_REGEX /**/" >>confdefs.h @@ -7248,7 +7258,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing regcomp" >&5 $as_echo_n "checking for library containing regcomp... " >&6; } -if test "${ac_cv_search_regcomp+set}" = set; then : +if ${ac_cv_search_regcomp+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -7282,11 +7292,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_regcomp+set}" = set; then : + if ${ac_cv_search_regcomp+:} false; then : break fi done -if test "${ac_cv_search_regcomp+set}" = set; then : +if ${ac_cv_search_regcomp+:} false; then : else ac_cv_search_regcomp=no @@ -7314,7 +7324,7 @@ ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" -if test "x$ac_cv_func_strerror" = x""yes; then : +if test "x$ac_cv_func_strerror" = xyes; then : $as_echo "@%:@define HAS_STRERROR /**/" >>confdefs.h @@ -7328,7 +7338,7 @@ for ac_header in sys/resource.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_resource_h" = x""yes; then : +if test "x$ac_cv_header_sys_resource_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_SYS_RESOURCE_H 1 _ACEOF @@ -7340,7 +7350,7 @@ for ac_func in setrlimit do : ac_fn_c_check_func "$LINENO" "setrlimit" "ac_cv_func_setrlimit" -if test "x$ac_cv_func_setrlimit" = x""yes; then : +if test "x$ac_cv_func_setrlimit" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_SETRLIMIT 1 _ACEOF @@ -7351,7 +7361,7 @@ for ac_func in getrlimit do : ac_fn_c_check_func "$LINENO" "getrlimit" "ac_cv_func_getrlimit" -if test "x$ac_cv_func_getrlimit" = x""yes; then : +if test "x$ac_cv_func_getrlimit" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_GETRLIMIT 1 _ACEOF @@ -7376,7 +7386,7 @@ for ac_func in shutdown do : ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" -if test "x$ac_cv_func_shutdown" = x""yes; then : +if test "x$ac_cv_func_shutdown" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_SHUTDOWN 1 _ACEOF @@ -7427,14 +7437,14 @@ spt_type="" ac_fn_c_check_func "$LINENO" "setproctitle" "ac_cv_func_setproctitle" -if test "x$ac_cv_func_setproctitle" = x""yes; then : +if test "x$ac_cv_func_setproctitle" = xyes; then : spt_type=SPT_BUILTIN fi if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setproctitle in -lutil" >&5 $as_echo_n "checking for setproctitle in -lutil... " >&6; } -if test "${ac_cv_lib_util_setproctitle+set}" = set; then : +if ${ac_cv_lib_util_setproctitle+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7468,7 +7478,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_setproctitle" >&5 $as_echo "$ac_cv_lib_util_setproctitle" >&6; } -if test "x$ac_cv_lib_util_setproctitle" = x""yes; then : +if test "x$ac_cv_lib_util_setproctitle" = xyes; then : spt_type=SPT_BUILTIN LIBS="${LIBS} -lutil" fi @@ -7476,7 +7486,7 @@ fi if test "$spt_type" = ""; then ac_fn_c_check_header_mongrel "$LINENO" "sys/pstat.h" "ac_cv_header_sys_pstat_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_pstat_h" = x""yes; then : +if test "x$ac_cv_header_sys_pstat_h" = xyes; then : spt_type=SPT_PSTAT fi @@ -7484,7 +7494,7 @@ fi if test "$spt_type" = ""; then ac_fn_c_check_header_mongrel "$LINENO" "sys/sysnews.h" "ac_cv_header_sys_sysnews_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_sysnews_h" = x""yes; then : +if test "x$ac_cv_header_sys_sysnews_h" = xyes; then : spt_type=SPT_SYSMIPS fi @@ -7493,7 +7503,7 @@ if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PS_STRINGS" >&5 $as_echo_n "checking for PS_STRINGS... " >&6; } - if test "${cyrus_cv_sys_psstrings+set}" = set; then : + if ${cyrus_cv_sys_psstrings+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7522,7 +7532,7 @@ if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SCO" >&5 $as_echo_n "checking for SCO... " >&6; } - if test "${cyrus_cv_sys_sco+set}" = set; then : + if ${cyrus_cv_sys_sco+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7549,7 +7559,7 @@ if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setproctitle usability" >&5 $as_echo_n "checking for setproctitle usability... " >&6; } - if test "${cyrus_cv_sys_setproctitle+set}" = set; then : + if ${cyrus_cv_sys_setproctitle+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7583,7 +7593,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking nonblocking method" >&5 $as_echo_n "checking nonblocking method... " >&6; } -if test "${cyrus_cv_sys_nonblock+set}" = set; then : +if ${cyrus_cv_sys_nonblock+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7618,7 +7628,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking timezone GMT offset method" >&5 $as_echo_n "checking timezone GMT offset method... " >&6; } -if test "${cyrus_cv_struct_sys_gmtoff+set}" = set; then : +if ${cyrus_cv_struct_sys_gmtoff+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7649,7 +7659,7 @@ $as_echo "$WITH_GMTOFF" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared mmap" >&5 $as_echo_n "checking for shared mmap... " >&6; } -if test "${cyrus_cv_func_mmap_shared+set}" = set; then : +if ${cyrus_cv_func_mmap_shared+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -7701,7 +7711,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stupid shared mmap" >&5 $as_echo_n "checking for stupid shared mmap... " >&6; } -if test "${cyrus_cv_func_mmap_stupidshared+set}" = set; then : +if ${cyrus_cv_func_mmap_stupidshared+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -7768,16 +7778,16 @@ else ac_fn_c_check_func "$LINENO" "fcntl" "ac_cv_func_fcntl" -if test "x$ac_cv_func_fcntl" = x""yes; then : +if test "x$ac_cv_func_fcntl" = xyes; then : WITH_LOCK="fcntl" else ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock" -if test "x$ac_cv_func_flock" = x""yes; then : +if test "x$ac_cv_func_flock" = xyes; then : WITH_LOCK="flock" else - as_fn_error $? "unable to detect locking method" "$LINENO" 5 + as_fn_error $? "unable to detect locking method" "$LINENO" 5 fi @@ -7792,7 +7802,7 @@ LIB_RT="" ac_fn_c_check_func "$LINENO" "fdatasync" "ac_cv_func_fdatasync" -if test "x$ac_cv_func_fdatasync" = x""yes; then : +if test "x$ac_cv_func_fdatasync" = xyes; then : $as_echo "@%:@define HAVE_FDATASYNC /**/" >>confdefs.h @@ -7800,7 +7810,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fdatasync in -lrt" >&5 $as_echo_n "checking for fdatasync in -lrt... " >&6; } -if test "${ac_cv_lib_rt_fdatasync+set}" = set; then : +if ${ac_cv_lib_rt_fdatasync+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7834,7 +7844,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_fdatasync" >&5 $as_echo "$ac_cv_lib_rt_fdatasync" >&6; } -if test "x$ac_cv_lib_rt_fdatasync" = x""yes; then : +if test "x$ac_cv_lib_rt_fdatasync" = xyes; then : LIB_RT="-lrt" @@ -7848,12 +7858,12 @@ cant_find_sigvec=no -if test "${cyrus_cv_sigveclib+set}" = set; then : +if ${cyrus_cv_sigveclib+:} false; then : $as_echo_n "(cached) " >&6 else ac_fn_c_check_func "$LINENO" "sigvec" "ac_cv_func_sigvec" -if test "x$ac_cv_func_sigvec" = x""yes; then : +if test "x$ac_cv_func_sigvec" = xyes; then : cyrus_cv_sigveclib="" @@ -7861,7 +7871,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigvec in -lBSD" >&5 $as_echo_n "checking for sigvec in -lBSD... " >&6; } -if test "${ac_cv_lib_BSD_sigvec+set}" = set; then : +if ${ac_cv_lib_BSD_sigvec+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7895,7 +7905,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_BSD_sigvec" >&5 $as_echo "$ac_cv_lib_BSD_sigvec" >&6; } -if test "x$ac_cv_lib_BSD_sigvec" = x""yes; then : +if test "x$ac_cv_lib_BSD_sigvec" = xyes; then : cyrus_cv_sigveclib="-lBSD" else @@ -7903,7 +7913,7 @@ LDFLAGS="-L/usr/ucblib -R/usr/ucblib $LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigvec in -lucb" >&5 $as_echo_n "checking for sigvec in -lucb... " >&6; } -if test "${ac_cv_lib_ucb_sigvec+set}" = set; then : +if ${ac_cv_lib_ucb_sigvec+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7937,7 +7947,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ucb_sigvec" >&5 $as_echo "$ac_cv_lib_ucb_sigvec" >&6; } -if test "x$ac_cv_lib_ucb_sigvec" = x""yes; then : +if test "x$ac_cv_lib_ucb_sigvec" = xyes; then : cyrus_cv_sigveclib="-lc -L/usr/ucblib -R/usr/ucblib -lucb" else @@ -8029,7 +8039,7 @@ AFS_LIBS="$AFS_LIBS -ldes" fi - if test "${cyrus_cv_afs_sigvec+set}" = set; then : + if ${cyrus_cv_afs_sigvec+:} false; then : $as_echo_n "(cached) " >&6 else @@ -8109,7 +8119,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_initialize in -lldap" >&5 $as_echo_n "checking for ldap_initialize in -lldap... " >&6; } -if test "${ac_cv_lib_ldap_ldap_initialize+set}" = set; then : +if ${ac_cv_lib_ldap_ldap_initialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8143,7 +8153,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ldap_ldap_initialize" >&5 $as_echo "$ac_cv_lib_ldap_ldap_initialize" >&6; } -if test "x$ac_cv_lib_ldap_ldap_initialize" = x""yes; then : +if test "x$ac_cv_lib_ldap_ldap_initialize" = xyes; then : $as_echo "@%:@define HAVE_LDAP /**/" >>confdefs.h @@ -8159,7 +8169,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_initialize in -lldap" >&5 $as_echo_n "checking for ldap_initialize in -lldap... " >&6; } -if test "${ac_cv_lib_ldap_ldap_initialize+set}" = set; then : +if ${ac_cv_lib_ldap_ldap_initialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8193,7 +8203,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ldap_ldap_initialize" >&5 $as_echo "$ac_cv_lib_ldap_ldap_initialize" >&6; } -if test "x$ac_cv_lib_ldap_ldap_initialize" = x""yes; then : +if test "x$ac_cv_lib_ldap_ldap_initialize" = xyes; then : $as_echo "@%:@define HAVE_LDAP /**/" >>confdefs.h @@ -8259,7 +8269,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 $as_echo_n "checking for res_search in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_res_search+set}" = set; then : +if ${ac_cv_lib_resolv_res_search+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8293,7 +8303,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5 $as_echo "$ac_cv_lib_resolv_res_search" >&6; } -if test "x$ac_cv_lib_resolv_res_search" = x""yes; then : +if test "x$ac_cv_lib_resolv_res_search" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBRESOLV 1 _ACEOF @@ -8304,7 +8314,7 @@ if test "$with_statickrb" = "yes" -a ! -d "$with_krb"; then - as_fn_error $? "--enable-statickrb specified but --with-krb did not specify a valid directory" "$LINENO" 5 + as_fn_error $? "--enable-statickrb specified but --with-krb did not specify a valid directory" "$LINENO" 5 fi if test "$with_krb" != "no"; then @@ -8319,7 +8329,7 @@ if test "$with_krbdes" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for des_ecb_encrypt in -ldes" >&5 $as_echo_n "checking for des_ecb_encrypt in -ldes... " >&6; } -if test "${ac_cv_lib_des_des_ecb_encrypt+set}" = set; then : +if ${ac_cv_lib_des_des_ecb_encrypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8353,14 +8363,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_des_des_ecb_encrypt" >&5 $as_echo "$ac_cv_lib_des_des_ecb_encrypt" >&6; } -if test "x$ac_cv_lib_des_des_ecb_encrypt" = x""yes; then : +if test "x$ac_cv_lib_des_des_ecb_encrypt" = xyes; then : if test "$with_statickrb" = "yes"; then KRB_LIBS="$with_krb/lib/libdes.a" else KRB_LIBS="-ldes" fi else - as_fn_error $? "The Kerberos DES library is required for Kerberos support. You might want --with-auth=unix." "$LINENO" 5 + as_fn_error $? "The Kerberos DES library is required for Kerberos support. You might want --with-auth=unix." "$LINENO" 5 fi fi @@ -8369,7 +8379,7 @@ if test -d ${with_krb}; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Kerberos includes" >&5 $as_echo_n "checking for Kerberos includes... " >&6; } -if test "${cyrus_cv_krbinclude+set}" = set; then : +if ${cyrus_cv_krbinclude+:} false; then : $as_echo_n "(cached) " >&6 else @@ -8406,11 +8416,11 @@ if test "$with_des" != no; then ac_fn_c_check_header_mongrel "$LINENO" "krb.h" "ac_cv_header_krb_h" "$ac_includes_default" -if test "x$ac_cv_header_krb_h" = x""yes; then : +if test "x$ac_cv_header_krb_h" = xyes; then : as_ac_Lib=`$as_echo "ac_cv_lib_${KRBLIB}''_krb_mk_priv" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb_mk_priv in -l${KRBLIB}" >&5 $as_echo_n "checking for krb_mk_priv in -l${KRBLIB}... " >&6; } -if eval "test \"\${$as_ac_Lib+set}\"" = set; then : +if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8495,7 +8505,7 @@ LIB_RSAREF="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RSAPublicEncrypt in -lrsaref" >&5 $as_echo_n "checking for RSAPublicEncrypt in -lrsaref... " >&6; } -if test "${ac_cv_lib_rsaref_RSAPublicEncrypt+set}" = set; then : +if ${ac_cv_lib_rsaref_RSAPublicEncrypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8529,7 +8539,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rsaref_RSAPublicEncrypt" >&5 $as_echo "$ac_cv_lib_rsaref_RSAPublicEncrypt" >&6; } -if test "x$ac_cv_lib_rsaref_RSAPublicEncrypt" = x""yes; then : +if test "x$ac_cv_lib_rsaref_RSAPublicEncrypt" = xyes; then : LIB_RSAREF="-lRSAglue -lrsaref"; cmu_have_rsaref=yes else cmu_have_rsaref=no @@ -8539,7 +8549,7 @@ with_openssl="yes" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BIO_accept in -lcrypto" >&5 $as_echo_n "checking for BIO_accept in -lcrypto... " >&6; } -if test "${ac_cv_lib_crypto_BIO_accept+set}" = set; then : +if ${ac_cv_lib_crypto_BIO_accept+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8573,7 +8583,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_BIO_accept" >&5 $as_echo "$ac_cv_lib_crypto_BIO_accept" >&6; } -if test "x$ac_cv_lib_crypto_BIO_accept" = x""yes; then : +if test "x$ac_cv_lib_crypto_BIO_accept" = xyes; then : LIBS="-lcrypto $LIB_RSAREF ${LIBS}" else with_openssl="no" @@ -8581,7 +8591,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_CTX_new in -lssl" >&5 $as_echo_n "checking for SSL_CTX_new in -lssl... " >&6; } -if test "${ac_cv_lib_ssl_SSL_CTX_new+set}" = set; then : +if ${ac_cv_lib_ssl_SSL_CTX_new+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8615,7 +8625,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_CTX_new" >&5 $as_echo "$ac_cv_lib_ssl_SSL_CTX_new" >&6; } -if test "x$ac_cv_lib_ssl_SSL_CTX_new" = x""yes; then : +if test "x$ac_cv_lib_ssl_SSL_CTX_new" = xyes; then : LIBS="-lssl ${LIBS}" else with_openssl="no" @@ -8695,7 +8705,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : +if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : @@ -8705,7 +8715,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi @@ -8724,7 +8734,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking what directory libraries are found in" >&5 $as_echo_n "checking what directory libraries are found in... " >&6; } -if test "${ac_cv_cmu_lib_subdir+set}" = set; then : +if ${ac_cv_cmu_lib_subdir+:} false; then : $as_echo_n "(cached) " >&6 else test "X$with_lib_subdir" = "Xyes" && with_lib_subdir= @@ -8778,11 +8788,11 @@ with_zlib="no";; *) ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = x""yes; then : +if test "x$ac_cv_header_zlib_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for deflate in -lz" >&5 $as_echo_n "checking for deflate in -lz... " >&6; } -if test "${ac_cv_lib_z_deflate+set}" = set; then : +if ${ac_cv_lib_z_deflate+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8816,7 +8826,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_deflate" >&5 $as_echo "$ac_cv_lib_z_deflate" >&6; } -if test "x$ac_cv_lib_z_deflate" = x""yes; then : +if test "x$ac_cv_lib_z_deflate" = xyes; then : LIBS="${LIBS} -lz"; with_zlib="yes" else with_zlib="no" @@ -8865,7 +8875,7 @@ no) true;; ""|yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZInitialize in -lzephyr" >&5 $as_echo_n "checking for ZInitialize in -lzephyr... " >&6; } -if test "${ac_cv_lib_zephyr_ZInitialize+set}" = set; then : +if ${ac_cv_lib_zephyr_ZInitialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8899,7 +8909,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zephyr_ZInitialize" >&5 $as_echo "$ac_cv_lib_zephyr_ZInitialize" >&6; } -if test "x$ac_cv_lib_zephyr_ZInitialize" = x""yes; then : +if test "x$ac_cv_lib_zephyr_ZInitialize" = xyes; then : ZEPHYR_LIBS="-lzephyr" else with_zephyr="no" @@ -8966,7 +8976,7 @@ for ac_header in sys/sockio.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/sockio.h" "ac_cv_header_sys_sockio_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_sockio_h" = x""yes; then : +if test "x$ac_cv_header_sys_sockio_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_SYS_SOCKIO_H 1 _ACEOF @@ -8999,7 +9009,7 @@ # no value supplied { $as_echo "$as_me:${as_lineno-$LINENO}: checking for com_err in -lcom_err" >&5 $as_echo_n "checking for com_err in -lcom_err... " >&6; } -if test "${ac_cv_lib_com_err_com_err+set}" = set; then : +if ${ac_cv_lib_com_err_com_err+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9033,23 +9043,23 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_com_err_com_err" >&5 $as_echo "$ac_cv_lib_com_err_com_err" >&6; } -if test "x$ac_cv_lib_com_err_com_err" = x""yes; then : +if test "x$ac_cv_lib_com_err_com_err" = xyes; then : # com_err is already in library path # guess we're okay # can use system com_err with_com_err="" ac_fn_c_check_header_mongrel "$LINENO" "et/com_err.h" "ac_cv_header_et_com_err_h" "$ac_includes_default" -if test "x$ac_cv_header_et_com_err_h" = x""yes; then : +if test "x$ac_cv_header_et_com_err_h" = xyes; then : $as_echo "@%:@define HAVE_ET_COM_ERR_H /**/" >>confdefs.h else ac_fn_c_check_header_mongrel "$LINENO" "com_err.h" "ac_cv_header_com_err_h" "$ac_includes_default" -if test "x$ac_cv_header_com_err_h" = x""yes; then : +if test "x$ac_cv_header_com_err_h" = xyes; then : else - as_fn_error $? "cannot locate com_err.h" "$LINENO" 5 + as_fn_error $? "cannot locate com_err.h" "$LINENO" 5 fi @@ -9060,7 +9070,7 @@ set dummy compile_et; 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_COMPILE_ET+set}" = set; then : +if ${ac_cv_path_COMPILE_ET+:} false; then : $as_echo_n "(cached) " >&6 else case $COMPILE_ET in @@ -9106,7 +9116,7 @@ set dummy /usr/local/bin/compile_et; 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_COMPILE_ET+set}" = set; then : +if ${ac_cv_path_COMPILE_ET+:} false; then : $as_echo_n "(cached) " >&6 else case $COMPILE_ET in @@ -9149,7 +9159,7 @@ set dummy /usr/bin/compile_et; 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_COMPILE_ET+set}" = set; then : +if ${ac_cv_path_COMPILE_ET+:} false; then : $as_echo_n "(cached) " >&6 else case $COMPILE_ET in @@ -9242,7 +9252,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for modern syslog" >&5 $as_echo_n "checking for modern syslog... " >&6; } -if test "${cyrus_cv_lib_syslog+set}" = set; then : +if ${cyrus_cv_lib_syslog+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -9289,7 +9299,7 @@ $as_echo "$SYSLOG_FACILITY" >&6; } ac_fn_c_check_func "$LINENO" "getdtablesize" "ac_cv_func_getdtablesize" -if test "x$ac_cv_func_getdtablesize" = x""yes; then : +if test "x$ac_cv_func_getdtablesize" = xyes; then : $as_echo "@%:@define HAVE_GETDTABLESIZE 1" >>confdefs.h else @@ -9342,12 +9352,12 @@ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = x""yes; then : +if test "x$ac_cv_func_dlopen" = xyes; then : 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 : +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9381,7 +9391,7 @@ 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 : +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBDL 1 _ACEOF @@ -9393,12 +9403,12 @@ fi ac_fn_c_check_func "$LINENO" "crypt" "ac_cv_func_crypt" -if test "x$ac_cv_func_crypt" = x""yes; then : +if test "x$ac_cv_func_crypt" = xyes; then : cmu_have_crypt=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for crypt in -lcrypt" >&5 $as_echo_n "checking for crypt in -lcrypt... " >&6; } -if test "${ac_cv_lib_crypt_crypt+set}" = set; then : +if ${ac_cv_lib_crypt_crypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9432,7 +9442,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypt_crypt" >&5 $as_echo "$ac_cv_lib_crypt_crypt" >&6; } -if test "x$ac_cv_lib_crypt_crypt" = x""yes; then : +if test "x$ac_cv_lib_crypt_crypt" = xyes; then : LIB_CRYPT="-lcrypt"; cmu_have_crypt=yes else cmu_have_crypt=no @@ -9484,7 +9494,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The system type is not recognized. If you believe that CyberSafe GSSAPI works on this platform, please update the configure script" >&5 $as_echo "$as_me: WARNING: The system type is not recognized. If you believe that CyberSafe GSSAPI works on this platform, please update the configure script" >&2;} if test "$gss_impl" = "cybersafe"; then - as_fn_error $? "CyberSafe was forced, cannot continue as platform is not supported" "$LINENO" 5 + as_fn_error $? "CyberSafe was forced, cannot continue as platform is not supported" "$LINENO" 5 fi ;; esac @@ -9509,11 +9519,11 @@ fi fi ac_fn_c_check_header_mongrel "$LINENO" "gssapi.h" "ac_cv_header_gssapi_h" "$ac_includes_default" -if test "x$ac_cv_header_gssapi_h" = x""yes; then : +if test "x$ac_cv_header_gssapi_h" = xyes; then : else ac_fn_c_check_header_mongrel "$LINENO" "gssapi/gssapi.h" "ac_cv_header_gssapi_gssapi_h" "$ac_includes_default" -if test "x$ac_cv_header_gssapi_gssapi_h" = x""yes; then : +if test "x$ac_cv_header_gssapi_gssapi_h" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling GSSAPI - no include files found" >&5 @@ -9546,7 +9556,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 $as_echo_n "checking for res_search in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_res_search+set}" = set; then : +if ${ac_cv_lib_resolv_res_search+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9580,7 +9590,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5 $as_echo "$ac_cv_lib_resolv_res_search" >&6; } -if test "x$ac_cv_lib_resolv_res_search" = x""yes; then : +if test "x$ac_cv_lib_resolv_res_search" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBRESOLV 1 _ACEOF @@ -9608,7 +9618,7 @@ gss_failed=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gss_unwrap in -lgssapi" >&5 $as_echo_n "checking for gss_unwrap in -lgssapi... " >&6; } -if test "${ac_cv_lib_gssapi_gss_unwrap+set}" = set; then : +if ${ac_cv_lib_gssapi_gss_unwrap+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9642,7 +9652,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssapi_gss_unwrap" >&5 $as_echo "$ac_cv_lib_gssapi_gss_unwrap" >&6; } -if test "x$ac_cv_lib_gssapi_gss_unwrap" = x""yes; then : +if test "x$ac_cv_lib_gssapi_gss_unwrap" = xyes; then : gss_impl="heimdal" else gss_failed=1 @@ -9657,7 +9667,7 @@ # check for libkrb5support first { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_getspecific in -lkrb5support" >&5 $as_echo_n "checking for krb5int_getspecific in -lkrb5support... " >&6; } -if test "${ac_cv_lib_krb5support_krb5int_getspecific+set}" = set; then : +if ${ac_cv_lib_krb5support_krb5int_getspecific+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9691,7 +9701,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5support_krb5int_getspecific" >&5 $as_echo "$ac_cv_lib_krb5support_krb5int_getspecific" >&6; } -if test "x$ac_cv_lib_krb5support_krb5int_getspecific" = x""yes; then : +if test "x$ac_cv_lib_krb5support_krb5int_getspecific" = xyes; then : K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a fi @@ -9699,7 +9709,7 @@ gss_failed=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gss_unwrap in -lgssapi_krb5" >&5 $as_echo_n "checking for gss_unwrap in -lgssapi_krb5... " >&6; } -if test "${ac_cv_lib_gssapi_krb5_gss_unwrap+set}" = set; then : +if ${ac_cv_lib_gssapi_krb5_gss_unwrap+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9733,7 +9743,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssapi_krb5_gss_unwrap" >&5 $as_echo "$ac_cv_lib_gssapi_krb5_gss_unwrap" >&6; } -if test "x$ac_cv_lib_gssapi_krb5_gss_unwrap" = x""yes; then : +if test "x$ac_cv_lib_gssapi_krb5_gss_unwrap" = xyes; then : gss_impl="mit" else gss_failed=1 @@ -9766,7 +9776,7 @@ unset ac_cv_lib_gss_csf_gss_acq_user { $as_echo "$as_me:${as_lineno-$LINENO}: checking for csf_gss_acq_user in -lgss" >&5 $as_echo_n "checking for csf_gss_acq_user in -lgss... " >&6; } -if test "${ac_cv_lib_gss_csf_gss_acq_user+set}" = set; then : +if ${ac_cv_lib_gss_csf_gss_acq_user+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9800,13 +9810,13 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gss_csf_gss_acq_user" >&5 $as_echo "$ac_cv_lib_gss_csf_gss_acq_user" >&6; } -if test "x$ac_cv_lib_gss_csf_gss_acq_user" = x""yes; then : +if test "x$ac_cv_lib_gss_csf_gss_acq_user" = xyes; then : gss_impl="cybersafe03" else unset ac_cv_lib_gss_csf_gss_acq_user; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for csf_gss_acq_user in -lgss" >&5 $as_echo_n "checking for csf_gss_acq_user in -lgss... " >&6; } -if test "${ac_cv_lib_gss_csf_gss_acq_user+set}" = set; then : +if ${ac_cv_lib_gss_csf_gss_acq_user+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9840,7 +9850,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gss_csf_gss_acq_user" >&5 $as_echo "$ac_cv_lib_gss_csf_gss_acq_user" >&6; } -if test "x$ac_cv_lib_gss_csf_gss_acq_user" = x""yes; then : +if test "x$ac_cv_lib_gss_csf_gss_acq_user" = xyes; then : gss_impl="cybersafe" else gss_failed=1 @@ -9864,7 +9874,7 @@ gss_failed=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gss_unwrap in -lgss" >&5 $as_echo_n "checking for gss_unwrap in -lgss... " >&6; } -if test "${ac_cv_lib_gss_gss_unwrap+set}" = set; then : +if ${ac_cv_lib_gss_gss_unwrap+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9898,7 +9908,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gss_gss_unwrap" >&5 $as_echo "$ac_cv_lib_gss_gss_unwrap" >&6; } -if test "x$ac_cv_lib_gss_gss_unwrap" = x""yes; then : +if test "x$ac_cv_lib_gss_gss_unwrap" = xyes; then : gss_impl="seam" else gss_failed=1 @@ -10059,7 +10069,7 @@ $as_echo "with implementation ${gss_impl}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 $as_echo_n "checking for res_search in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_res_search+set}" = set; then : +if ${ac_cv_lib_resolv_res_search+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10093,7 +10103,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5 $as_echo "$ac_cv_lib_resolv_res_search" >&6; } -if test "x$ac_cv_lib_resolv_res_search" = x""yes; then : +if test "x$ac_cv_lib_resolv_res_search" = xyes; then : GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lresolv" fi @@ -10106,7 +10116,7 @@ for ac_func in gsskrb5_register_acceptor_identity do : ac_fn_c_check_func "$LINENO" "gsskrb5_register_acceptor_identity" "ac_cv_func_gsskrb5_register_acceptor_identity" -if test "x$ac_cv_func_gsskrb5_register_acceptor_identity" = x""yes; then : +if test "x$ac_cv_func_gsskrb5_register_acceptor_identity" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY 1 _ACEOF @@ -10171,9 +10181,9 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "sasl/sasl.h" "ac_cv_header_sasl_sasl_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_sasl_h" = x""yes; then : +if test "x$ac_cv_header_sasl_sasl_h" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "sasl/saslutil.h" "ac_cv_header_sasl_saslutil_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_saslutil_h" = x""yes; then : +if test "x$ac_cv_header_sasl_saslutil_h" = xyes; then : for i42 in lib64 lib; do if test -r ${with_staticsasl}/$i42/libsasl2.a; then ac_cv_found_sasl=yes @@ -10185,7 +10195,7 @@ if test ! "$ac_cv_found_sasl" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for static libsasl" >&5 $as_echo_n "checking for static libsasl... " >&6; } - as_fn_error $? "Could not find ${with_staticsasl}/lib*/libsasl2.a" "$LINENO" 5 + as_fn_error $? "Could not find ${with_staticsasl}/lib*/libsasl2.a" "$LINENO" 5 fi fi @@ -10227,12 +10237,12 @@ # be sure to check for a SASLv2 specific function ac_fn_c_check_header_mongrel "$LINENO" "sasl/sasl.h" "ac_cv_header_sasl_sasl_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_sasl_h" = x""yes; then : +if test "x$ac_cv_header_sasl_sasl_h" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "sasl/saslutil.h" "ac_cv_header_sasl_saslutil_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_saslutil_h" = x""yes; then : +if test "x$ac_cv_header_sasl_saslutil_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prop_get in -lsasl2" >&5 $as_echo_n "checking for prop_get in -lsasl2... " >&6; } -if test "${ac_cv_lib_sasl2_prop_get+set}" = set; then : +if ${ac_cv_lib_sasl2_prop_get+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10266,7 +10276,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sasl2_prop_get" >&5 $as_echo "$ac_cv_lib_sasl2_prop_get" >&6; } -if test "x$ac_cv_lib_sasl2_prop_get" = x""yes; then : +if test "x$ac_cv_lib_sasl2_prop_get" = xyes; then : ac_cv_found_sasl=yes else ac_cv_found_sasl=no @@ -10322,7 +10332,7 @@ if test "$ac_cv_found_sasl" != "yes"; then as_fn_error $? "Cannot continue without libsasl2. -Get it from ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/." "$LINENO" 5 +Get it from ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/." "$LINENO" 5 fi @@ -10352,7 +10362,7 @@ if ac_fn_c_try_cpp "$LINENO"; then : else - as_fn_error $? "Incorrect SASL headers found. This package requires SASL 2.1.7 or newer." "$LINENO" 5 + as_fn_error $? "Incorrect SASL headers found. This package requires SASL 2.1.7 or newer." "$LINENO" 5 fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -10366,7 +10376,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sasl_checkapop in -lsasl2" >&5 $as_echo_n "checking for sasl_checkapop in -lsasl2... " >&6; } -if test "${ac_cv_lib_sasl2_sasl_checkapop+set}" = set; then : +if ${ac_cv_lib_sasl2_sasl_checkapop+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10400,12 +10410,12 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sasl2_sasl_checkapop" >&5 $as_echo "$ac_cv_lib_sasl2_sasl_checkapop" >&6; } -if test "x$ac_cv_lib_sasl2_sasl_checkapop" = x""yes; then : +if test "x$ac_cv_lib_sasl2_sasl_checkapop" = xyes; then : $as_echo "@%:@define HAVE_APOP /**/" >>confdefs.h else - as_fn_error $? "libsasl2 without working sasl_checkapop. Cannot continue." "$LINENO" 5 + as_fn_error $? "libsasl2 without working sasl_checkapop. Cannot continue." "$LINENO" 5 fi @@ -10436,7 +10446,7 @@ 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_PERL+set}" = set; then : +if ${ac_cv_prog_PERL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PERL"; then @@ -10483,7 +10493,7 @@ PERL_SUBDIRS="imap" PERL="${with_perl}" case "${target_os}" in - linux*|netbsd*) + linux*|netbsd*|freebsd*|dragonfly*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl cccdlflags needed on \"${target_os}\"" >&5 $as_echo_n "checking for perl cccdlflags needed on \"${target_os}\"... " >&6; } eval `${PERL} -V:cccdlflags` @@ -10531,7 +10541,7 @@ cmu_save_LIBS="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for request_init in -lwrap" >&5 $as_echo_n "checking for request_init in -lwrap... " >&6; } -if test "${ac_cv_lib_wrap_request_init+set}" = set; then : +if ${ac_cv_lib_wrap_request_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10565,10 +10575,10 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_wrap_request_init" >&5 $as_echo "$ac_cv_lib_wrap_request_init" >&6; } -if test "x$ac_cv_lib_wrap_request_init" = x""yes; then : +if test "x$ac_cv_lib_wrap_request_init" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "tcpd.h" "ac_cv_header_tcpd_h" "$ac_includes_default" -if test "x$ac_cv_header_tcpd_h" = x""yes; then : +if test "x$ac_cv_header_tcpd_h" = xyes; then : else with_libwrap=no @@ -10593,7 +10603,7 @@ LIB_WRAP="-lwrap" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yp_get_default_domain in -lnsl" >&5 $as_echo_n "checking for yp_get_default_domain in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_yp_get_default_domain+set}" = set; then : +if ${ac_cv_lib_nsl_yp_get_default_domain+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10627,7 +10637,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_yp_get_default_domain" >&5 $as_echo "$ac_cv_lib_nsl_yp_get_default_domain" >&6; } -if test "x$ac_cv_lib_nsl_yp_get_default_domain" = x""yes; then : +if test "x$ac_cv_lib_nsl_yp_get_default_domain" = xyes; then : LIB_WRAP="${LIB_WRAP} -lnsl" fi @@ -10660,7 +10670,7 @@ set dummy net-snmp-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_SNMP_CONFIG+set}" = set; then : +if ${ac_cv_path_SNMP_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $SNMP_CONFIG in @@ -10720,7 +10730,7 @@ for ac_header in net-snmp/agent/agent_module_config.h do : ac_fn_c_check_header_mongrel "$LINENO" "net-snmp/agent/agent_module_config.h" "ac_cv_header_net_snmp_agent_agent_module_config_h" "$ac_includes_default" -if test "x$ac_cv_header_net_snmp_agent_agent_module_config_h" = x""yes; then : +if test "x$ac_cv_header_net_snmp_agent_agent_module_config_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_NET_SNMP_AGENT_AGENT_MODULE_CONFIG_H 1 _ACEOF @@ -10744,7 +10754,7 @@ cmu_save_LIBS="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sprint_objid in -lsnmp" >&5 $as_echo_n "checking for sprint_objid in -lsnmp... " >&6; } -if test "${ac_cv_lib_snmp_sprint_objid+set}" = set; then : +if ${ac_cv_lib_snmp_sprint_objid+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10778,10 +10788,10 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_snmp_sprint_objid" >&5 $as_echo "$ac_cv_lib_snmp_sprint_objid" >&6; } -if test "x$ac_cv_lib_snmp_sprint_objid" = x""yes; then : +if test "x$ac_cv_lib_snmp_sprint_objid" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "ucd-snmp/version.h" "ac_cv_header_ucd_snmp_version_h" "$ac_includes_default" -if test "x$ac_cv_header_ucd_snmp_version_h" = x""yes; then : +if test "x$ac_cv_header_ucd_snmp_version_h" = xyes; then : else with_snmp=no @@ -10806,7 +10816,7 @@ LIB_UCDSNMP="-lucdagent -lucdmibs -lsnmp" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rpmdbOpen in -lrpm" >&5 $as_echo_n "checking for rpmdbOpen in -lrpm... " >&6; } -if test "${ac_cv_lib_rpm_rpmdbOpen+set}" = set; then : +if ${ac_cv_lib_rpm_rpmdbOpen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10840,7 +10850,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rpm_rpmdbOpen" >&5 $as_echo "$ac_cv_lib_rpm_rpmdbOpen" >&6; } -if test "x$ac_cv_lib_rpm_rpmdbOpen" = x""yes; then : +if test "x$ac_cv_lib_rpm_rpmdbOpen" = xyes; then : LIB_UCDSNMP="${LIB_UCDSNMP} -lrpm -lpopt" fi @@ -10962,10 +10972,21 @@ :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" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -10998,7 +11019,7 @@ -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -11099,6 +11120,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in @%:@(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11406,7 +11428,7 @@ # values after options handling. ac_log=" This file was extended by $as_me, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -11468,7 +11490,7 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.67, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -11601,7 +11623,7 @@ "$EXTRA_OUTPUT") CONFIG_FILES="$CONFIG_FILES $EXTRA_OUTPUT" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -11623,9 +11645,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -11633,12 +11656,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -11660,7 +11684,7 @@ ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -11669,18 +11693,18 @@ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + 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 + 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 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -11688,7 +11712,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -11736,7 +11760,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -11768,8 +11792,8 @@ 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 +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), @@ -11802,7 +11826,7 @@ # 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 || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -11814,11 +11838,11 @@ # 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 + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -11903,7 +11927,7 @@ _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" @@ -11916,7 +11940,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -11935,7 +11959,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -11944,7 +11968,7 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -11970,8 +11994,8 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -12101,23 +12125,24 @@ s&@INSTALL@&$ac_INSTALL&;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 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # @@ -12126,21 +12151,21 @@ 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 + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; @@ -12155,7 +12180,7 @@ ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. diff -Nru cyrus-imapd-2.4-2.4.9/autom4te.cache/output.1 cyrus-imapd-2.4-2.4.12/autom4te.cache/output.1 --- cyrus-imapd-2.4-2.4.9/autom4te.cache/output.1 2011-06-21 19:51:33.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/autom4te.cache/output.1 2011-10-04 20:03:48.000000000 +0000 @@ -1,6 +1,6 @@ @%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.67. +@%:@ Generated by GNU Autoconf 2.68. @%:@ @%:@ @%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -89,6 +89,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in @%:@(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -214,11 +215,18 @@ # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -1196,7 +1204,7 @@ $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} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1477,8 +1485,9 @@ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor - YACC The `Yet Another C Compiler' implementation to use. Defaults to - the first program found out of: `bison -y', `byacc', `yacc'. + YACC The `Yet Another Compiler Compiler' implementation to use. + Defaults to the first program found out of: `bison -y', `byacc', + `yacc'. YFLAGS The list of arguments that will be passed by default to @S|@YACC. This script will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications. @@ -1550,7 +1559,7 @@ if $ac_init_version; then cat <<\_ACEOF configure -generated by GNU Autoconf 2.67 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1596,7 +1605,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_compile @@ -1633,7 +1642,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_cpp @@ -1646,10 +1655,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1712,7 +1721,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1721,7 +1730,7 @@ { $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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_mongrel @@ -1762,7 +1771,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_run @@ -1776,7 +1785,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1794,7 +1803,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_compile @@ -1839,7 +1848,7 @@ # 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_link @@ -2017,7 +2026,7 @@ rm -f conftest.val fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_compute_int @@ -2030,7 +2039,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2085,7 +2094,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_func @@ -2098,7 +2107,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } -if eval "test \"\${$4+set}\"" = set; then : +if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2142,7 +2151,7 @@ eval ac_res=\$$4 { $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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_member @@ -2157,7 +2166,7 @@ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2188,7 +2197,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_decl cat >config.log <<_ACEOF @@ -2196,7 +2205,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2454,7 +2463,7 @@ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi done @@ -2530,7 +2539,7 @@ $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 + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2563,7 +2572,7 @@ fi 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 + 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, @@ -2577,27 +2586,27 @@ # 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_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 : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 + 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 + 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 ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -2615,14 +2624,14 @@ { $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 : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi @@ -2630,7 +2639,7 @@ $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -2648,14 +2657,14 @@ { $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 : +if ${ac_cv_target+:} false; 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 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi @@ -2663,7 +2672,7 @@ $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' @@ -2702,7 +2711,7 @@ set dummy makedepend; 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_MAKEDEPEND+set}" = set; then : +if ${ac_cv_prog_MAKEDEPEND+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MAKEDEPEND"; then @@ -2745,7 +2754,7 @@ @%:@ Check whether --with-login was given. if test "${with_login+set}" = set; then : withval=$with_login; as_fn_error $? "--with-login is no longer supported. -Configure SASL appropriately instead." "$LINENO" 5 +Configure SASL appropriately instead." "$LINENO" 5 fi @@ -2820,7 +2829,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2860,7 +2869,7 @@ 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -2913,7 +2922,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2953,7 +2962,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3012,7 +3021,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3056,7 +3065,7 @@ 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3111,7 +3120,7 @@ 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 ; } +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 @@ -3226,7 +3235,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -3269,7 +3278,7 @@ { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 @@ -3328,7 +3337,7 @@ $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi fi fi @@ -3339,7 +3348,7 @@ ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3380,7 +3389,7 @@ { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -3390,7 +3399,7 @@ 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 : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3427,7 +3436,7 @@ 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 : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3505,7 +3514,7 @@ 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 : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3605,7 +3614,7 @@ 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 : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -3645,7 +3654,7 @@ 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 : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -3696,7 +3705,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -3740,7 +3749,7 @@ { $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 : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3829,7 +3838,7 @@ CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -3945,7 +3954,7 @@ { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -3957,7 +3966,7 @@ { $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 : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -4006,7 +4015,7 @@ 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 + 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 @@ -4020,7 +4029,7 @@ { $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 : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -4072,7 +4081,7 @@ 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 + 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 @@ -4087,7 +4096,7 @@ { $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 : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4216,7 +4225,7 @@ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = x""yes; then : +if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= @@ -4238,7 +4247,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : +if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4278,7 +4287,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } -if test "${ac_cv_search_strerror+set}" = set; then : +if ${ac_cv_search_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -4312,11 +4321,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_strerror+set}" = set; then : + if ${ac_cv_search_strerror+:} false; then : break fi done -if test "${ac_cv_search_strerror+set}" = set; then : +if ${ac_cv_search_strerror+:} false; then : else ac_cv_search_strerror=no @@ -4338,7 +4347,7 @@ 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 : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -4376,7 +4385,7 @@ { $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 : +if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4456,7 +4465,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5 $as_echo_n "checking for long file names... " >&6; } -if test "${ac_cv_sys_long_file_names+set}" = set; then : +if ${ac_cv_sys_long_file_names+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_long_file_names=yes @@ -4495,11 +4504,11 @@ fi if test $ac_cv_sys_long_file_names = no; then - as_fn_error $? "The Cyrus IMAPD requires support for long file names" "$LINENO" 5 + as_fn_error $? "The Cyrus IMAPD requires support for long file names" "$LINENO" 5 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 : +if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no @@ -4546,7 +4555,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } -if test "${ac_cv_sizeof_int+set}" = set; then : +if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : @@ -4556,7 +4565,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi @@ -4579,7 +4588,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : +if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : @@ -4589,7 +4598,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi @@ -4612,7 +4621,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 $as_echo_n "checking size of size_t... " >&6; } -if test "${ac_cv_sizeof_size_t+set}" = set; then : +if ${ac_cv_sizeof_size_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : @@ -4622,7 +4631,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (size_t) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_size_t=0 fi @@ -4645,7 +4654,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 $as_echo_n "checking size of off_t... " >&6; } -if test "${ac_cv_sizeof_off_t+set}" = set; then : +if ${ac_cv_sizeof_off_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : @@ -4655,7 +4664,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (off_t) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_off_t=0 fi @@ -4679,7 +4688,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long int" >&5 $as_echo_n "checking size of long long int... " >&6; } -if test "${ac_cv_sizeof_long_long_int+set}" = set; then : +if ${ac_cv_sizeof_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long int))" "ac_cv_sizeof_long_long_int" "$ac_includes_default"; then : @@ -4689,7 +4698,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long long int) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long_int=0 fi @@ -4712,7 +4721,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long long int" >&5 $as_echo_n "checking size of unsigned long long int... " >&6; } -if test "${ac_cv_sizeof_unsigned_long_long_int+set}" = set; then : +if ${ac_cv_sizeof_unsigned_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long long int))" "ac_cv_sizeof_unsigned_long_long_int" "$ac_includes_default"; then : @@ -4722,7 +4731,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned long long int) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_long_long_int=0 fi @@ -4746,7 +4755,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if test "${ac_cv_c_bigendian+set}" = set; then : +if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown @@ -4965,7 +4974,7 @@ ;; #( *) as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac fi @@ -4973,7 +4982,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__" >&5 $as_echo_n "checking for __attribute__... " >&6; } -if test "${ac_cv___attribute__+set}" = set; then : +if ${ac_cv___attribute__+:} false; then : $as_echo_n "(cached) " >&6 else @@ -5017,7 +5026,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports -fPIC" >&5 $as_echo_n "checking if compiler supports -fPIC... " >&6; } -if test "${ac_cv_fpic+set}" = set; then : +if ${ac_cv_fpic+:} false; then : $as_echo_n "(cached) " >&6 else @@ -5065,7 +5074,7 @@ # CMU GUESS RUNPATH SWITCH { $as_echo "$as_me:${as_lineno-$LINENO}: checking for runpath switch" >&5 $as_echo_n "checking for runpath switch... " >&6; } -if test "${andrew_cv_runpath_switch+set}" = set; then : +if ${andrew_cv_runpath_switch+:} false; then : $as_echo_n "(cached) " >&6 else @@ -5130,7 +5139,7 @@ done ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove" -if test "x$ac_cv_func_memmove" = x""yes; then : +if test "x$ac_cv_func_memmove" = xyes; then : $as_echo "@%:@define HAVE_MEMMOVE 1" >>confdefs.h else @@ -5143,7 +5152,7 @@ fi ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" -if test "x$ac_cv_func_strcasecmp" = x""yes; then : +if test "x$ac_cv_func_strcasecmp" = xyes; then : $as_echo "@%:@define HAVE_STRCASECMP 1" >>confdefs.h else @@ -5156,7 +5165,7 @@ fi ac_fn_c_check_func "$LINENO" "ftruncate" "ac_cv_func_ftruncate" -if test "x$ac_cv_func_ftruncate" = x""yes; then : +if test "x$ac_cv_func_ftruncate" = xyes; then : $as_echo "@%:@define HAVE_FTRUNCATE 1" >>confdefs.h else @@ -5169,7 +5178,7 @@ fi ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" -if test "x$ac_cv_func_strerror" = x""yes; then : +if test "x$ac_cv_func_strerror" = xyes; then : $as_echo "@%:@define HAVE_STRERROR 1" >>confdefs.h else @@ -5199,7 +5208,7 @@ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval "test \"\${$as_ac_Header+set}\"" = set; then : +if eval \${$as_ac_Header+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5239,7 +5248,7 @@ if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -5273,11 +5282,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then : + if ${ac_cv_search_opendir+:} false; then : break fi done -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no @@ -5296,7 +5305,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -5330,11 +5339,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then : + if ${ac_cv_search_opendir+:} false; then : break fi done -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no @@ -5356,7 +5365,7 @@ for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = x""yes; then : +if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_STDLIB_H 1 _ACEOF @@ -5368,7 +5377,7 @@ for ac_func in getpassphrase do : ac_fn_c_check_func "$LINENO" "getpassphrase" "ac_cv_func_getpassphrase" -if test "x$ac_cv_func_getpassphrase" = x""yes; then : +if test "x$ac_cv_func_getpassphrase" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_GETPASSPHRASE 1 _ACEOF @@ -5381,12 +5390,12 @@ save_LIBS="$LIBS" LIB_SOCKET="" ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" -if test "x$ac_cv_func_connect" = x""yes; then : +if test "x$ac_cv_func_connect" = xyes; then : : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5420,13 +5429,13 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : LIB_SOCKET="-lnsl $LIB_SOCKET" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 $as_echo_n "checking for connect in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_connect+set}" = set; then : +if ${ac_cv_lib_socket_connect+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5460,7 +5469,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 $as_echo "$ac_cv_lib_socket_connect" >&6; } -if test "x$ac_cv_lib_socket_connect" = x""yes; then : +if test "x$ac_cv_lib_socket_connect" = xyes; then : LIB_SOCKET="-lsocket $LIB_SOCKET" fi @@ -5469,7 +5478,7 @@ LIBS="$LIB_SOCKET $save_LIBS" ac_fn_c_check_func "$LINENO" "res_search" "ac_cv_func_res_search" -if test "x$ac_cv_func_res_search" = x""yes; then : +if test "x$ac_cv_func_res_search" = xyes; then : : else LIBS="-lresolv $LIB_SOCKET $save_LIBS" @@ -5525,14 +5534,14 @@ cyrus_cv_getaddrinfo=yes ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo" -if test "x$ac_cv_func_getaddrinfo" = x""yes; then : +if test "x$ac_cv_func_getaddrinfo" = xyes; then : ac_cv_lib_socket_getaddrinfo=no ac_cv_lib_inet6_getaddrinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -lsocket" >&5 $as_echo_n "checking for getaddrinfo in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_getaddrinfo+set}" = set; then : +if ${ac_cv_lib_socket_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5566,14 +5575,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_getaddrinfo" >&5 $as_echo "$ac_cv_lib_socket_getaddrinfo" >&6; } -if test "x$ac_cv_lib_socket_getaddrinfo" = x""yes; then : +if test "x$ac_cv_lib_socket_getaddrinfo" = xyes; then : LIBS="$LIBS -lsocket" ac_cv_lib_inet6_getaddrinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system has IPv6 directory" >&5 $as_echo_n "checking whether your system has IPv6 directory... " >&6; } - if test "${ipv6_cv_dir+set}" = set; then : + if ${ipv6_cv_dir+:} false; then : $as_echo_n "(cached) " >&6 else for ipv6_cv_dir in /usr/local/v6 /usr/inet6 no; do @@ -5594,7 +5603,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -linet6" >&5 $as_echo_n "checking for getaddrinfo in -linet6... " >&6; } -if test "${ac_cv_lib_inet6_getaddrinfo+set}" = set; then : +if ${ac_cv_lib_inet6_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5628,7 +5637,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inet6_getaddrinfo" >&5 $as_echo "$ac_cv_lib_inet6_getaddrinfo" >&6; } -if test "x$ac_cv_lib_inet6_getaddrinfo" = x""yes; then : +if test "x$ac_cv_lib_inet6_getaddrinfo" = xyes; then : if test $ipv6_libinet6 = no; then ipv6_libinet6=yes LIBS="$LIBS -linet6" @@ -5679,14 +5688,14 @@ if test $ipv6_cv_getaddrinfo = yes; then ac_fn_c_check_func "$LINENO" "gai_strerror" "ac_cv_func_gai_strerror" -if test "x$ac_cv_func_gai_strerror" = x""yes; then : +if test "x$ac_cv_func_gai_strerror" = xyes; then : ac_cv_lib_socket_gai_strerror=no ac_cv_lib_inet6_gai_strerror=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gai_strerror in -lsocket" >&5 $as_echo_n "checking for gai_strerror in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_gai_strerror+set}" = set; then : +if ${ac_cv_lib_socket_gai_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5720,14 +5729,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gai_strerror" >&5 $as_echo "$ac_cv_lib_socket_gai_strerror" >&6; } -if test "x$ac_cv_lib_socket_gai_strerror" = x""yes; then : +if test "x$ac_cv_lib_socket_gai_strerror" = xyes; then : LIBS="$LIBS -lsocket" ac_cv_lib_inet6_gai_strerror=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system has IPv6 directory" >&5 $as_echo_n "checking whether your system has IPv6 directory... " >&6; } - if test "${ipv6_cv_dir+set}" = set; then : + if ${ipv6_cv_dir+:} false; then : $as_echo_n "(cached) " >&6 else for ipv6_cv_dir in /usr/local/v6 /usr/inet6 no; do @@ -5748,7 +5757,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gai_strerror in -linet6" >&5 $as_echo_n "checking for gai_strerror in -linet6... " >&6; } -if test "${ac_cv_lib_inet6_gai_strerror+set}" = set; then : +if ${ac_cv_lib_inet6_gai_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5782,7 +5791,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inet6_gai_strerror" >&5 $as_echo "$ac_cv_lib_inet6_gai_strerror" >&6; } -if test "x$ac_cv_lib_inet6_gai_strerror" = x""yes; then : +if test "x$ac_cv_lib_inet6_gai_strerror" = xyes; then : if test $ipv6_libinet6 = no; then ipv6_libinet6=yes LIBS="$LIBS -linet6" @@ -5848,14 +5857,14 @@ cyrus_cv_getnameinfo=yes ac_fn_c_check_func "$LINENO" "getnameinfo" "ac_cv_func_getnameinfo" -if test "x$ac_cv_func_getnameinfo" = x""yes; then : +if test "x$ac_cv_func_getnameinfo" = xyes; then : ac_cv_lib_socket_getnameinfo=no ac_cv_lib_inet6_getnameinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getnameinfo in -lsocket" >&5 $as_echo_n "checking for getnameinfo in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_getnameinfo+set}" = set; then : +if ${ac_cv_lib_socket_getnameinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5889,14 +5898,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_getnameinfo" >&5 $as_echo "$ac_cv_lib_socket_getnameinfo" >&6; } -if test "x$ac_cv_lib_socket_getnameinfo" = x""yes; then : +if test "x$ac_cv_lib_socket_getnameinfo" = xyes; then : LIBS="$LIBS -lsocket" ac_cv_lib_inet6_getnameinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system has IPv6 directory" >&5 $as_echo_n "checking whether your system has IPv6 directory... " >&6; } - if test "${ipv6_cv_dir+set}" = set; then : + if ${ipv6_cv_dir+:} false; then : $as_echo_n "(cached) " >&6 else for ipv6_cv_dir in /usr/local/v6 /usr/inet6 no; do @@ -5917,7 +5926,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getnameinfo in -linet6" >&5 $as_echo_n "checking for getnameinfo in -linet6... " >&6; } -if test "${ac_cv_lib_inet6_getnameinfo+set}" = set; then : +if ${ac_cv_lib_inet6_getnameinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5951,7 +5960,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inet6_getnameinfo" >&5 $as_echo "$ac_cv_lib_inet6_getnameinfo" >&6; } -if test "x$ac_cv_lib_inet6_getnameinfo" = x""yes; then : +if test "x$ac_cv_lib_inet6_getnameinfo" = xyes; then : if test $ipv6_libinet6 = no; then ipv6_libinet6=yes LIBS="$LIBS -linet6" @@ -6014,7 +6023,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether you have ss_family in struct sockaddr_storage" >&5 $as_echo_n "checking whether you have ss_family in struct sockaddr_storage... " >&6; } -if test "${ipv6_cv_ss_family+set}" = set; then : +if ${ipv6_cv_ss_family+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6048,7 +6057,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether you have sa_len in struct sockaddr" >&5 $as_echo_n "checking whether you have sa_len in struct sockaddr... " >&6; } -if test "${ipv6_cv_sa_len+set}" = set; then : +if ${ipv6_cv_sa_len+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6085,7 +6094,7 @@ for ac_header in sys/time.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_time_h" = x""yes; then : +if test "x$ac_cv_header_sys_time_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_SYS_TIME_H 1 _ACEOF @@ -6096,7 +6105,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if test "${ac_cv_header_time+set}" = set; then : +if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6131,7 +6140,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if test "${ac_cv_struct_tm+set}" = set; then : +if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6168,7 +6177,7 @@ #include <$ac_cv_struct_tm> " -if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then : +if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_STRUCT_TM_TM_ZONE 1 @@ -6184,7 +6193,7 @@ else ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include " -if test "x$ac_cv_have_decl_tzname" = x""yes; then : +if test "x$ac_cv_have_decl_tzname" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -6196,7 +6205,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 $as_echo_n "checking for tzname... " >&6; } -if test "${ac_cv_var_tzname+set}" = set; then : +if ${ac_cv_var_tzname+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6240,13 +6249,13 @@ for ac_func in vprintf do : ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = x""yes; then : +if test "x$ac_cv_func_vprintf" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_VPRINTF 1 _ACEOF ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = x""yes; then : +if test "x$ac_cv_func__doprnt" = xyes; then : $as_echo "@%:@define HAVE_DOPRNT 1" >>confdefs.h @@ -6326,7 +6335,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "db.h" "ac_cv_header_db_h" "$ac_includes_default" -if test "x$ac_cv_header_db_h" = x""yes; then : +if test "x$ac_cv_header_db_h" = xyes; then : BDB_SAVE_LDFLAGS=$LDFLAGS @@ -6427,7 +6436,7 @@ if test "$dblib" = "no"; then as_fn_error $? "Berkeley DB 3.x or later was not found. You may need to - supply the --with-bdb-libdir or --with-bdb-incdir configure options." "$LINENO" 5 + supply the --with-bdb-libdir or --with-bdb-incdir configure options." "$LINENO" 5 fi if test "$with_bdb_lib" != "none"; then @@ -6518,7 +6527,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "mysql.h" "ac_cv_header_mysql_h" "$ac_includes_default" -if test "x$ac_cv_header_mysql_h" = x""yes; then : +if test "x$ac_cv_header_mysql_h" = xyes; then : MYSQL_SAVE_LDFLAGS=$LDFLAGS @@ -6583,7 +6592,7 @@ if test "$mysqllib" = "no"; then as_fn_error $? "MySQL was not found. You may need to supply the - --with-mysql-libdir or --with-mysql-incdir configure options." "$LINENO" 5 + --with-mysql-libdir or --with-mysql-incdir configure options." "$LINENO" 5 else HAVE_SQL=1 fi @@ -6667,7 +6676,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "libpq-fe.h" "ac_cv_header_libpq_fe_h" "$ac_includes_default" -if test "x$ac_cv_header_libpq_fe_h" = x""yes; then : +if test "x$ac_cv_header_libpq_fe_h" = xyes; then : PGSQL_SAVE_LDFLAGS=$LDFLAGS @@ -6732,7 +6741,7 @@ if test "$pgsqllib" = "no"; then as_fn_error $? "PgSQL was not found. You may need to supply the - --with-pgsql-libdir or --with-pgsql-incdir configure options." "$LINENO" 5 + --with-pgsql-libdir or --with-pgsql-incdir configure options." "$LINENO" 5 else HAVE_SQL=1 fi @@ -6816,7 +6825,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" -if test "x$ac_cv_header_sqlite3_h" = x""yes; then : +if test "x$ac_cv_header_sqlite3_h" = xyes; then : SQLITE_SAVE_LDFLAGS=$LDFLAGS @@ -6881,7 +6890,7 @@ if test "$sqlitelib" = "no"; then as_fn_error $? "Sqlite was not found. You may need to supply the - --with-sqlite-libdir or --with-sqlite-incdir configure options." "$LINENO" 5 + --with-sqlite-libdir or --with-sqlite-incdir configure options." "$LINENO" 5 else HAVE_SQL=1 fi @@ -6950,7 +6959,7 @@ 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_YACC+set}" = set; then : +if ${ac_cv_prog_YACC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then @@ -6993,7 +7002,7 @@ 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_LEX+set}" = set; then : +if ${ac_cv_prog_LEX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LEX"; then @@ -7063,7 +7072,7 @@ test $ac_status = 0; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 $as_echo_n "checking lex output file root... " >&6; } -if test "${ac_cv_prog_lex_root+set}" = set; then : +if ${ac_cv_prog_lex_root+:} false; then : $as_echo_n "(cached) " >&6 else @@ -7072,7 +7081,7 @@ elif test -f lexyy.c; then ac_cv_prog_lex_root=lexyy else - as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 + as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 @@ -7082,7 +7091,7 @@ if test -z "${LEXLIB+set}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 $as_echo_n "checking lex library... " >&6; } -if test "${ac_cv_lib_lex+set}" = set; then : +if ${ac_cv_lib_lex+:} false; then : $as_echo_n "(cached) " >&6 else @@ -7112,7 +7121,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 $as_echo_n "checking whether yytext is a pointer... " >&6; } -if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then : +if ${ac_cv_prog_lex_yytext_pointer+:} false; then : $as_echo_n "(cached) " >&6 else # POSIX says lex can declare yytext either as a pointer or an array; the @@ -7123,7 +7132,8 @@ LIBS="$LEXLIB $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#define YYTEXT_POINTER 1 + + #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : @@ -7146,7 +7156,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lfl" >&5 $as_echo_n "checking for main in -lfl... " >&6; } -if test "${ac_cv_lib_fl_main+set}" = set; then : +if ${ac_cv_lib_fl_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7174,7 +7184,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fl_main" >&5 $as_echo "$ac_cv_lib_fl_main" >&6; } -if test "x$ac_cv_lib_fl_main" = x""yes; then : +if test "x$ac_cv_lib_fl_main" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBFL 1 _ACEOF @@ -7186,15 +7196,15 @@ if test "$testpcre" != "no"; then ac_fn_c_check_header_mongrel "$LINENO" "pcreposix.h" "ac_cv_header_pcreposix_h" "$ac_includes_default" -if test "x$ac_cv_header_pcreposix_h" = x""yes; then : +if test "x$ac_cv_header_pcreposix_h" = xyes; then : fi - if test "$ac_cv_header_pcreposix_h" == "yes"; then + if test "$ac_cv_header_pcreposix_h" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for utf8 enabled pcre" >&5 $as_echo_n "checking for utf8 enabled pcre... " >&6; } - if test "${cyrus_cv_pcre_utf8+set}" = set; then : + if ${cyrus_cv_pcre_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7219,7 +7229,7 @@ fi fi - if test "$cyrus_cv_pcre_utf8" == "yes"; then + if test "$cyrus_cv_pcre_utf8" = "yes"; then LIBS="$LIBS -lpcre -lpcreposix"; $as_echo "@%:@define ENABLE_REGEX /**/" >>confdefs.h @@ -7231,7 +7241,7 @@ for ac_header in rxposix.h do : ac_fn_c_check_header_mongrel "$LINENO" "rxposix.h" "ac_cv_header_rxposix_h" "$ac_includes_default" -if test "x$ac_cv_header_rxposix_h" = x""yes; then : +if test "x$ac_cv_header_rxposix_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_RXPOSIX_H 1 _ACEOF @@ -7240,7 +7250,7 @@ done - if test "$ac_cv_header_rxposix_h" == "yes"; then + if test "$ac_cv_header_rxposix_h" = "yes"; then LIBS="$LIBS -lrx" $as_echo "@%:@define ENABLE_REGEX /**/" >>confdefs.h @@ -7248,7 +7258,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing regcomp" >&5 $as_echo_n "checking for library containing regcomp... " >&6; } -if test "${ac_cv_search_regcomp+set}" = set; then : +if ${ac_cv_search_regcomp+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -7282,11 +7292,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_regcomp+set}" = set; then : + if ${ac_cv_search_regcomp+:} false; then : break fi done -if test "${ac_cv_search_regcomp+set}" = set; then : +if ${ac_cv_search_regcomp+:} false; then : else ac_cv_search_regcomp=no @@ -7314,7 +7324,7 @@ ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" -if test "x$ac_cv_func_strerror" = x""yes; then : +if test "x$ac_cv_func_strerror" = xyes; then : $as_echo "@%:@define HAS_STRERROR /**/" >>confdefs.h @@ -7328,7 +7338,7 @@ for ac_header in sys/resource.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_resource_h" = x""yes; then : +if test "x$ac_cv_header_sys_resource_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_SYS_RESOURCE_H 1 _ACEOF @@ -7340,7 +7350,7 @@ for ac_func in setrlimit do : ac_fn_c_check_func "$LINENO" "setrlimit" "ac_cv_func_setrlimit" -if test "x$ac_cv_func_setrlimit" = x""yes; then : +if test "x$ac_cv_func_setrlimit" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_SETRLIMIT 1 _ACEOF @@ -7351,7 +7361,7 @@ for ac_func in getrlimit do : ac_fn_c_check_func "$LINENO" "getrlimit" "ac_cv_func_getrlimit" -if test "x$ac_cv_func_getrlimit" = x""yes; then : +if test "x$ac_cv_func_getrlimit" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_GETRLIMIT 1 _ACEOF @@ -7376,7 +7386,7 @@ for ac_func in shutdown do : ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" -if test "x$ac_cv_func_shutdown" = x""yes; then : +if test "x$ac_cv_func_shutdown" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_SHUTDOWN 1 _ACEOF @@ -7427,14 +7437,14 @@ spt_type="" ac_fn_c_check_func "$LINENO" "setproctitle" "ac_cv_func_setproctitle" -if test "x$ac_cv_func_setproctitle" = x""yes; then : +if test "x$ac_cv_func_setproctitle" = xyes; then : spt_type=SPT_BUILTIN fi if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setproctitle in -lutil" >&5 $as_echo_n "checking for setproctitle in -lutil... " >&6; } -if test "${ac_cv_lib_util_setproctitle+set}" = set; then : +if ${ac_cv_lib_util_setproctitle+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7468,7 +7478,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_setproctitle" >&5 $as_echo "$ac_cv_lib_util_setproctitle" >&6; } -if test "x$ac_cv_lib_util_setproctitle" = x""yes; then : +if test "x$ac_cv_lib_util_setproctitle" = xyes; then : spt_type=SPT_BUILTIN LIBS="${LIBS} -lutil" fi @@ -7476,7 +7486,7 @@ fi if test "$spt_type" = ""; then ac_fn_c_check_header_mongrel "$LINENO" "sys/pstat.h" "ac_cv_header_sys_pstat_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_pstat_h" = x""yes; then : +if test "x$ac_cv_header_sys_pstat_h" = xyes; then : spt_type=SPT_PSTAT fi @@ -7484,7 +7494,7 @@ fi if test "$spt_type" = ""; then ac_fn_c_check_header_mongrel "$LINENO" "sys/sysnews.h" "ac_cv_header_sys_sysnews_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_sysnews_h" = x""yes; then : +if test "x$ac_cv_header_sys_sysnews_h" = xyes; then : spt_type=SPT_SYSMIPS fi @@ -7493,7 +7503,7 @@ if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PS_STRINGS" >&5 $as_echo_n "checking for PS_STRINGS... " >&6; } - if test "${cyrus_cv_sys_psstrings+set}" = set; then : + if ${cyrus_cv_sys_psstrings+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7522,7 +7532,7 @@ if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SCO" >&5 $as_echo_n "checking for SCO... " >&6; } - if test "${cyrus_cv_sys_sco+set}" = set; then : + if ${cyrus_cv_sys_sco+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7549,7 +7559,7 @@ if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setproctitle usability" >&5 $as_echo_n "checking for setproctitle usability... " >&6; } - if test "${cyrus_cv_sys_setproctitle+set}" = set; then : + if ${cyrus_cv_sys_setproctitle+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7583,7 +7593,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking nonblocking method" >&5 $as_echo_n "checking nonblocking method... " >&6; } -if test "${cyrus_cv_sys_nonblock+set}" = set; then : +if ${cyrus_cv_sys_nonblock+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7618,7 +7628,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking timezone GMT offset method" >&5 $as_echo_n "checking timezone GMT offset method... " >&6; } -if test "${cyrus_cv_struct_sys_gmtoff+set}" = set; then : +if ${cyrus_cv_struct_sys_gmtoff+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7649,7 +7659,7 @@ $as_echo "$WITH_GMTOFF" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared mmap" >&5 $as_echo_n "checking for shared mmap... " >&6; } -if test "${cyrus_cv_func_mmap_shared+set}" = set; then : +if ${cyrus_cv_func_mmap_shared+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -7701,7 +7711,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stupid shared mmap" >&5 $as_echo_n "checking for stupid shared mmap... " >&6; } -if test "${cyrus_cv_func_mmap_stupidshared+set}" = set; then : +if ${cyrus_cv_func_mmap_stupidshared+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -7768,16 +7778,16 @@ else ac_fn_c_check_func "$LINENO" "fcntl" "ac_cv_func_fcntl" -if test "x$ac_cv_func_fcntl" = x""yes; then : +if test "x$ac_cv_func_fcntl" = xyes; then : WITH_LOCK="fcntl" else ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock" -if test "x$ac_cv_func_flock" = x""yes; then : +if test "x$ac_cv_func_flock" = xyes; then : WITH_LOCK="flock" else - as_fn_error $? "unable to detect locking method" "$LINENO" 5 + as_fn_error $? "unable to detect locking method" "$LINENO" 5 fi @@ -7792,7 +7802,7 @@ LIB_RT="" ac_fn_c_check_func "$LINENO" "fdatasync" "ac_cv_func_fdatasync" -if test "x$ac_cv_func_fdatasync" = x""yes; then : +if test "x$ac_cv_func_fdatasync" = xyes; then : $as_echo "@%:@define HAVE_FDATASYNC /**/" >>confdefs.h @@ -7800,7 +7810,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fdatasync in -lrt" >&5 $as_echo_n "checking for fdatasync in -lrt... " >&6; } -if test "${ac_cv_lib_rt_fdatasync+set}" = set; then : +if ${ac_cv_lib_rt_fdatasync+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7834,7 +7844,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_fdatasync" >&5 $as_echo "$ac_cv_lib_rt_fdatasync" >&6; } -if test "x$ac_cv_lib_rt_fdatasync" = x""yes; then : +if test "x$ac_cv_lib_rt_fdatasync" = xyes; then : LIB_RT="-lrt" @@ -7848,12 +7858,12 @@ cant_find_sigvec=no -if test "${cyrus_cv_sigveclib+set}" = set; then : +if ${cyrus_cv_sigveclib+:} false; then : $as_echo_n "(cached) " >&6 else ac_fn_c_check_func "$LINENO" "sigvec" "ac_cv_func_sigvec" -if test "x$ac_cv_func_sigvec" = x""yes; then : +if test "x$ac_cv_func_sigvec" = xyes; then : cyrus_cv_sigveclib="" @@ -7861,7 +7871,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigvec in -lBSD" >&5 $as_echo_n "checking for sigvec in -lBSD... " >&6; } -if test "${ac_cv_lib_BSD_sigvec+set}" = set; then : +if ${ac_cv_lib_BSD_sigvec+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7895,7 +7905,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_BSD_sigvec" >&5 $as_echo "$ac_cv_lib_BSD_sigvec" >&6; } -if test "x$ac_cv_lib_BSD_sigvec" = x""yes; then : +if test "x$ac_cv_lib_BSD_sigvec" = xyes; then : cyrus_cv_sigveclib="-lBSD" else @@ -7903,7 +7913,7 @@ LDFLAGS="-L/usr/ucblib -R/usr/ucblib $LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigvec in -lucb" >&5 $as_echo_n "checking for sigvec in -lucb... " >&6; } -if test "${ac_cv_lib_ucb_sigvec+set}" = set; then : +if ${ac_cv_lib_ucb_sigvec+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7937,7 +7947,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ucb_sigvec" >&5 $as_echo "$ac_cv_lib_ucb_sigvec" >&6; } -if test "x$ac_cv_lib_ucb_sigvec" = x""yes; then : +if test "x$ac_cv_lib_ucb_sigvec" = xyes; then : cyrus_cv_sigveclib="-lc -L/usr/ucblib -R/usr/ucblib -lucb" else @@ -8029,7 +8039,7 @@ AFS_LIBS="$AFS_LIBS -ldes" fi - if test "${cyrus_cv_afs_sigvec+set}" = set; then : + if ${cyrus_cv_afs_sigvec+:} false; then : $as_echo_n "(cached) " >&6 else @@ -8109,7 +8119,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_initialize in -lldap" >&5 $as_echo_n "checking for ldap_initialize in -lldap... " >&6; } -if test "${ac_cv_lib_ldap_ldap_initialize+set}" = set; then : +if ${ac_cv_lib_ldap_ldap_initialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8143,7 +8153,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ldap_ldap_initialize" >&5 $as_echo "$ac_cv_lib_ldap_ldap_initialize" >&6; } -if test "x$ac_cv_lib_ldap_ldap_initialize" = x""yes; then : +if test "x$ac_cv_lib_ldap_ldap_initialize" = xyes; then : $as_echo "@%:@define HAVE_LDAP /**/" >>confdefs.h @@ -8159,7 +8169,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_initialize in -lldap" >&5 $as_echo_n "checking for ldap_initialize in -lldap... " >&6; } -if test "${ac_cv_lib_ldap_ldap_initialize+set}" = set; then : +if ${ac_cv_lib_ldap_ldap_initialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8193,7 +8203,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ldap_ldap_initialize" >&5 $as_echo "$ac_cv_lib_ldap_ldap_initialize" >&6; } -if test "x$ac_cv_lib_ldap_ldap_initialize" = x""yes; then : +if test "x$ac_cv_lib_ldap_ldap_initialize" = xyes; then : $as_echo "@%:@define HAVE_LDAP /**/" >>confdefs.h @@ -8259,7 +8269,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 $as_echo_n "checking for res_search in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_res_search+set}" = set; then : +if ${ac_cv_lib_resolv_res_search+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8293,7 +8303,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5 $as_echo "$ac_cv_lib_resolv_res_search" >&6; } -if test "x$ac_cv_lib_resolv_res_search" = x""yes; then : +if test "x$ac_cv_lib_resolv_res_search" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBRESOLV 1 _ACEOF @@ -8304,7 +8314,7 @@ if test "$with_statickrb" = "yes" -a ! -d "$with_krb"; then - as_fn_error $? "--enable-statickrb specified but --with-krb did not specify a valid directory" "$LINENO" 5 + as_fn_error $? "--enable-statickrb specified but --with-krb did not specify a valid directory" "$LINENO" 5 fi if test "$with_krb" != "no"; then @@ -8319,7 +8329,7 @@ if test "$with_krbdes" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for des_ecb_encrypt in -ldes" >&5 $as_echo_n "checking for des_ecb_encrypt in -ldes... " >&6; } -if test "${ac_cv_lib_des_des_ecb_encrypt+set}" = set; then : +if ${ac_cv_lib_des_des_ecb_encrypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8353,14 +8363,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_des_des_ecb_encrypt" >&5 $as_echo "$ac_cv_lib_des_des_ecb_encrypt" >&6; } -if test "x$ac_cv_lib_des_des_ecb_encrypt" = x""yes; then : +if test "x$ac_cv_lib_des_des_ecb_encrypt" = xyes; then : if test "$with_statickrb" = "yes"; then KRB_LIBS="$with_krb/lib/libdes.a" else KRB_LIBS="-ldes" fi else - as_fn_error $? "The Kerberos DES library is required for Kerberos support. You might want --with-auth=unix." "$LINENO" 5 + as_fn_error $? "The Kerberos DES library is required for Kerberos support. You might want --with-auth=unix." "$LINENO" 5 fi fi @@ -8369,7 +8379,7 @@ if test -d ${with_krb}; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Kerberos includes" >&5 $as_echo_n "checking for Kerberos includes... " >&6; } -if test "${cyrus_cv_krbinclude+set}" = set; then : +if ${cyrus_cv_krbinclude+:} false; then : $as_echo_n "(cached) " >&6 else @@ -8406,11 +8416,11 @@ if test "$with_des" != no; then ac_fn_c_check_header_mongrel "$LINENO" "krb.h" "ac_cv_header_krb_h" "$ac_includes_default" -if test "x$ac_cv_header_krb_h" = x""yes; then : +if test "x$ac_cv_header_krb_h" = xyes; then : as_ac_Lib=`$as_echo "ac_cv_lib_${KRBLIB}''_krb_mk_priv" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb_mk_priv in -l${KRBLIB}" >&5 $as_echo_n "checking for krb_mk_priv in -l${KRBLIB}... " >&6; } -if eval "test \"\${$as_ac_Lib+set}\"" = set; then : +if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8495,7 +8505,7 @@ LIB_RSAREF="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RSAPublicEncrypt in -lrsaref" >&5 $as_echo_n "checking for RSAPublicEncrypt in -lrsaref... " >&6; } -if test "${ac_cv_lib_rsaref_RSAPublicEncrypt+set}" = set; then : +if ${ac_cv_lib_rsaref_RSAPublicEncrypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8529,7 +8539,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rsaref_RSAPublicEncrypt" >&5 $as_echo "$ac_cv_lib_rsaref_RSAPublicEncrypt" >&6; } -if test "x$ac_cv_lib_rsaref_RSAPublicEncrypt" = x""yes; then : +if test "x$ac_cv_lib_rsaref_RSAPublicEncrypt" = xyes; then : LIB_RSAREF="-lRSAglue -lrsaref"; cmu_have_rsaref=yes else cmu_have_rsaref=no @@ -8539,7 +8549,7 @@ with_openssl="yes" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BIO_accept in -lcrypto" >&5 $as_echo_n "checking for BIO_accept in -lcrypto... " >&6; } -if test "${ac_cv_lib_crypto_BIO_accept+set}" = set; then : +if ${ac_cv_lib_crypto_BIO_accept+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8573,7 +8583,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_BIO_accept" >&5 $as_echo "$ac_cv_lib_crypto_BIO_accept" >&6; } -if test "x$ac_cv_lib_crypto_BIO_accept" = x""yes; then : +if test "x$ac_cv_lib_crypto_BIO_accept" = xyes; then : LIBS="-lcrypto $LIB_RSAREF ${LIBS}" else with_openssl="no" @@ -8581,7 +8591,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_CTX_new in -lssl" >&5 $as_echo_n "checking for SSL_CTX_new in -lssl... " >&6; } -if test "${ac_cv_lib_ssl_SSL_CTX_new+set}" = set; then : +if ${ac_cv_lib_ssl_SSL_CTX_new+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8615,7 +8625,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_CTX_new" >&5 $as_echo "$ac_cv_lib_ssl_SSL_CTX_new" >&6; } -if test "x$ac_cv_lib_ssl_SSL_CTX_new" = x""yes; then : +if test "x$ac_cv_lib_ssl_SSL_CTX_new" = xyes; then : LIBS="-lssl ${LIBS}" else with_openssl="no" @@ -8695,7 +8705,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : +if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : @@ -8705,7 +8715,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi @@ -8724,7 +8734,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking what directory libraries are found in" >&5 $as_echo_n "checking what directory libraries are found in... " >&6; } -if test "${ac_cv_cmu_lib_subdir+set}" = set; then : +if ${ac_cv_cmu_lib_subdir+:} false; then : $as_echo_n "(cached) " >&6 else test "X$with_lib_subdir" = "Xyes" && with_lib_subdir= @@ -8778,11 +8788,11 @@ with_zlib="no";; *) ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = x""yes; then : +if test "x$ac_cv_header_zlib_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for deflate in -lz" >&5 $as_echo_n "checking for deflate in -lz... " >&6; } -if test "${ac_cv_lib_z_deflate+set}" = set; then : +if ${ac_cv_lib_z_deflate+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8816,7 +8826,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_deflate" >&5 $as_echo "$ac_cv_lib_z_deflate" >&6; } -if test "x$ac_cv_lib_z_deflate" = x""yes; then : +if test "x$ac_cv_lib_z_deflate" = xyes; then : LIBS="${LIBS} -lz"; with_zlib="yes" else with_zlib="no" @@ -8865,7 +8875,7 @@ no) true;; ""|yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZInitialize in -lzephyr" >&5 $as_echo_n "checking for ZInitialize in -lzephyr... " >&6; } -if test "${ac_cv_lib_zephyr_ZInitialize+set}" = set; then : +if ${ac_cv_lib_zephyr_ZInitialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8899,7 +8909,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zephyr_ZInitialize" >&5 $as_echo "$ac_cv_lib_zephyr_ZInitialize" >&6; } -if test "x$ac_cv_lib_zephyr_ZInitialize" = x""yes; then : +if test "x$ac_cv_lib_zephyr_ZInitialize" = xyes; then : ZEPHYR_LIBS="-lzephyr" else with_zephyr="no" @@ -8966,7 +8976,7 @@ for ac_header in sys/sockio.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/sockio.h" "ac_cv_header_sys_sockio_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_sockio_h" = x""yes; then : +if test "x$ac_cv_header_sys_sockio_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_SYS_SOCKIO_H 1 _ACEOF @@ -8999,7 +9009,7 @@ # no value supplied { $as_echo "$as_me:${as_lineno-$LINENO}: checking for com_err in -lcom_err" >&5 $as_echo_n "checking for com_err in -lcom_err... " >&6; } -if test "${ac_cv_lib_com_err_com_err+set}" = set; then : +if ${ac_cv_lib_com_err_com_err+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9033,23 +9043,23 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_com_err_com_err" >&5 $as_echo "$ac_cv_lib_com_err_com_err" >&6; } -if test "x$ac_cv_lib_com_err_com_err" = x""yes; then : +if test "x$ac_cv_lib_com_err_com_err" = xyes; then : # com_err is already in library path # guess we're okay # can use system com_err with_com_err="" ac_fn_c_check_header_mongrel "$LINENO" "et/com_err.h" "ac_cv_header_et_com_err_h" "$ac_includes_default" -if test "x$ac_cv_header_et_com_err_h" = x""yes; then : +if test "x$ac_cv_header_et_com_err_h" = xyes; then : $as_echo "@%:@define HAVE_ET_COM_ERR_H /**/" >>confdefs.h else ac_fn_c_check_header_mongrel "$LINENO" "com_err.h" "ac_cv_header_com_err_h" "$ac_includes_default" -if test "x$ac_cv_header_com_err_h" = x""yes; then : +if test "x$ac_cv_header_com_err_h" = xyes; then : else - as_fn_error $? "cannot locate com_err.h" "$LINENO" 5 + as_fn_error $? "cannot locate com_err.h" "$LINENO" 5 fi @@ -9060,7 +9070,7 @@ set dummy compile_et; 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_COMPILE_ET+set}" = set; then : +if ${ac_cv_path_COMPILE_ET+:} false; then : $as_echo_n "(cached) " >&6 else case $COMPILE_ET in @@ -9106,7 +9116,7 @@ set dummy /usr/local/bin/compile_et; 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_COMPILE_ET+set}" = set; then : +if ${ac_cv_path_COMPILE_ET+:} false; then : $as_echo_n "(cached) " >&6 else case $COMPILE_ET in @@ -9149,7 +9159,7 @@ set dummy /usr/bin/compile_et; 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_COMPILE_ET+set}" = set; then : +if ${ac_cv_path_COMPILE_ET+:} false; then : $as_echo_n "(cached) " >&6 else case $COMPILE_ET in @@ -9242,7 +9252,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for modern syslog" >&5 $as_echo_n "checking for modern syslog... " >&6; } -if test "${cyrus_cv_lib_syslog+set}" = set; then : +if ${cyrus_cv_lib_syslog+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -9289,7 +9299,7 @@ $as_echo "$SYSLOG_FACILITY" >&6; } ac_fn_c_check_func "$LINENO" "getdtablesize" "ac_cv_func_getdtablesize" -if test "x$ac_cv_func_getdtablesize" = x""yes; then : +if test "x$ac_cv_func_getdtablesize" = xyes; then : $as_echo "@%:@define HAVE_GETDTABLESIZE 1" >>confdefs.h else @@ -9342,12 +9352,12 @@ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = x""yes; then : +if test "x$ac_cv_func_dlopen" = xyes; then : 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 : +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9381,7 +9391,7 @@ 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 : +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBDL 1 _ACEOF @@ -9393,12 +9403,12 @@ fi ac_fn_c_check_func "$LINENO" "crypt" "ac_cv_func_crypt" -if test "x$ac_cv_func_crypt" = x""yes; then : +if test "x$ac_cv_func_crypt" = xyes; then : cmu_have_crypt=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for crypt in -lcrypt" >&5 $as_echo_n "checking for crypt in -lcrypt... " >&6; } -if test "${ac_cv_lib_crypt_crypt+set}" = set; then : +if ${ac_cv_lib_crypt_crypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9432,7 +9442,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypt_crypt" >&5 $as_echo "$ac_cv_lib_crypt_crypt" >&6; } -if test "x$ac_cv_lib_crypt_crypt" = x""yes; then : +if test "x$ac_cv_lib_crypt_crypt" = xyes; then : LIB_CRYPT="-lcrypt"; cmu_have_crypt=yes else cmu_have_crypt=no @@ -9484,7 +9494,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The system type is not recognized. If you believe that CyberSafe GSSAPI works on this platform, please update the configure script" >&5 $as_echo "$as_me: WARNING: The system type is not recognized. If you believe that CyberSafe GSSAPI works on this platform, please update the configure script" >&2;} if test "$gss_impl" = "cybersafe"; then - as_fn_error $? "CyberSafe was forced, cannot continue as platform is not supported" "$LINENO" 5 + as_fn_error $? "CyberSafe was forced, cannot continue as platform is not supported" "$LINENO" 5 fi ;; esac @@ -9509,11 +9519,11 @@ fi fi ac_fn_c_check_header_mongrel "$LINENO" "gssapi.h" "ac_cv_header_gssapi_h" "$ac_includes_default" -if test "x$ac_cv_header_gssapi_h" = x""yes; then : +if test "x$ac_cv_header_gssapi_h" = xyes; then : else ac_fn_c_check_header_mongrel "$LINENO" "gssapi/gssapi.h" "ac_cv_header_gssapi_gssapi_h" "$ac_includes_default" -if test "x$ac_cv_header_gssapi_gssapi_h" = x""yes; then : +if test "x$ac_cv_header_gssapi_gssapi_h" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling GSSAPI - no include files found" >&5 @@ -9546,7 +9556,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 $as_echo_n "checking for res_search in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_res_search+set}" = set; then : +if ${ac_cv_lib_resolv_res_search+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9580,7 +9590,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5 $as_echo "$ac_cv_lib_resolv_res_search" >&6; } -if test "x$ac_cv_lib_resolv_res_search" = x""yes; then : +if test "x$ac_cv_lib_resolv_res_search" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBRESOLV 1 _ACEOF @@ -9608,7 +9618,7 @@ gss_failed=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gss_unwrap in -lgssapi" >&5 $as_echo_n "checking for gss_unwrap in -lgssapi... " >&6; } -if test "${ac_cv_lib_gssapi_gss_unwrap+set}" = set; then : +if ${ac_cv_lib_gssapi_gss_unwrap+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9642,7 +9652,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssapi_gss_unwrap" >&5 $as_echo "$ac_cv_lib_gssapi_gss_unwrap" >&6; } -if test "x$ac_cv_lib_gssapi_gss_unwrap" = x""yes; then : +if test "x$ac_cv_lib_gssapi_gss_unwrap" = xyes; then : gss_impl="heimdal" else gss_failed=1 @@ -9657,7 +9667,7 @@ # check for libkrb5support first { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_getspecific in -lkrb5support" >&5 $as_echo_n "checking for krb5int_getspecific in -lkrb5support... " >&6; } -if test "${ac_cv_lib_krb5support_krb5int_getspecific+set}" = set; then : +if ${ac_cv_lib_krb5support_krb5int_getspecific+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9691,7 +9701,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5support_krb5int_getspecific" >&5 $as_echo "$ac_cv_lib_krb5support_krb5int_getspecific" >&6; } -if test "x$ac_cv_lib_krb5support_krb5int_getspecific" = x""yes; then : +if test "x$ac_cv_lib_krb5support_krb5int_getspecific" = xyes; then : K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a fi @@ -9699,7 +9709,7 @@ gss_failed=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gss_unwrap in -lgssapi_krb5" >&5 $as_echo_n "checking for gss_unwrap in -lgssapi_krb5... " >&6; } -if test "${ac_cv_lib_gssapi_krb5_gss_unwrap+set}" = set; then : +if ${ac_cv_lib_gssapi_krb5_gss_unwrap+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9733,7 +9743,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssapi_krb5_gss_unwrap" >&5 $as_echo "$ac_cv_lib_gssapi_krb5_gss_unwrap" >&6; } -if test "x$ac_cv_lib_gssapi_krb5_gss_unwrap" = x""yes; then : +if test "x$ac_cv_lib_gssapi_krb5_gss_unwrap" = xyes; then : gss_impl="mit" else gss_failed=1 @@ -9766,7 +9776,7 @@ unset ac_cv_lib_gss_csf_gss_acq_user { $as_echo "$as_me:${as_lineno-$LINENO}: checking for csf_gss_acq_user in -lgss" >&5 $as_echo_n "checking for csf_gss_acq_user in -lgss... " >&6; } -if test "${ac_cv_lib_gss_csf_gss_acq_user+set}" = set; then : +if ${ac_cv_lib_gss_csf_gss_acq_user+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9800,13 +9810,13 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gss_csf_gss_acq_user" >&5 $as_echo "$ac_cv_lib_gss_csf_gss_acq_user" >&6; } -if test "x$ac_cv_lib_gss_csf_gss_acq_user" = x""yes; then : +if test "x$ac_cv_lib_gss_csf_gss_acq_user" = xyes; then : gss_impl="cybersafe03" else unset ac_cv_lib_gss_csf_gss_acq_user; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for csf_gss_acq_user in -lgss" >&5 $as_echo_n "checking for csf_gss_acq_user in -lgss... " >&6; } -if test "${ac_cv_lib_gss_csf_gss_acq_user+set}" = set; then : +if ${ac_cv_lib_gss_csf_gss_acq_user+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9840,7 +9850,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gss_csf_gss_acq_user" >&5 $as_echo "$ac_cv_lib_gss_csf_gss_acq_user" >&6; } -if test "x$ac_cv_lib_gss_csf_gss_acq_user" = x""yes; then : +if test "x$ac_cv_lib_gss_csf_gss_acq_user" = xyes; then : gss_impl="cybersafe" else gss_failed=1 @@ -9864,7 +9874,7 @@ gss_failed=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gss_unwrap in -lgss" >&5 $as_echo_n "checking for gss_unwrap in -lgss... " >&6; } -if test "${ac_cv_lib_gss_gss_unwrap+set}" = set; then : +if ${ac_cv_lib_gss_gss_unwrap+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9898,7 +9908,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gss_gss_unwrap" >&5 $as_echo "$ac_cv_lib_gss_gss_unwrap" >&6; } -if test "x$ac_cv_lib_gss_gss_unwrap" = x""yes; then : +if test "x$ac_cv_lib_gss_gss_unwrap" = xyes; then : gss_impl="seam" else gss_failed=1 @@ -10059,7 +10069,7 @@ $as_echo "with implementation ${gss_impl}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 $as_echo_n "checking for res_search in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_res_search+set}" = set; then : +if ${ac_cv_lib_resolv_res_search+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10093,7 +10103,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5 $as_echo "$ac_cv_lib_resolv_res_search" >&6; } -if test "x$ac_cv_lib_resolv_res_search" = x""yes; then : +if test "x$ac_cv_lib_resolv_res_search" = xyes; then : GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lresolv" fi @@ -10106,7 +10116,7 @@ for ac_func in gsskrb5_register_acceptor_identity do : ac_fn_c_check_func "$LINENO" "gsskrb5_register_acceptor_identity" "ac_cv_func_gsskrb5_register_acceptor_identity" -if test "x$ac_cv_func_gsskrb5_register_acceptor_identity" = x""yes; then : +if test "x$ac_cv_func_gsskrb5_register_acceptor_identity" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY 1 _ACEOF @@ -10171,9 +10181,9 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "sasl/sasl.h" "ac_cv_header_sasl_sasl_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_sasl_h" = x""yes; then : +if test "x$ac_cv_header_sasl_sasl_h" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "sasl/saslutil.h" "ac_cv_header_sasl_saslutil_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_saslutil_h" = x""yes; then : +if test "x$ac_cv_header_sasl_saslutil_h" = xyes; then : for i42 in lib64 lib; do if test -r ${with_staticsasl}/$i42/libsasl2.a; then ac_cv_found_sasl=yes @@ -10185,7 +10195,7 @@ if test ! "$ac_cv_found_sasl" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for static libsasl" >&5 $as_echo_n "checking for static libsasl... " >&6; } - as_fn_error $? "Could not find ${with_staticsasl}/lib*/libsasl2.a" "$LINENO" 5 + as_fn_error $? "Could not find ${with_staticsasl}/lib*/libsasl2.a" "$LINENO" 5 fi fi @@ -10227,12 +10237,12 @@ # be sure to check for a SASLv2 specific function ac_fn_c_check_header_mongrel "$LINENO" "sasl/sasl.h" "ac_cv_header_sasl_sasl_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_sasl_h" = x""yes; then : +if test "x$ac_cv_header_sasl_sasl_h" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "sasl/saslutil.h" "ac_cv_header_sasl_saslutil_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_saslutil_h" = x""yes; then : +if test "x$ac_cv_header_sasl_saslutil_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prop_get in -lsasl2" >&5 $as_echo_n "checking for prop_get in -lsasl2... " >&6; } -if test "${ac_cv_lib_sasl2_prop_get+set}" = set; then : +if ${ac_cv_lib_sasl2_prop_get+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10266,7 +10276,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sasl2_prop_get" >&5 $as_echo "$ac_cv_lib_sasl2_prop_get" >&6; } -if test "x$ac_cv_lib_sasl2_prop_get" = x""yes; then : +if test "x$ac_cv_lib_sasl2_prop_get" = xyes; then : ac_cv_found_sasl=yes else ac_cv_found_sasl=no @@ -10322,7 +10332,7 @@ if test "$ac_cv_found_sasl" != "yes"; then as_fn_error $? "Cannot continue without libsasl2. -Get it from ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/." "$LINENO" 5 +Get it from ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/." "$LINENO" 5 fi @@ -10352,7 +10362,7 @@ if ac_fn_c_try_cpp "$LINENO"; then : else - as_fn_error $? "Incorrect SASL headers found. This package requires SASL 2.1.7 or newer." "$LINENO" 5 + as_fn_error $? "Incorrect SASL headers found. This package requires SASL 2.1.7 or newer." "$LINENO" 5 fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -10366,7 +10376,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sasl_checkapop in -lsasl2" >&5 $as_echo_n "checking for sasl_checkapop in -lsasl2... " >&6; } -if test "${ac_cv_lib_sasl2_sasl_checkapop+set}" = set; then : +if ${ac_cv_lib_sasl2_sasl_checkapop+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10400,12 +10410,12 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sasl2_sasl_checkapop" >&5 $as_echo "$ac_cv_lib_sasl2_sasl_checkapop" >&6; } -if test "x$ac_cv_lib_sasl2_sasl_checkapop" = x""yes; then : +if test "x$ac_cv_lib_sasl2_sasl_checkapop" = xyes; then : $as_echo "@%:@define HAVE_APOP /**/" >>confdefs.h else - as_fn_error $? "libsasl2 without working sasl_checkapop. Cannot continue." "$LINENO" 5 + as_fn_error $? "libsasl2 without working sasl_checkapop. Cannot continue." "$LINENO" 5 fi @@ -10436,7 +10446,7 @@ 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_PERL+set}" = set; then : +if ${ac_cv_prog_PERL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PERL"; then @@ -10483,7 +10493,7 @@ PERL_SUBDIRS="imap" PERL="${with_perl}" case "${target_os}" in - linux*|netbsd*) + linux*|netbsd*|freebsd*|dragonfly*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl cccdlflags needed on \"${target_os}\"" >&5 $as_echo_n "checking for perl cccdlflags needed on \"${target_os}\"... " >&6; } eval `${PERL} -V:cccdlflags` @@ -10531,7 +10541,7 @@ cmu_save_LIBS="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for request_init in -lwrap" >&5 $as_echo_n "checking for request_init in -lwrap... " >&6; } -if test "${ac_cv_lib_wrap_request_init+set}" = set; then : +if ${ac_cv_lib_wrap_request_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10565,10 +10575,10 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_wrap_request_init" >&5 $as_echo "$ac_cv_lib_wrap_request_init" >&6; } -if test "x$ac_cv_lib_wrap_request_init" = x""yes; then : +if test "x$ac_cv_lib_wrap_request_init" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "tcpd.h" "ac_cv_header_tcpd_h" "$ac_includes_default" -if test "x$ac_cv_header_tcpd_h" = x""yes; then : +if test "x$ac_cv_header_tcpd_h" = xyes; then : else with_libwrap=no @@ -10593,7 +10603,7 @@ LIB_WRAP="-lwrap" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yp_get_default_domain in -lnsl" >&5 $as_echo_n "checking for yp_get_default_domain in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_yp_get_default_domain+set}" = set; then : +if ${ac_cv_lib_nsl_yp_get_default_domain+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10627,7 +10637,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_yp_get_default_domain" >&5 $as_echo "$ac_cv_lib_nsl_yp_get_default_domain" >&6; } -if test "x$ac_cv_lib_nsl_yp_get_default_domain" = x""yes; then : +if test "x$ac_cv_lib_nsl_yp_get_default_domain" = xyes; then : LIB_WRAP="${LIB_WRAP} -lnsl" fi @@ -10660,7 +10670,7 @@ set dummy net-snmp-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_SNMP_CONFIG+set}" = set; then : +if ${ac_cv_path_SNMP_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $SNMP_CONFIG in @@ -10720,7 +10730,7 @@ for ac_header in net-snmp/agent/agent_module_config.h do : ac_fn_c_check_header_mongrel "$LINENO" "net-snmp/agent/agent_module_config.h" "ac_cv_header_net_snmp_agent_agent_module_config_h" "$ac_includes_default" -if test "x$ac_cv_header_net_snmp_agent_agent_module_config_h" = x""yes; then : +if test "x$ac_cv_header_net_snmp_agent_agent_module_config_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_NET_SNMP_AGENT_AGENT_MODULE_CONFIG_H 1 _ACEOF @@ -10744,7 +10754,7 @@ cmu_save_LIBS="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sprint_objid in -lsnmp" >&5 $as_echo_n "checking for sprint_objid in -lsnmp... " >&6; } -if test "${ac_cv_lib_snmp_sprint_objid+set}" = set; then : +if ${ac_cv_lib_snmp_sprint_objid+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10778,10 +10788,10 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_snmp_sprint_objid" >&5 $as_echo "$ac_cv_lib_snmp_sprint_objid" >&6; } -if test "x$ac_cv_lib_snmp_sprint_objid" = x""yes; then : +if test "x$ac_cv_lib_snmp_sprint_objid" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "ucd-snmp/version.h" "ac_cv_header_ucd_snmp_version_h" "$ac_includes_default" -if test "x$ac_cv_header_ucd_snmp_version_h" = x""yes; then : +if test "x$ac_cv_header_ucd_snmp_version_h" = xyes; then : else with_snmp=no @@ -10806,7 +10816,7 @@ LIB_UCDSNMP="-lucdagent -lucdmibs -lsnmp" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rpmdbOpen in -lrpm" >&5 $as_echo_n "checking for rpmdbOpen in -lrpm... " >&6; } -if test "${ac_cv_lib_rpm_rpmdbOpen+set}" = set; then : +if ${ac_cv_lib_rpm_rpmdbOpen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10840,7 +10850,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rpm_rpmdbOpen" >&5 $as_echo "$ac_cv_lib_rpm_rpmdbOpen" >&6; } -if test "x$ac_cv_lib_rpm_rpmdbOpen" = x""yes; then : +if test "x$ac_cv_lib_rpm_rpmdbOpen" = xyes; then : LIB_UCDSNMP="${LIB_UCDSNMP} -lrpm -lpopt" fi @@ -10962,10 +10972,21 @@ :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" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -10998,7 +11019,7 @@ -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -11099,6 +11120,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in @%:@(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11406,7 +11428,7 @@ # values after options handling. ac_log=" This file was extended by $as_me, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -11468,7 +11490,7 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.67, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -11601,7 +11623,7 @@ "$EXTRA_OUTPUT") CONFIG_FILES="$CONFIG_FILES $EXTRA_OUTPUT" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -11623,9 +11645,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -11633,12 +11656,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -11660,7 +11684,7 @@ ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -11669,18 +11693,18 @@ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + 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 + 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 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -11688,7 +11712,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -11736,7 +11760,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -11768,8 +11792,8 @@ 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 +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), @@ -11802,7 +11826,7 @@ # 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 || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -11814,11 +11838,11 @@ # 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 + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -11903,7 +11927,7 @@ _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" @@ -11916,7 +11940,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -11935,7 +11959,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -11944,7 +11968,7 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -11970,8 +11994,8 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -12101,23 +12125,24 @@ s&@INSTALL@&$ac_INSTALL&;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 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # @@ -12126,21 +12151,21 @@ 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 + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; @@ -12155,7 +12180,7 @@ ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. diff -Nru cyrus-imapd-2.4-2.4.9/autom4te.cache/requests cyrus-imapd-2.4-2.4.12/autom4te.cache/requests --- cyrus-imapd-2.4-2.4.9/autom4te.cache/requests 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/autom4te.cache/requests 2011-10-04 20:03:49.000000000 +0000 @@ -1,4 +1,4 @@ -# This file was generated by Autom4te Thu Aug 5 21:29:16 UTC 2010. +# This file was generated by Autom4te Sun May 1 09:53:53 UTC 2011. # It contains the lists of macros which have been traced. # It can be safely removed. @@ -30,8 +30,8 @@ ], { 'CMU_KRB_RD_REQ_PROTO' => 1, - 'm4_pattern_forbid' => 1, 'CMU_USE_DB' => 1, + 'm4_pattern_forbid' => 1, 'CMU_DB_LIB_WHERE' => 1, 'CMU_FIND_LIB_SUBDIR' => 1, 'AC_DEFUN' => 1, @@ -46,8 +46,8 @@ 'CMU_LIBSSL_LIB_WHERE' => 1, 'CMU_SASL2_REQUIRED' => 1, 'CYRUS_BERKELEY_DB_CHK_LIB' => 1, - 'CYRUS_PGSQL_OPTS' => 1, 'CMU_HAVE_ZLIB' => 1, + 'CYRUS_PGSQL_OPTS' => 1, 'CMU_TEST_LIBPATH' => 1, 'CMU_SASL2_REQUIRE_VER' => 1, 'CMU_KRB_INC_WHERE' => 1, @@ -62,8 +62,8 @@ 'CMU_GUESS_RUNPATH_SWITCH' => 1, 'CMU_KRB_INC_WHERE1' => 1, 'CYRUS_MYSQL_CHK' => 1, - 'CYRUS_BERKELEY_DB_OPTS' => 1, 'AU_DEFUN' => 1, + 'CYRUS_BERKELEY_DB_OPTS' => 1, 'IPv6_CHECK_SOCKLEN_T' => 1, 'CMU_AFS' => 1, 'CMU_LIBSSL' => 1, @@ -92,13 +92,13 @@ 'CMU_TEST_INCPATH' => 1, 'CMU_ADD_LIBPATH' => 1, 'CMU_KRB4' => 1, - 'SASL_GSSAPI_CHK' => 1, 'CMU_CHECK_HEADER_NOCACHE' => 1, + 'SASL_GSSAPI_CHK' => 1, 'CYRUS_BERKELEY_DB_CHK' => 1, 'CYRUS_PGSQL_CHK' => 1, 'm4_include' => 1, - 'CMU_NEEDS_AFS' => 1, - 'CYRUS_SQLITE_CHK_LIB' => 1 + 'CYRUS_SQLITE_CHK_LIB' => 1, + 'CMU_NEEDS_AFS' => 1 } ], 'Autom4te::Request' ), bless( [ @@ -126,6 +126,7 @@ 'AC_PROG_LIBTOOL' => 1, 'AM_INIT_AUTOMAKE' => 1, 'AC_CONFIG_SUBDIRS' => 1, + 'AM_PATH_GUILE' => 1, 'AM_AUTOMAKE_VERSION' => 1, 'LT_CONFIG_LTDL_DIR' => 1, 'AC_CONFIG_LINKS' => 1, @@ -133,16 +134,21 @@ 'LT_SUPPORTED_TAG' => 1, 'm4_sinclude' => 1, 'AM_MAINTAINER_MODE' => 1, + 'AM_NLS' => 1, 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, '_m4_warn' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, 'AM_PROG_CXX_C_O' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, '_AM_COND_ENDIF' => 1, 'AM_ENABLE_MULTILIB' => 1, 'AM_SILENT_RULES' => 1, + 'AM_PROG_MOC' => 1, 'AC_CONFIG_FILES' => 1, - 'include' => 1, 'LT_INIT' => 1, + 'include' => 1, 'AM_GNU_GETTEXT' => 1, + 'AM_PROG_AR' => 1, 'AC_LIBSOURCE' => 1, 'AC_CANONICAL_BUILD' => 1, 'AM_PROG_FC_C_O' => 1, @@ -155,8 +161,10 @@ 'sinclude' => 1, 'AM_CONDITIONAL' => 1, 'AC_CANONICAL_SYSTEM' => 1, + 'AM_XGETTEXT_OPTION' => 1, 'AC_CONFIG_HEADERS' => 1, 'AC_DEFINE_TRACE_LITERAL' => 1, + 'AM_POT_TOOLS' => 1, 'm4_include' => 1, '_AM_COND_ELSE' => 1, 'AC_SUBST_TRACE' => 1 diff -Nru cyrus-imapd-2.4-2.4.9/autom4te.cache/traces.0 cyrus-imapd-2.4-2.4.12/autom4te.cache/traces.0 --- cyrus-imapd-2.4-2.4.9/autom4te.cache/traces.0 2011-06-21 19:51:33.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/autom4te.cache/traces.0 2011-10-04 20:03:33.000000000 +0000 @@ -2062,36 +2062,36 @@ m4trace:configure.in:115: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$]) m4trace:configure.in:118: -1- CMU_C___ATTRIBUTE__ m4trace:configure.in:118: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2602: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... cmulocal/c-attribute.m4:9: CMU_C___ATTRIBUTE__ is expanded from... configure.in:118: the top level]) m4trace:configure.in:118: -1- m4_pattern_allow([^HAVE___ATTRIBUTE__$]) m4trace:configure.in:119: -1- CMU_C_FPIC m4trace:configure.in:119: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2602: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... cmulocal/c-fpic.m4:9: CMU_C_FPIC is expanded from... configure.in:119: the top level]) m4trace:configure.in:122: -1- CMU_GUESS_RUNPATH_SWITCH m4trace:configure.in:122: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2040: AC_CACHE_CHECK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... cmulocal/cyrus.m4:33: CMU_GUESS_RUNPATH_SWITCH is expanded from... configure.in:122: the top level]) m4trace:configure.in:122: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2649: _AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2666: AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2040: AC_CACHE_CHECK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2662: _AC_LINK_IFELSE is expanded from... +../../lib/autoconf/general.m4:2679: AC_LINK_IFELSE is expanded from... +../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... cmulocal/cyrus.m4:33: CMU_GUESS_RUNPATH_SWITCH is expanded from... configure.in:122: the top level]) m4trace:configure.in:125: -1- m4_pattern_allow([^HAVE_MEMMOVE$]) @@ -2106,8 +2106,8 @@ m4trace:configure.in:131: -1- m4_pattern_allow([^HAVE_GETPASSPHRASE$]) m4trace:configure.in:134: -1- CMU_SOCKETS m4trace:configure.in:134: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from... cmulocal/bsd_sockets.m4:9: CMU_SOCKETS is expanded from... configure.in:134: the top level]) @@ -2128,17 +2128,17 @@ m4trace:configure.in:148: -1- m4_pattern_allow([^HAVE_GETADDRINFO$]) m4trace:configure.in:156: -1- IPv6_CHECK_SS_FAMILY([]) m4trace:configure.in:156: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2602: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... cmulocal/ipv6.m4:66: IPv6_CHECK_SS_FAMILY is expanded from... configure.in:156: the top level]) m4trace:configure.in:156: -2- m4_pattern_allow([^HAVE_SS_FAMILY$]) m4trace:configure.in:157: -1- IPv6_CHECK_SA_LEN([]) m4trace:configure.in:157: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2602: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... cmulocal/ipv6.m4:82: IPv6_CHECK_SA_LEN is expanded from... configure.in:157: the top level]) m4trace:configure.in:157: -2- m4_pattern_allow([^HAVE_SOCKADDR_SA_LEN$]) @@ -2163,17 +2163,17 @@ m4trace:configure.in:205: -1- CMU_ADD_LIBPATH_TO([$with_bdb_lib], [LDFLAGS]) m4trace:configure.in:205: -1- CMU_ADD_LIBPATH_TO([$with_bdb_lib], [BDB_LIBADD]) m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... cmulocal/berkdb.m4:204: CYRUS_BERKELEY_DB_CHK_LIB is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/berkdb.m4:265: CYRUS_BERKELEY_DB_CHK is expanded from... configure.in:205: the top level]) m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... cmulocal/berkdb.m4:204: CYRUS_BERKELEY_DB_CHK_LIB is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/berkdb.m4:265: CYRUS_BERKELEY_DB_CHK is expanded from... @@ -2191,9 +2191,9 @@ m4trace:configure.in:257: -1- CMU_ADD_LIBPATH_TO([$with_mysql_lib], [LDFLAGS]) m4trace:configure.in:257: -1- CMU_ADD_LIBPATH_TO([$with_mysql_lib], [MYSQL_LIBADD]) m4trace:configure.in:257: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... cmulocal/sql.m4:16: CYRUS_MYSQL_CHK_LIB is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/sql.m4:55: CYRUS_MYSQL_CHK is expanded from... @@ -2209,9 +2209,9 @@ m4trace:configure.in:301: -1- CMU_ADD_LIBPATH_TO([$with_pgsql_lib], [LDFLAGS]) m4trace:configure.in:301: -1- CMU_ADD_LIBPATH_TO([$with_pgsql_lib], [PGSQL_LIBADD]) m4trace:configure.in:301: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... cmulocal/sql.m4:90: CYRUS_PGSQL_CHK_LIB is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/sql.m4:129: CYRUS_PGSQL_CHK is expanded from... @@ -2227,9 +2227,9 @@ m4trace:configure.in:345: -1- CMU_ADD_LIBPATH_TO([$with_sqlite_lib], [LDFLAGS]) m4trace:configure.in:345: -1- CMU_ADD_LIBPATH_TO([$with_sqlite_lib], [SQLITE_LIBADD]) m4trace:configure.in:345: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... cmulocal/sql.m4:164: CYRUS_SQLITE_CHK_LIB is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/sql.m4:203: CYRUS_SQLITE_CHK is expanded from... @@ -2253,7 +2253,7 @@ m4trace:configure.in:401: -1- m4_pattern_allow([^YYTEXT_POINTER$]) m4trace:configure.in:402: -1- m4_pattern_allow([^HAVE_LIBFL$]) m4trace:configure.in:408: -2- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... configure.in:408: the top level]) m4trace:configure.in:420: -1- m4_pattern_allow([^ENABLE_REGEX$]) m4trace:configure.in:421: -1- m4_pattern_allow([^HAVE_PCREPOSIX_H$]) @@ -2264,7 +2264,7 @@ m4trace:configure.in:442: -2- m4_pattern_allow([^HAS_STRERROR$]) m4trace:configure.in:443: -2- m4_pattern_allow([^NEED_SYS_ERRLIST$]) m4trace:configure.in:442: -1- _m4_warn([obsolete], [The macro `AC_FUNC_CHECK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/functions.m4:149: AC_FUNC_CHECK is expanded from... +You should run autoupdate.], [../../lib/autoconf/functions.m4:156: AC_FUNC_CHECK is expanded from... configure.in:442: the top level]) m4trace:configure.in:446: -1- m4_pattern_allow([^HAVE_SYS_RESOURCE_H$]) m4trace:configure.in:447: -1- m4_pattern_allow([^HAVE_SETRLIMIT$]) @@ -2274,37 +2274,37 @@ m4trace:configure.in:458: -2- m4_pattern_allow([^HAVE_STRUCT_SOCKADDR_STORAGE$]) m4trace:configure.in:459: -2- m4_pattern_allow([^HAVE_RLIM_T$]) m4trace:configure.in:477: -2- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... configure.in:477: the top level]) m4trace:configure.in:490: -2- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... configure.in:490: the top level]) m4trace:configure.in:501: -2- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... configure.in:501: the top level]) m4trace:configure.in:511: -1- m4_pattern_allow([^SPT_TYPE$]) m4trace:configure.in:515: -2- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... configure.in:515: the top level]) m4trace:configure.in:523: -1- m4_pattern_allow([^WITH_NONBLOCK$]) m4trace:configure.in:527: -2- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2602: AC_TRY_COMPILE is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... configure.in:527: the top level]) m4trace:configure.in:532: -1- m4_pattern_allow([^WITH_GMTOFF$]) m4trace:configure.in:535: -2- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2752: AC_TRY_RUN is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... configure.in:535: the top level]) m4trace:configure.in:566: -2- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2752: AC_TRY_RUN is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... configure.in:566: the top level]) m4trace:configure.in:603: -1- m4_pattern_allow([^WITH_MAP$]) m4trace:configure.in:604: -1- _m4_warn([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:34: AC_ERROR is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/general.m4:1482: AC_ARG_WITH is expanded from... configure.in:604: the top level]) m4trace:configure.in:614: -1- m4_pattern_allow([^WITH_LOCK$]) @@ -2315,9 +2315,9 @@ m4trace:configure.in:665: -1- m4_pattern_allow([^AFSPTS_USE_KRB5$]) m4trace:configure.in:675: -1- CMU_ADD_LIBPATH_TO([/usr/ucblib], [AFS_LDFLAGS]) m4trace:configure.in:684: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... configure.in:684: the top level]) m4trace:configure.in:707: -1- m4_pattern_allow([^AFS_LIBS$]) m4trace:configure.in:708: -1- m4_pattern_allow([^AFS_LDFLAGS$]) @@ -2377,13 +2377,13 @@ m4trace:configure.in:1029: -1- m4_pattern_allow([^HAVE_ET_COM_ERR_H$]) m4trace:configure.in:1029: -1- _m4_warn([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:34: AC_ERROR is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/libs.m4:100: AC_CHECK_LIB is expanded from... configure.in:1029: the top level]) m4trace:configure.in:1029: -1- m4_pattern_allow([^COMPILE_ET$]) @@ -2394,7 +2394,7 @@ m4trace:configure.in:1092: -1- m4_pattern_allow([^COM_ERR_LDFLAGS$]) m4trace:configure.in:1093: -1- m4_pattern_allow([^COM_ERR_CPPFLAGS$]) m4trace:configure.in:1096: -2- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... configure.in:1096: the top level]) m4trace:configure.in:1114: -1- m4_pattern_allow([^SYSLOG_FACILITY$]) m4trace:configure.in:1118: -1- m4_pattern_allow([^HAVE_GETDTABLESIZE$]) @@ -2440,10 +2440,10 @@ configure.in:1145: the top level]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_WARN' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:33: AC_WARN is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/sasl2.m4:7: SASL_GSSAPI_CHK is expanded from... @@ -2470,8 +2470,8 @@ m4trace:configure.in:1145: -1- m4_pattern_allow([^HAVE_GSS_C_NT_HOSTBASED_SERVICE$]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_WARN' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:33: AC_WARN is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2526: AC_EGREP_CPP is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2539: AC_EGREP_CPP is expanded from... cmulocal/sasl2.m4:7: SASL_GSSAPI_CHK is expanded from... cmulocal/sasl2.m4:289: CMU_SASL2 is expanded from... cmulocal/sasl2.m4:410: CMU_SASL2_REQUIRED is expanded from... @@ -2482,8 +2482,8 @@ m4trace:configure.in:1145: -1- m4_pattern_allow([^HAVE_GSS_C_NT_USER_NAME$]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_WARN' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:33: AC_WARN is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2526: AC_EGREP_CPP is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2539: AC_EGREP_CPP is expanded from... cmulocal/sasl2.m4:7: SASL_GSSAPI_CHK is expanded from... cmulocal/sasl2.m4:289: CMU_SASL2 is expanded from... cmulocal/sasl2.m4:410: CMU_SASL2_REQUIRED is expanded from... @@ -2510,10 +2510,10 @@ configure.in:1145: the top level]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:34: AC_ERROR is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/sasl2.m4:289: CMU_SASL2 is expanded from... @@ -2532,15 +2532,15 @@ cmulocal/sasl2.m4:420: CMU_SASL2_REQUIRE_VER is expanded from... configure.in:1145: the top level]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... cmulocal/sasl2.m4:420: CMU_SASL2_REQUIRE_VER is expanded from... configure.in:1145: the top level]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:34: AC_ERROR is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2491: _AC_PREPROC_IFELSE is expanded from... -../../lib/autoconf/general.m4:2506: AC_PREPROC_IFELSE is expanded from... -../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2504: _AC_PREPROC_IFELSE is expanded from... +../../lib/autoconf/general.m4:2519: AC_PREPROC_IFELSE is expanded from... +../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... cmulocal/sasl2.m4:420: CMU_SASL2_REQUIRE_VER is expanded from... configure.in:1145: the top level]) m4trace:configure.in:1146: -1- CMU_SASL2_CHECKAPOP_REQUIRED diff -Nru cyrus-imapd-2.4-2.4.9/autom4te.cache/traces.1 cyrus-imapd-2.4-2.4.12/autom4te.cache/traces.1 --- cyrus-imapd-2.4-2.4.9/autom4te.cache/traces.1 2011-06-21 19:51:33.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/autom4te.cache/traces.1 2011-10-04 20:03:48.000000000 +0000 @@ -443,9 +443,9 @@ m4trace:configure.in:115: -1- AH_OUTPUT([AC_APPLE_UNIVERSAL_BUILD], [/* Define if building universal (internal helper macro) */ @%:@undef AC_APPLE_UNIVERSAL_BUILD]) m4trace:configure.in:118: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2602: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... cmulocal/c-attribute.m4:9: CMU_C___ATTRIBUTE__ is expanded from... configure.in:118: the top level]) m4trace:configure.in:118: -1- AC_DEFINE_TRACE_LITERAL([HAVE___ATTRIBUTE__]) @@ -453,27 +453,27 @@ m4trace:configure.in:118: -1- AH_OUTPUT([HAVE___ATTRIBUTE__], [/* define if your compiler has __attribute__ */ @%:@undef HAVE___ATTRIBUTE__]) m4trace:configure.in:119: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2602: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... cmulocal/c-fpic.m4:9: CMU_C_FPIC is expanded from... configure.in:119: the top level]) m4trace:configure.in:122: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2040: AC_CACHE_CHECK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... cmulocal/cyrus.m4:33: CMU_GUESS_RUNPATH_SWITCH is expanded from... configure.in:122: the top level]) m4trace:configure.in:122: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2649: _AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2666: AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2040: AC_CACHE_CHECK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2662: _AC_LINK_IFELSE is expanded from... +../../lib/autoconf/general.m4:2679: AC_LINK_IFELSE is expanded from... +../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... cmulocal/cyrus.m4:33: CMU_GUESS_RUNPATH_SWITCH is expanded from... configure.in:122: the top level]) m4trace:configure.in:124: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ @@ -488,34 +488,34 @@ @%:@undef HAVE_MEMMOVE]) m4trace:configure.in:125: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MEMMOVE]) m4trace:configure.in:125: -1- m4_pattern_allow([^HAVE_MEMMOVE$]) -m4trace:configure.in:125: -1- AC_LIBSOURCE([memmove.c]) m4trace:configure.in:125: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS memmove.$ac_objext"]) m4trace:configure.in:125: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.in:125: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.in:125: -1- AC_LIBSOURCE([memmove.c]) m4trace:configure.in:125: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ @%:@undef HAVE_STRCASECMP]) m4trace:configure.in:125: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCASECMP]) m4trace:configure.in:125: -1- m4_pattern_allow([^HAVE_STRCASECMP$]) -m4trace:configure.in:125: -1- AC_LIBSOURCE([strcasecmp.c]) m4trace:configure.in:125: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strcasecmp.$ac_objext"]) m4trace:configure.in:125: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.in:125: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.in:125: -1- AC_LIBSOURCE([strcasecmp.c]) m4trace:configure.in:125: -1- AH_OUTPUT([HAVE_FTRUNCATE], [/* Define to 1 if you have the `ftruncate\' function. */ @%:@undef HAVE_FTRUNCATE]) m4trace:configure.in:125: -1- AC_DEFINE_TRACE_LITERAL([HAVE_FTRUNCATE]) m4trace:configure.in:125: -1- m4_pattern_allow([^HAVE_FTRUNCATE$]) -m4trace:configure.in:125: -1- AC_LIBSOURCE([ftruncate.c]) m4trace:configure.in:125: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS ftruncate.$ac_objext"]) m4trace:configure.in:125: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.in:125: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.in:125: -1- AC_LIBSOURCE([ftruncate.c]) m4trace:configure.in:125: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */ @%:@undef HAVE_STRERROR]) m4trace:configure.in:125: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRERROR]) m4trace:configure.in:125: -1- m4_pattern_allow([^HAVE_STRERROR$]) -m4trace:configure.in:125: -1- AC_LIBSOURCE([strerror.c]) m4trace:configure.in:125: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strerror.$ac_objext"]) m4trace:configure.in:125: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.in:125: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.in:125: -1- AC_LIBSOURCE([strerror.c]) m4trace:configure.in:126: -1- AH_OUTPUT([HAVE_STRLCAT], [/* Define to 1 if you have the `strlcat\' function. */ @%:@undef HAVE_STRLCAT]) m4trace:configure.in:126: -1- AH_OUTPUT([HAVE_STRLCPY], [/* Define to 1 if you have the `strlcpy\' function. */ @@ -542,8 +542,8 @@ m4trace:configure.in:131: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPASSPHRASE]) m4trace:configure.in:131: -1- m4_pattern_allow([^HAVE_GETPASSPHRASE$]) m4trace:configure.in:134: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from... cmulocal/bsd_sockets.m4:9: CMU_SOCKETS is expanded from... configure.in:134: the top level]) @@ -575,9 +575,9 @@ m4trace:configure.in:148: -1- AH_OUTPUT([HAVE_GETADDRINFO], [/* Do we have a getaddrinfo? */ @%:@undef HAVE_GETADDRINFO]) m4trace:configure.in:156: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2602: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... cmulocal/ipv6.m4:66: IPv6_CHECK_SS_FAMILY is expanded from... configure.in:156: the top level]) m4trace:configure.in:156: -2- AC_DEFINE_TRACE_LITERAL([HAVE_SS_FAMILY]) @@ -585,9 +585,9 @@ m4trace:configure.in:156: -2- AH_OUTPUT([HAVE_SS_FAMILY], [/* Is there an ss_family in sockaddr_storage? */ @%:@undef HAVE_SS_FAMILY]) m4trace:configure.in:157: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2602: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... cmulocal/ipv6.m4:82: IPv6_CHECK_SA_LEN is expanded from... configure.in:157: the top level]) m4trace:configure.in:157: -2- AC_DEFINE_TRACE_LITERAL([HAVE_SOCKADDR_SA_LEN]) @@ -652,17 +652,17 @@ m4trace:configure.in:172: -1- AH_OUTPUT([HAVE_DOPRNT], [/* Define to 1 if you don\'t have `vprintf\' but do have `_doprnt.\' */ @%:@undef HAVE_DOPRNT]) m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... cmulocal/berkdb.m4:204: CYRUS_BERKELEY_DB_CHK_LIB is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/berkdb.m4:265: CYRUS_BERKELEY_DB_CHK is expanded from... configure.in:205: the top level]) m4trace:configure.in:205: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... cmulocal/berkdb.m4:204: CYRUS_BERKELEY_DB_CHK_LIB is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/berkdb.m4:265: CYRUS_BERKELEY_DB_CHK is expanded from... @@ -681,9 +681,9 @@ m4trace:configure.in:225: -1- AH_OUTPUT([HAVE_BDB], [/* Build in Berkeley DB support? */ @%:@undef HAVE_BDB]) m4trace:configure.in:257: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... cmulocal/sql.m4:16: CYRUS_MYSQL_CHK_LIB is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/sql.m4:55: CYRUS_MYSQL_CHK is expanded from... @@ -696,9 +696,9 @@ m4trace:configure.in:273: -1- AH_OUTPUT([HAVE_MYSQL], [/* Build in MySQL support? */ @%:@undef HAVE_MYSQL]) m4trace:configure.in:301: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... cmulocal/sql.m4:90: CYRUS_PGSQL_CHK_LIB is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/sql.m4:129: CYRUS_PGSQL_CHK is expanded from... @@ -711,9 +711,9 @@ m4trace:configure.in:317: -1- AH_OUTPUT([HAVE_PGSQL], [/* Build in PgSQL support? */ @%:@undef HAVE_PGSQL]) m4trace:configure.in:345: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... cmulocal/sql.m4:164: CYRUS_SQLITE_CHK_LIB is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/sql.m4:203: CYRUS_SQLITE_CHK is expanded from... @@ -769,7 +769,7 @@ m4trace:configure.in:402: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBFL]) m4trace:configure.in:402: -1- m4_pattern_allow([^HAVE_LIBFL$]) m4trace:configure.in:408: -2- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... configure.in:408: the top level]) m4trace:configure.in:420: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_REGEX]) m4trace:configure.in:420: -1- m4_pattern_allow([^ENABLE_REGEX$]) @@ -803,7 +803,7 @@ m4trace:configure.in:443: -2- AH_OUTPUT([NEED_SYS_ERRLIST], [/* Do we have a sys_errlist? */ @%:@undef NEED_SYS_ERRLIST]) m4trace:configure.in:442: -1- _m4_warn([obsolete], [The macro `AC_FUNC_CHECK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/functions.m4:149: AC_FUNC_CHECK is expanded from... +You should run autoupdate.], [../../lib/autoconf/functions.m4:156: AC_FUNC_CHECK is expanded from... configure.in:442: the top level]) m4trace:configure.in:446: -1- AH_OUTPUT([HAVE_SYS_RESOURCE_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_SYS_RESOURCE_H]) @@ -838,46 +838,46 @@ m4trace:configure.in:459: -2- AH_OUTPUT([HAVE_RLIM_T], [/* Do we have an rlim_t? */ @%:@undef HAVE_RLIM_T]) m4trace:configure.in:477: -2- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... configure.in:477: the top level]) m4trace:configure.in:490: -2- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... configure.in:490: the top level]) m4trace:configure.in:501: -2- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... configure.in:501: the top level]) m4trace:configure.in:511: -1- AC_DEFINE_TRACE_LITERAL([SPT_TYPE]) m4trace:configure.in:511: -1- m4_pattern_allow([^SPT_TYPE$]) m4trace:configure.in:511: -1- AH_OUTPUT([SPT_TYPE], [/* Do we already have setproctitle? */ @%:@undef SPT_TYPE]) m4trace:configure.in:515: -2- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... configure.in:515: the top level]) m4trace:configure.in:523: -1- AC_SUBST([WITH_NONBLOCK]) m4trace:configure.in:523: -1- AC_SUBST_TRACE([WITH_NONBLOCK]) m4trace:configure.in:523: -1- m4_pattern_allow([^WITH_NONBLOCK$]) m4trace:configure.in:527: -2- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2602: AC_TRY_COMPILE is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... configure.in:527: the top level]) m4trace:configure.in:532: -1- AC_SUBST([WITH_GMTOFF]) m4trace:configure.in:532: -1- AC_SUBST_TRACE([WITH_GMTOFF]) m4trace:configure.in:532: -1- m4_pattern_allow([^WITH_GMTOFF$]) m4trace:configure.in:535: -2- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2752: AC_TRY_RUN is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... configure.in:535: the top level]) m4trace:configure.in:566: -2- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2752: AC_TRY_RUN is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... configure.in:566: the top level]) m4trace:configure.in:603: -1- AC_SUBST([WITH_MAP]) m4trace:configure.in:603: -1- AC_SUBST_TRACE([WITH_MAP]) m4trace:configure.in:603: -1- m4_pattern_allow([^WITH_MAP$]) m4trace:configure.in:604: -1- _m4_warn([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:34: AC_ERROR is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/general.m4:1482: AC_ARG_WITH is expanded from... configure.in:604: the top level]) m4trace:configure.in:614: -1- AC_SUBST([WITH_LOCK]) @@ -899,9 +899,9 @@ m4trace:configure.in:665: -1- AH_OUTPUT([AFSPTS_USE_KRB5], [/* Should the AFS PTS plugin use krb5? */ @%:@undef AFSPTS_USE_KRB5]) m4trace:configure.in:684: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2675: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... configure.in:684: the top level]) m4trace:configure.in:707: -1- AC_SUBST([AFS_LIBS]) m4trace:configure.in:707: -1- AC_SUBST_TRACE([AFS_LIBS]) @@ -1041,13 +1041,13 @@ @%:@undef HAVE_ET_COM_ERR_H]) m4trace:configure.in:1029: -1- _m4_warn([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:34: AC_ERROR is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/libs.m4:100: AC_CHECK_LIB is expanded from... configure.in:1029: the top level]) m4trace:configure.in:1029: -1- AC_SUBST([COMPILE_ET]) @@ -1072,7 +1072,7 @@ m4trace:configure.in:1093: -1- AC_SUBST_TRACE([COM_ERR_CPPFLAGS]) m4trace:configure.in:1093: -1- m4_pattern_allow([^COM_ERR_CPPFLAGS$]) m4trace:configure.in:1096: -2- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... configure.in:1096: the top level]) m4trace:configure.in:1114: -1- AC_DEFINE_TRACE_LITERAL([SYSLOG_FACILITY]) m4trace:configure.in:1114: -1- m4_pattern_allow([^SYSLOG_FACILITY$]) @@ -1082,10 +1082,10 @@ @%:@undef HAVE_GETDTABLESIZE]) m4trace:configure.in:1118: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETDTABLESIZE]) m4trace:configure.in:1118: -1- m4_pattern_allow([^HAVE_GETDTABLESIZE$]) -m4trace:configure.in:1118: -1- AC_LIBSOURCE([getdtablesize.c]) m4trace:configure.in:1118: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS getdtablesize.$ac_objext"]) m4trace:configure.in:1118: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.in:1118: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.in:1118: -1- AC_LIBSOURCE([getdtablesize.c]) m4trace:configure.in:1131: -2- AC_DEFINE_TRACE_LITERAL([OLD_SIEVE_SERVICE_NAME]) m4trace:configure.in:1131: -2- m4_pattern_allow([^OLD_SIEVE_SERVICE_NAME$]) m4trace:configure.in:1131: -2- AH_OUTPUT([OLD_SIEVE_SERVICE_NAME], [/* Use "imap" as sieve service name? */ @@ -1133,10 +1133,10 @@ configure.in:1145: the top level]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_WARN' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:33: AC_WARN is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/sasl2.m4:7: SASL_GSSAPI_CHK is expanded from... @@ -1172,8 +1172,8 @@ @%:@undef HAVE_GSS_C_NT_HOSTBASED_SERVICE]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_WARN' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:33: AC_WARN is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2526: AC_EGREP_CPP is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2539: AC_EGREP_CPP is expanded from... cmulocal/sasl2.m4:7: SASL_GSSAPI_CHK is expanded from... cmulocal/sasl2.m4:289: CMU_SASL2 is expanded from... cmulocal/sasl2.m4:410: CMU_SASL2_REQUIRED is expanded from... @@ -1193,8 +1193,8 @@ @%:@undef HAVE_GSS_C_NT_USER_NAME]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_WARN' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:33: AC_WARN is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2526: AC_EGREP_CPP is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2539: AC_EGREP_CPP is expanded from... cmulocal/sasl2.m4:7: SASL_GSSAPI_CHK is expanded from... cmulocal/sasl2.m4:289: CMU_SASL2 is expanded from... cmulocal/sasl2.m4:410: CMU_SASL2_REQUIRED is expanded from... @@ -1235,10 +1235,10 @@ configure.in:1145: the top level]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:34: AC_ERROR is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... ../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... ../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... cmulocal/sasl2.m4:289: CMU_SASL2 is expanded from... @@ -1263,15 +1263,15 @@ cmulocal/sasl2.m4:420: CMU_SASL2_REQUIRE_VER is expanded from... configure.in:1145: the top level]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... cmulocal/sasl2.m4:420: CMU_SASL2_REQUIRE_VER is expanded from... configure.in:1145: the top level]) m4trace:configure.in:1145: -1- _m4_warn([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.], [../../lib/autoconf/oldnames.m4:34: AC_ERROR is expanded from... -../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from... -../../lib/autoconf/general.m4:2491: _AC_PREPROC_IFELSE is expanded from... -../../lib/autoconf/general.m4:2506: AC_PREPROC_IFELSE is expanded from... -../../lib/autoconf/general.m4:2517: AC_TRY_CPP is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2504: _AC_PREPROC_IFELSE is expanded from... +../../lib/autoconf/general.m4:2519: AC_PREPROC_IFELSE is expanded from... +../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from... cmulocal/sasl2.m4:420: CMU_SASL2_REQUIRE_VER is expanded from... configure.in:1145: the top level]) m4trace:configure.in:1146: -1- AC_DEFINE_TRACE_LITERAL([HAVE_APOP]) diff -Nru cyrus-imapd-2.4-2.4.9/configure cyrus-imapd-2.4-2.4.12/configure --- cyrus-imapd-2.4-2.4.9/configure 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/configure 2011-10-04 20:03:49.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67. +# Generated by GNU Autoconf 2.68. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -89,6 +89,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -214,11 +215,18 @@ # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -1196,7 +1204,7 @@ $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} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1477,8 +1485,9 @@ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor - YACC The `Yet Another C Compiler' implementation to use. Defaults to - the first program found out of: `bison -y', `byacc', `yacc'. + YACC The `Yet Another Compiler Compiler' implementation to use. + Defaults to the first program found out of: `bison -y', `byacc', + `yacc'. YFLAGS The list of arguments that will be passed by default to $YACC. This script will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications. @@ -1550,7 +1559,7 @@ if $ac_init_version; then cat <<\_ACEOF configure -generated by GNU Autoconf 2.67 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1596,7 +1605,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -1633,7 +1642,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -1646,10 +1655,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1712,7 +1721,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1721,7 +1730,7 @@ { $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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel @@ -1762,7 +1771,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run @@ -1776,7 +1785,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1794,7 +1803,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -1839,7 +1848,7 @@ # 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link @@ -2017,7 +2026,7 @@ rm -f conftest.val fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_compute_int @@ -2030,7 +2039,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2085,7 +2094,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func @@ -2098,7 +2107,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } -if eval "test \"\${$4+set}\"" = set; then : +if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2142,7 +2151,7 @@ eval ac_res=\$$4 { $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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member @@ -2157,7 +2166,7 @@ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2188,7 +2197,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl cat >config.log <<_ACEOF @@ -2196,7 +2205,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2454,7 +2463,7 @@ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi done @@ -2581,7 +2590,7 @@ { $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 : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias @@ -2597,7 +2606,7 @@ $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -2615,7 +2624,7 @@ { $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 : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then @@ -2630,7 +2639,7 @@ $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -2648,7 +2657,7 @@ { $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 : +if ${ac_cv_target+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then @@ -2663,7 +2672,7 @@ $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' @@ -2702,7 +2711,7 @@ set dummy makedepend; 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_MAKEDEPEND+set}" = set; then : +if ${ac_cv_prog_MAKEDEPEND+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MAKEDEPEND"; then @@ -2820,7 +2829,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2860,7 +2869,7 @@ 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -2913,7 +2922,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2953,7 +2962,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3012,7 +3021,7 @@ 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3056,7 +3065,7 @@ 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3111,7 +3120,7 @@ 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 ; } +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 @@ -3226,7 +3235,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -3269,7 +3278,7 @@ { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 @@ -3328,7 +3337,7 @@ $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi fi fi @@ -3339,7 +3348,7 @@ ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3380,7 +3389,7 @@ { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -3390,7 +3399,7 @@ 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 : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3427,7 +3436,7 @@ 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 : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3505,7 +3514,7 @@ 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 : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3605,7 +3614,7 @@ 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 : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -3645,7 +3654,7 @@ 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 : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -3696,7 +3705,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -3740,7 +3749,7 @@ { $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 : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3829,7 +3838,7 @@ CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -3945,7 +3954,7 @@ { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -3957,7 +3966,7 @@ { $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 : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -4020,7 +4029,7 @@ { $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 : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -4087,7 +4096,7 @@ { $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 : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4216,7 +4225,7 @@ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = x""yes; then : +if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= @@ -4238,7 +4247,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : +if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4278,7 +4287,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } -if test "${ac_cv_search_strerror+set}" = set; then : +if ${ac_cv_search_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -4312,11 +4321,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_strerror+set}" = set; then : + if ${ac_cv_search_strerror+:} false; then : break fi done -if test "${ac_cv_search_strerror+set}" = set; then : +if ${ac_cv_search_strerror+:} false; then : else ac_cv_search_strerror=no @@ -4338,7 +4347,7 @@ 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 : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -4376,7 +4385,7 @@ { $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 : +if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4456,7 +4465,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5 $as_echo_n "checking for long file names... " >&6; } -if test "${ac_cv_sys_long_file_names+set}" = set; then : +if ${ac_cv_sys_long_file_names+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_long_file_names=yes @@ -4499,7 +4508,7 @@ 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 : +if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no @@ -4546,7 +4555,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } -if test "${ac_cv_sizeof_int+set}" = set; then : +if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : @@ -4556,7 +4565,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi @@ -4579,7 +4588,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : +if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : @@ -4589,7 +4598,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi @@ -4612,7 +4621,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 $as_echo_n "checking size of size_t... " >&6; } -if test "${ac_cv_sizeof_size_t+set}" = set; then : +if ${ac_cv_sizeof_size_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : @@ -4622,7 +4631,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (size_t) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_size_t=0 fi @@ -4645,7 +4654,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 $as_echo_n "checking size of off_t... " >&6; } -if test "${ac_cv_sizeof_off_t+set}" = set; then : +if ${ac_cv_sizeof_off_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : @@ -4655,7 +4664,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (off_t) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_off_t=0 fi @@ -4679,7 +4688,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long int" >&5 $as_echo_n "checking size of long long int... " >&6; } -if test "${ac_cv_sizeof_long_long_int+set}" = set; then : +if ${ac_cv_sizeof_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long int))" "ac_cv_sizeof_long_long_int" "$ac_includes_default"; then : @@ -4689,7 +4698,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long long int) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long_int=0 fi @@ -4712,7 +4721,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long long int" >&5 $as_echo_n "checking size of unsigned long long int... " >&6; } -if test "${ac_cv_sizeof_unsigned_long_long_int+set}" = set; then : +if ${ac_cv_sizeof_unsigned_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long long int))" "ac_cv_sizeof_unsigned_long_long_int" "$ac_includes_default"; then : @@ -4722,7 +4731,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned long long int) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_long_long_int=0 fi @@ -4746,7 +4755,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if test "${ac_cv_c_bigendian+set}" = set; then : +if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown @@ -4965,7 +4974,7 @@ ;; #( *) as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac fi @@ -4973,7 +4982,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__" >&5 $as_echo_n "checking for __attribute__... " >&6; } -if test "${ac_cv___attribute__+set}" = set; then : +if ${ac_cv___attribute__+:} false; then : $as_echo_n "(cached) " >&6 else @@ -5017,7 +5026,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports -fPIC" >&5 $as_echo_n "checking if compiler supports -fPIC... " >&6; } -if test "${ac_cv_fpic+set}" = set; then : +if ${ac_cv_fpic+:} false; then : $as_echo_n "(cached) " >&6 else @@ -5065,7 +5074,7 @@ # CMU GUESS RUNPATH SWITCH { $as_echo "$as_me:${as_lineno-$LINENO}: checking for runpath switch" >&5 $as_echo_n "checking for runpath switch... " >&6; } -if test "${andrew_cv_runpath_switch+set}" = set; then : +if ${andrew_cv_runpath_switch+:} false; then : $as_echo_n "(cached) " >&6 else @@ -5130,7 +5139,7 @@ done ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove" -if test "x$ac_cv_func_memmove" = x""yes; then : +if test "x$ac_cv_func_memmove" = xyes; then : $as_echo "#define HAVE_MEMMOVE 1" >>confdefs.h else @@ -5143,7 +5152,7 @@ fi ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" -if test "x$ac_cv_func_strcasecmp" = x""yes; then : +if test "x$ac_cv_func_strcasecmp" = xyes; then : $as_echo "#define HAVE_STRCASECMP 1" >>confdefs.h else @@ -5156,7 +5165,7 @@ fi ac_fn_c_check_func "$LINENO" "ftruncate" "ac_cv_func_ftruncate" -if test "x$ac_cv_func_ftruncate" = x""yes; then : +if test "x$ac_cv_func_ftruncate" = xyes; then : $as_echo "#define HAVE_FTRUNCATE 1" >>confdefs.h else @@ -5169,7 +5178,7 @@ fi ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" -if test "x$ac_cv_func_strerror" = x""yes; then : +if test "x$ac_cv_func_strerror" = xyes; then : $as_echo "#define HAVE_STRERROR 1" >>confdefs.h else @@ -5199,7 +5208,7 @@ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval "test \"\${$as_ac_Header+set}\"" = set; then : +if eval \${$as_ac_Header+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5239,7 +5248,7 @@ if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -5273,11 +5282,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then : + if ${ac_cv_search_opendir+:} false; then : break fi done -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no @@ -5296,7 +5305,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -5330,11 +5339,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then : + if ${ac_cv_search_opendir+:} false; then : break fi done -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no @@ -5356,7 +5365,7 @@ for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = x""yes; then : +if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF @@ -5368,7 +5377,7 @@ for ac_func in getpassphrase do : ac_fn_c_check_func "$LINENO" "getpassphrase" "ac_cv_func_getpassphrase" -if test "x$ac_cv_func_getpassphrase" = x""yes; then : +if test "x$ac_cv_func_getpassphrase" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPASSPHRASE 1 _ACEOF @@ -5381,12 +5390,12 @@ save_LIBS="$LIBS" LIB_SOCKET="" ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" -if test "x$ac_cv_func_connect" = x""yes; then : +if test "x$ac_cv_func_connect" = xyes; then : : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5420,13 +5429,13 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : LIB_SOCKET="-lnsl $LIB_SOCKET" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 $as_echo_n "checking for connect in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_connect+set}" = set; then : +if ${ac_cv_lib_socket_connect+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5460,7 +5469,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 $as_echo "$ac_cv_lib_socket_connect" >&6; } -if test "x$ac_cv_lib_socket_connect" = x""yes; then : +if test "x$ac_cv_lib_socket_connect" = xyes; then : LIB_SOCKET="-lsocket $LIB_SOCKET" fi @@ -5469,7 +5478,7 @@ LIBS="$LIB_SOCKET $save_LIBS" ac_fn_c_check_func "$LINENO" "res_search" "ac_cv_func_res_search" -if test "x$ac_cv_func_res_search" = x""yes; then : +if test "x$ac_cv_func_res_search" = xyes; then : : else LIBS="-lresolv $LIB_SOCKET $save_LIBS" @@ -5525,14 +5534,14 @@ cyrus_cv_getaddrinfo=yes ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo" -if test "x$ac_cv_func_getaddrinfo" = x""yes; then : +if test "x$ac_cv_func_getaddrinfo" = xyes; then : ac_cv_lib_socket_getaddrinfo=no ac_cv_lib_inet6_getaddrinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -lsocket" >&5 $as_echo_n "checking for getaddrinfo in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_getaddrinfo+set}" = set; then : +if ${ac_cv_lib_socket_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5566,14 +5575,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_getaddrinfo" >&5 $as_echo "$ac_cv_lib_socket_getaddrinfo" >&6; } -if test "x$ac_cv_lib_socket_getaddrinfo" = x""yes; then : +if test "x$ac_cv_lib_socket_getaddrinfo" = xyes; then : LIBS="$LIBS -lsocket" ac_cv_lib_inet6_getaddrinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system has IPv6 directory" >&5 $as_echo_n "checking whether your system has IPv6 directory... " >&6; } - if test "${ipv6_cv_dir+set}" = set; then : + if ${ipv6_cv_dir+:} false; then : $as_echo_n "(cached) " >&6 else for ipv6_cv_dir in /usr/local/v6 /usr/inet6 no; do @@ -5594,7 +5603,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -linet6" >&5 $as_echo_n "checking for getaddrinfo in -linet6... " >&6; } -if test "${ac_cv_lib_inet6_getaddrinfo+set}" = set; then : +if ${ac_cv_lib_inet6_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5628,7 +5637,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inet6_getaddrinfo" >&5 $as_echo "$ac_cv_lib_inet6_getaddrinfo" >&6; } -if test "x$ac_cv_lib_inet6_getaddrinfo" = x""yes; then : +if test "x$ac_cv_lib_inet6_getaddrinfo" = xyes; then : if test $ipv6_libinet6 = no; then ipv6_libinet6=yes LIBS="$LIBS -linet6" @@ -5679,14 +5688,14 @@ if test $ipv6_cv_getaddrinfo = yes; then ac_fn_c_check_func "$LINENO" "gai_strerror" "ac_cv_func_gai_strerror" -if test "x$ac_cv_func_gai_strerror" = x""yes; then : +if test "x$ac_cv_func_gai_strerror" = xyes; then : ac_cv_lib_socket_gai_strerror=no ac_cv_lib_inet6_gai_strerror=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gai_strerror in -lsocket" >&5 $as_echo_n "checking for gai_strerror in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_gai_strerror+set}" = set; then : +if ${ac_cv_lib_socket_gai_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5720,14 +5729,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gai_strerror" >&5 $as_echo "$ac_cv_lib_socket_gai_strerror" >&6; } -if test "x$ac_cv_lib_socket_gai_strerror" = x""yes; then : +if test "x$ac_cv_lib_socket_gai_strerror" = xyes; then : LIBS="$LIBS -lsocket" ac_cv_lib_inet6_gai_strerror=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system has IPv6 directory" >&5 $as_echo_n "checking whether your system has IPv6 directory... " >&6; } - if test "${ipv6_cv_dir+set}" = set; then : + if ${ipv6_cv_dir+:} false; then : $as_echo_n "(cached) " >&6 else for ipv6_cv_dir in /usr/local/v6 /usr/inet6 no; do @@ -5748,7 +5757,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gai_strerror in -linet6" >&5 $as_echo_n "checking for gai_strerror in -linet6... " >&6; } -if test "${ac_cv_lib_inet6_gai_strerror+set}" = set; then : +if ${ac_cv_lib_inet6_gai_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5782,7 +5791,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inet6_gai_strerror" >&5 $as_echo "$ac_cv_lib_inet6_gai_strerror" >&6; } -if test "x$ac_cv_lib_inet6_gai_strerror" = x""yes; then : +if test "x$ac_cv_lib_inet6_gai_strerror" = xyes; then : if test $ipv6_libinet6 = no; then ipv6_libinet6=yes LIBS="$LIBS -linet6" @@ -5848,14 +5857,14 @@ cyrus_cv_getnameinfo=yes ac_fn_c_check_func "$LINENO" "getnameinfo" "ac_cv_func_getnameinfo" -if test "x$ac_cv_func_getnameinfo" = x""yes; then : +if test "x$ac_cv_func_getnameinfo" = xyes; then : ac_cv_lib_socket_getnameinfo=no ac_cv_lib_inet6_getnameinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getnameinfo in -lsocket" >&5 $as_echo_n "checking for getnameinfo in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_getnameinfo+set}" = set; then : +if ${ac_cv_lib_socket_getnameinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5889,14 +5898,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_getnameinfo" >&5 $as_echo "$ac_cv_lib_socket_getnameinfo" >&6; } -if test "x$ac_cv_lib_socket_getnameinfo" = x""yes; then : +if test "x$ac_cv_lib_socket_getnameinfo" = xyes; then : LIBS="$LIBS -lsocket" ac_cv_lib_inet6_getnameinfo=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system has IPv6 directory" >&5 $as_echo_n "checking whether your system has IPv6 directory... " >&6; } - if test "${ipv6_cv_dir+set}" = set; then : + if ${ipv6_cv_dir+:} false; then : $as_echo_n "(cached) " >&6 else for ipv6_cv_dir in /usr/local/v6 /usr/inet6 no; do @@ -5917,7 +5926,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getnameinfo in -linet6" >&5 $as_echo_n "checking for getnameinfo in -linet6... " >&6; } -if test "${ac_cv_lib_inet6_getnameinfo+set}" = set; then : +if ${ac_cv_lib_inet6_getnameinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -5951,7 +5960,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inet6_getnameinfo" >&5 $as_echo "$ac_cv_lib_inet6_getnameinfo" >&6; } -if test "x$ac_cv_lib_inet6_getnameinfo" = x""yes; then : +if test "x$ac_cv_lib_inet6_getnameinfo" = xyes; then : if test $ipv6_libinet6 = no; then ipv6_libinet6=yes LIBS="$LIBS -linet6" @@ -6014,7 +6023,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether you have ss_family in struct sockaddr_storage" >&5 $as_echo_n "checking whether you have ss_family in struct sockaddr_storage... " >&6; } -if test "${ipv6_cv_ss_family+set}" = set; then : +if ${ipv6_cv_ss_family+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6048,7 +6057,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether you have sa_len in struct sockaddr" >&5 $as_echo_n "checking whether you have sa_len in struct sockaddr... " >&6; } -if test "${ipv6_cv_sa_len+set}" = set; then : +if ${ipv6_cv_sa_len+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6085,7 +6094,7 @@ for ac_header in sys/time.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_time_h" = x""yes; then : +if test "x$ac_cv_header_sys_time_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIME_H 1 _ACEOF @@ -6096,7 +6105,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if test "${ac_cv_header_time+set}" = set; then : +if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6131,7 +6140,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if test "${ac_cv_struct_tm+set}" = set; then : +if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6168,7 +6177,7 @@ #include <$ac_cv_struct_tm> " -if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then : +if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_TM_TM_ZONE 1 @@ -6184,7 +6193,7 @@ else ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include " -if test "x$ac_cv_have_decl_tzname" = x""yes; then : +if test "x$ac_cv_have_decl_tzname" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -6196,7 +6205,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 $as_echo_n "checking for tzname... " >&6; } -if test "${ac_cv_var_tzname+set}" = set; then : +if ${ac_cv_var_tzname+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6240,13 +6249,13 @@ for ac_func in vprintf do : ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = x""yes; then : +if test "x$ac_cv_func_vprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VPRINTF 1 _ACEOF ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = x""yes; then : +if test "x$ac_cv_func__doprnt" = xyes; then : $as_echo "#define HAVE_DOPRNT 1" >>confdefs.h @@ -6326,7 +6335,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "db.h" "ac_cv_header_db_h" "$ac_includes_default" -if test "x$ac_cv_header_db_h" = x""yes; then : +if test "x$ac_cv_header_db_h" = xyes; then : BDB_SAVE_LDFLAGS=$LDFLAGS @@ -6518,7 +6527,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "mysql.h" "ac_cv_header_mysql_h" "$ac_includes_default" -if test "x$ac_cv_header_mysql_h" = x""yes; then : +if test "x$ac_cv_header_mysql_h" = xyes; then : MYSQL_SAVE_LDFLAGS=$LDFLAGS @@ -6667,7 +6676,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "libpq-fe.h" "ac_cv_header_libpq_fe_h" "$ac_includes_default" -if test "x$ac_cv_header_libpq_fe_h" = x""yes; then : +if test "x$ac_cv_header_libpq_fe_h" = xyes; then : PGSQL_SAVE_LDFLAGS=$LDFLAGS @@ -6816,7 +6825,7 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" -if test "x$ac_cv_header_sqlite3_h" = x""yes; then : +if test "x$ac_cv_header_sqlite3_h" = xyes; then : SQLITE_SAVE_LDFLAGS=$LDFLAGS @@ -6950,7 +6959,7 @@ 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_YACC+set}" = set; then : +if ${ac_cv_prog_YACC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then @@ -6993,7 +7002,7 @@ 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_LEX+set}" = set; then : +if ${ac_cv_prog_LEX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LEX"; then @@ -7063,7 +7072,7 @@ test $ac_status = 0; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 $as_echo_n "checking lex output file root... " >&6; } -if test "${ac_cv_prog_lex_root+set}" = set; then : +if ${ac_cv_prog_lex_root+:} false; then : $as_echo_n "(cached) " >&6 else @@ -7082,7 +7091,7 @@ if test -z "${LEXLIB+set}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 $as_echo_n "checking lex library... " >&6; } -if test "${ac_cv_lib_lex+set}" = set; then : +if ${ac_cv_lib_lex+:} false; then : $as_echo_n "(cached) " >&6 else @@ -7112,7 +7121,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 $as_echo_n "checking whether yytext is a pointer... " >&6; } -if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then : +if ${ac_cv_prog_lex_yytext_pointer+:} false; then : $as_echo_n "(cached) " >&6 else # POSIX says lex can declare yytext either as a pointer or an array; the @@ -7123,7 +7132,8 @@ LIBS="$LEXLIB $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#define YYTEXT_POINTER 1 + + #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : @@ -7146,7 +7156,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lfl" >&5 $as_echo_n "checking for main in -lfl... " >&6; } -if test "${ac_cv_lib_fl_main+set}" = set; then : +if ${ac_cv_lib_fl_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7174,7 +7184,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fl_main" >&5 $as_echo "$ac_cv_lib_fl_main" >&6; } -if test "x$ac_cv_lib_fl_main" = x""yes; then : +if test "x$ac_cv_lib_fl_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBFL 1 _ACEOF @@ -7186,15 +7196,15 @@ if test "$testpcre" != "no"; then ac_fn_c_check_header_mongrel "$LINENO" "pcreposix.h" "ac_cv_header_pcreposix_h" "$ac_includes_default" -if test "x$ac_cv_header_pcreposix_h" = x""yes; then : +if test "x$ac_cv_header_pcreposix_h" = xyes; then : fi - if test "$ac_cv_header_pcreposix_h" == "yes"; then + if test "$ac_cv_header_pcreposix_h" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for utf8 enabled pcre" >&5 $as_echo_n "checking for utf8 enabled pcre... " >&6; } - if test "${cyrus_cv_pcre_utf8+set}" = set; then : + if ${cyrus_cv_pcre_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7219,7 +7229,7 @@ fi fi - if test "$cyrus_cv_pcre_utf8" == "yes"; then + if test "$cyrus_cv_pcre_utf8" = "yes"; then LIBS="$LIBS -lpcre -lpcreposix"; $as_echo "#define ENABLE_REGEX /**/" >>confdefs.h @@ -7231,7 +7241,7 @@ for ac_header in rxposix.h do : ac_fn_c_check_header_mongrel "$LINENO" "rxposix.h" "ac_cv_header_rxposix_h" "$ac_includes_default" -if test "x$ac_cv_header_rxposix_h" = x""yes; then : +if test "x$ac_cv_header_rxposix_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_RXPOSIX_H 1 _ACEOF @@ -7240,7 +7250,7 @@ done - if test "$ac_cv_header_rxposix_h" == "yes"; then + if test "$ac_cv_header_rxposix_h" = "yes"; then LIBS="$LIBS -lrx" $as_echo "#define ENABLE_REGEX /**/" >>confdefs.h @@ -7248,7 +7258,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing regcomp" >&5 $as_echo_n "checking for library containing regcomp... " >&6; } -if test "${ac_cv_search_regcomp+set}" = set; then : +if ${ac_cv_search_regcomp+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -7282,11 +7292,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_regcomp+set}" = set; then : + if ${ac_cv_search_regcomp+:} false; then : break fi done -if test "${ac_cv_search_regcomp+set}" = set; then : +if ${ac_cv_search_regcomp+:} false; then : else ac_cv_search_regcomp=no @@ -7314,7 +7324,7 @@ ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" -if test "x$ac_cv_func_strerror" = x""yes; then : +if test "x$ac_cv_func_strerror" = xyes; then : $as_echo "#define HAS_STRERROR /**/" >>confdefs.h @@ -7328,7 +7338,7 @@ for ac_header in sys/resource.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_resource_h" = x""yes; then : +if test "x$ac_cv_header_sys_resource_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_RESOURCE_H 1 _ACEOF @@ -7340,7 +7350,7 @@ for ac_func in setrlimit do : ac_fn_c_check_func "$LINENO" "setrlimit" "ac_cv_func_setrlimit" -if test "x$ac_cv_func_setrlimit" = x""yes; then : +if test "x$ac_cv_func_setrlimit" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SETRLIMIT 1 _ACEOF @@ -7351,7 +7361,7 @@ for ac_func in getrlimit do : ac_fn_c_check_func "$LINENO" "getrlimit" "ac_cv_func_getrlimit" -if test "x$ac_cv_func_getrlimit" = x""yes; then : +if test "x$ac_cv_func_getrlimit" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETRLIMIT 1 _ACEOF @@ -7376,7 +7386,7 @@ for ac_func in shutdown do : ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" -if test "x$ac_cv_func_shutdown" = x""yes; then : +if test "x$ac_cv_func_shutdown" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SHUTDOWN 1 _ACEOF @@ -7427,14 +7437,14 @@ spt_type="" ac_fn_c_check_func "$LINENO" "setproctitle" "ac_cv_func_setproctitle" -if test "x$ac_cv_func_setproctitle" = x""yes; then : +if test "x$ac_cv_func_setproctitle" = xyes; then : spt_type=SPT_BUILTIN fi if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setproctitle in -lutil" >&5 $as_echo_n "checking for setproctitle in -lutil... " >&6; } -if test "${ac_cv_lib_util_setproctitle+set}" = set; then : +if ${ac_cv_lib_util_setproctitle+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7468,7 +7478,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_setproctitle" >&5 $as_echo "$ac_cv_lib_util_setproctitle" >&6; } -if test "x$ac_cv_lib_util_setproctitle" = x""yes; then : +if test "x$ac_cv_lib_util_setproctitle" = xyes; then : spt_type=SPT_BUILTIN LIBS="${LIBS} -lutil" fi @@ -7476,7 +7486,7 @@ fi if test "$spt_type" = ""; then ac_fn_c_check_header_mongrel "$LINENO" "sys/pstat.h" "ac_cv_header_sys_pstat_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_pstat_h" = x""yes; then : +if test "x$ac_cv_header_sys_pstat_h" = xyes; then : spt_type=SPT_PSTAT fi @@ -7484,7 +7494,7 @@ fi if test "$spt_type" = ""; then ac_fn_c_check_header_mongrel "$LINENO" "sys/sysnews.h" "ac_cv_header_sys_sysnews_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_sysnews_h" = x""yes; then : +if test "x$ac_cv_header_sys_sysnews_h" = xyes; then : spt_type=SPT_SYSMIPS fi @@ -7493,7 +7503,7 @@ if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PS_STRINGS" >&5 $as_echo_n "checking for PS_STRINGS... " >&6; } - if test "${cyrus_cv_sys_psstrings+set}" = set; then : + if ${cyrus_cv_sys_psstrings+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7522,7 +7532,7 @@ if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SCO" >&5 $as_echo_n "checking for SCO... " >&6; } - if test "${cyrus_cv_sys_sco+set}" = set; then : + if ${cyrus_cv_sys_sco+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7549,7 +7559,7 @@ if test "$spt_type" = ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setproctitle usability" >&5 $as_echo_n "checking for setproctitle usability... " >&6; } - if test "${cyrus_cv_sys_setproctitle+set}" = set; then : + if ${cyrus_cv_sys_setproctitle+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7583,7 +7593,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking nonblocking method" >&5 $as_echo_n "checking nonblocking method... " >&6; } -if test "${cyrus_cv_sys_nonblock+set}" = set; then : +if ${cyrus_cv_sys_nonblock+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7618,7 +7628,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking timezone GMT offset method" >&5 $as_echo_n "checking timezone GMT offset method... " >&6; } -if test "${cyrus_cv_struct_sys_gmtoff+set}" = set; then : +if ${cyrus_cv_struct_sys_gmtoff+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7649,7 +7659,7 @@ $as_echo "$WITH_GMTOFF" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared mmap" >&5 $as_echo_n "checking for shared mmap... " >&6; } -if test "${cyrus_cv_func_mmap_shared+set}" = set; then : +if ${cyrus_cv_func_mmap_shared+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -7701,7 +7711,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stupid shared mmap" >&5 $as_echo_n "checking for stupid shared mmap... " >&6; } -if test "${cyrus_cv_func_mmap_stupidshared+set}" = set; then : +if ${cyrus_cv_func_mmap_stupidshared+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -7768,12 +7778,12 @@ else ac_fn_c_check_func "$LINENO" "fcntl" "ac_cv_func_fcntl" -if test "x$ac_cv_func_fcntl" = x""yes; then : +if test "x$ac_cv_func_fcntl" = xyes; then : WITH_LOCK="fcntl" else ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock" -if test "x$ac_cv_func_flock" = x""yes; then : +if test "x$ac_cv_func_flock" = xyes; then : WITH_LOCK="flock" else @@ -7792,7 +7802,7 @@ LIB_RT="" ac_fn_c_check_func "$LINENO" "fdatasync" "ac_cv_func_fdatasync" -if test "x$ac_cv_func_fdatasync" = x""yes; then : +if test "x$ac_cv_func_fdatasync" = xyes; then : $as_echo "#define HAVE_FDATASYNC /**/" >>confdefs.h @@ -7800,7 +7810,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fdatasync in -lrt" >&5 $as_echo_n "checking for fdatasync in -lrt... " >&6; } -if test "${ac_cv_lib_rt_fdatasync+set}" = set; then : +if ${ac_cv_lib_rt_fdatasync+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7834,7 +7844,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_fdatasync" >&5 $as_echo "$ac_cv_lib_rt_fdatasync" >&6; } -if test "x$ac_cv_lib_rt_fdatasync" = x""yes; then : +if test "x$ac_cv_lib_rt_fdatasync" = xyes; then : LIB_RT="-lrt" @@ -7848,12 +7858,12 @@ cant_find_sigvec=no -if test "${cyrus_cv_sigveclib+set}" = set; then : +if ${cyrus_cv_sigveclib+:} false; then : $as_echo_n "(cached) " >&6 else ac_fn_c_check_func "$LINENO" "sigvec" "ac_cv_func_sigvec" -if test "x$ac_cv_func_sigvec" = x""yes; then : +if test "x$ac_cv_func_sigvec" = xyes; then : cyrus_cv_sigveclib="" @@ -7861,7 +7871,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigvec in -lBSD" >&5 $as_echo_n "checking for sigvec in -lBSD... " >&6; } -if test "${ac_cv_lib_BSD_sigvec+set}" = set; then : +if ${ac_cv_lib_BSD_sigvec+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7895,7 +7905,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_BSD_sigvec" >&5 $as_echo "$ac_cv_lib_BSD_sigvec" >&6; } -if test "x$ac_cv_lib_BSD_sigvec" = x""yes; then : +if test "x$ac_cv_lib_BSD_sigvec" = xyes; then : cyrus_cv_sigveclib="-lBSD" else @@ -7903,7 +7913,7 @@ LDFLAGS="-L/usr/ucblib -R/usr/ucblib $LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigvec in -lucb" >&5 $as_echo_n "checking for sigvec in -lucb... " >&6; } -if test "${ac_cv_lib_ucb_sigvec+set}" = set; then : +if ${ac_cv_lib_ucb_sigvec+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7937,7 +7947,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ucb_sigvec" >&5 $as_echo "$ac_cv_lib_ucb_sigvec" >&6; } -if test "x$ac_cv_lib_ucb_sigvec" = x""yes; then : +if test "x$ac_cv_lib_ucb_sigvec" = xyes; then : cyrus_cv_sigveclib="-lc -L/usr/ucblib -R/usr/ucblib -lucb" else @@ -8029,7 +8039,7 @@ AFS_LIBS="$AFS_LIBS -ldes" fi - if test "${cyrus_cv_afs_sigvec+set}" = set; then : + if ${cyrus_cv_afs_sigvec+:} false; then : $as_echo_n "(cached) " >&6 else @@ -8109,7 +8119,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_initialize in -lldap" >&5 $as_echo_n "checking for ldap_initialize in -lldap... " >&6; } -if test "${ac_cv_lib_ldap_ldap_initialize+set}" = set; then : +if ${ac_cv_lib_ldap_ldap_initialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8143,7 +8153,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ldap_ldap_initialize" >&5 $as_echo "$ac_cv_lib_ldap_ldap_initialize" >&6; } -if test "x$ac_cv_lib_ldap_ldap_initialize" = x""yes; then : +if test "x$ac_cv_lib_ldap_ldap_initialize" = xyes; then : $as_echo "#define HAVE_LDAP /**/" >>confdefs.h @@ -8159,7 +8169,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_initialize in -lldap" >&5 $as_echo_n "checking for ldap_initialize in -lldap... " >&6; } -if test "${ac_cv_lib_ldap_ldap_initialize+set}" = set; then : +if ${ac_cv_lib_ldap_ldap_initialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8193,7 +8203,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ldap_ldap_initialize" >&5 $as_echo "$ac_cv_lib_ldap_ldap_initialize" >&6; } -if test "x$ac_cv_lib_ldap_ldap_initialize" = x""yes; then : +if test "x$ac_cv_lib_ldap_ldap_initialize" = xyes; then : $as_echo "#define HAVE_LDAP /**/" >>confdefs.h @@ -8259,7 +8269,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 $as_echo_n "checking for res_search in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_res_search+set}" = set; then : +if ${ac_cv_lib_resolv_res_search+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8293,7 +8303,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5 $as_echo "$ac_cv_lib_resolv_res_search" >&6; } -if test "x$ac_cv_lib_resolv_res_search" = x""yes; then : +if test "x$ac_cv_lib_resolv_res_search" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBRESOLV 1 _ACEOF @@ -8319,7 +8329,7 @@ if test "$with_krbdes" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for des_ecb_encrypt in -ldes" >&5 $as_echo_n "checking for des_ecb_encrypt in -ldes... " >&6; } -if test "${ac_cv_lib_des_des_ecb_encrypt+set}" = set; then : +if ${ac_cv_lib_des_des_ecb_encrypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8353,7 +8363,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_des_des_ecb_encrypt" >&5 $as_echo "$ac_cv_lib_des_des_ecb_encrypt" >&6; } -if test "x$ac_cv_lib_des_des_ecb_encrypt" = x""yes; then : +if test "x$ac_cv_lib_des_des_ecb_encrypt" = xyes; then : if test "$with_statickrb" = "yes"; then KRB_LIBS="$with_krb/lib/libdes.a" else @@ -8369,7 +8379,7 @@ if test -d ${with_krb}; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Kerberos includes" >&5 $as_echo_n "checking for Kerberos includes... " >&6; } -if test "${cyrus_cv_krbinclude+set}" = set; then : +if ${cyrus_cv_krbinclude+:} false; then : $as_echo_n "(cached) " >&6 else @@ -8406,11 +8416,11 @@ if test "$with_des" != no; then ac_fn_c_check_header_mongrel "$LINENO" "krb.h" "ac_cv_header_krb_h" "$ac_includes_default" -if test "x$ac_cv_header_krb_h" = x""yes; then : +if test "x$ac_cv_header_krb_h" = xyes; then : as_ac_Lib=`$as_echo "ac_cv_lib_${KRBLIB}''_krb_mk_priv" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb_mk_priv in -l${KRBLIB}" >&5 $as_echo_n "checking for krb_mk_priv in -l${KRBLIB}... " >&6; } -if eval "test \"\${$as_ac_Lib+set}\"" = set; then : +if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8495,7 +8505,7 @@ LIB_RSAREF="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RSAPublicEncrypt in -lrsaref" >&5 $as_echo_n "checking for RSAPublicEncrypt in -lrsaref... " >&6; } -if test "${ac_cv_lib_rsaref_RSAPublicEncrypt+set}" = set; then : +if ${ac_cv_lib_rsaref_RSAPublicEncrypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8529,7 +8539,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rsaref_RSAPublicEncrypt" >&5 $as_echo "$ac_cv_lib_rsaref_RSAPublicEncrypt" >&6; } -if test "x$ac_cv_lib_rsaref_RSAPublicEncrypt" = x""yes; then : +if test "x$ac_cv_lib_rsaref_RSAPublicEncrypt" = xyes; then : LIB_RSAREF="-lRSAglue -lrsaref"; cmu_have_rsaref=yes else cmu_have_rsaref=no @@ -8539,7 +8549,7 @@ with_openssl="yes" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BIO_accept in -lcrypto" >&5 $as_echo_n "checking for BIO_accept in -lcrypto... " >&6; } -if test "${ac_cv_lib_crypto_BIO_accept+set}" = set; then : +if ${ac_cv_lib_crypto_BIO_accept+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8573,7 +8583,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_BIO_accept" >&5 $as_echo "$ac_cv_lib_crypto_BIO_accept" >&6; } -if test "x$ac_cv_lib_crypto_BIO_accept" = x""yes; then : +if test "x$ac_cv_lib_crypto_BIO_accept" = xyes; then : LIBS="-lcrypto $LIB_RSAREF ${LIBS}" else with_openssl="no" @@ -8581,7 +8591,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_CTX_new in -lssl" >&5 $as_echo_n "checking for SSL_CTX_new in -lssl... " >&6; } -if test "${ac_cv_lib_ssl_SSL_CTX_new+set}" = set; then : +if ${ac_cv_lib_ssl_SSL_CTX_new+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8615,7 +8625,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_CTX_new" >&5 $as_echo "$ac_cv_lib_ssl_SSL_CTX_new" >&6; } -if test "x$ac_cv_lib_ssl_SSL_CTX_new" = x""yes; then : +if test "x$ac_cv_lib_ssl_SSL_CTX_new" = xyes; then : LIBS="-lssl ${LIBS}" else with_openssl="no" @@ -8695,7 +8705,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : +if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : @@ -8705,7 +8715,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi @@ -8724,7 +8734,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking what directory libraries are found in" >&5 $as_echo_n "checking what directory libraries are found in... " >&6; } -if test "${ac_cv_cmu_lib_subdir+set}" = set; then : +if ${ac_cv_cmu_lib_subdir+:} false; then : $as_echo_n "(cached) " >&6 else test "X$with_lib_subdir" = "Xyes" && with_lib_subdir= @@ -8778,11 +8788,11 @@ with_zlib="no";; *) ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = x""yes; then : +if test "x$ac_cv_header_zlib_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for deflate in -lz" >&5 $as_echo_n "checking for deflate in -lz... " >&6; } -if test "${ac_cv_lib_z_deflate+set}" = set; then : +if ${ac_cv_lib_z_deflate+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8816,7 +8826,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_deflate" >&5 $as_echo "$ac_cv_lib_z_deflate" >&6; } -if test "x$ac_cv_lib_z_deflate" = x""yes; then : +if test "x$ac_cv_lib_z_deflate" = xyes; then : LIBS="${LIBS} -lz"; with_zlib="yes" else with_zlib="no" @@ -8865,7 +8875,7 @@ no) true;; ""|yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZInitialize in -lzephyr" >&5 $as_echo_n "checking for ZInitialize in -lzephyr... " >&6; } -if test "${ac_cv_lib_zephyr_ZInitialize+set}" = set; then : +if ${ac_cv_lib_zephyr_ZInitialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8899,7 +8909,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zephyr_ZInitialize" >&5 $as_echo "$ac_cv_lib_zephyr_ZInitialize" >&6; } -if test "x$ac_cv_lib_zephyr_ZInitialize" = x""yes; then : +if test "x$ac_cv_lib_zephyr_ZInitialize" = xyes; then : ZEPHYR_LIBS="-lzephyr" else with_zephyr="no" @@ -8966,7 +8976,7 @@ for ac_header in sys/sockio.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/sockio.h" "ac_cv_header_sys_sockio_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_sockio_h" = x""yes; then : +if test "x$ac_cv_header_sys_sockio_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_SOCKIO_H 1 _ACEOF @@ -8999,7 +9009,7 @@ # no value supplied { $as_echo "$as_me:${as_lineno-$LINENO}: checking for com_err in -lcom_err" >&5 $as_echo_n "checking for com_err in -lcom_err... " >&6; } -if test "${ac_cv_lib_com_err_com_err+set}" = set; then : +if ${ac_cv_lib_com_err_com_err+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9033,20 +9043,20 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_com_err_com_err" >&5 $as_echo "$ac_cv_lib_com_err_com_err" >&6; } -if test "x$ac_cv_lib_com_err_com_err" = x""yes; then : +if test "x$ac_cv_lib_com_err_com_err" = xyes; then : # com_err is already in library path # guess we're okay # can use system com_err with_com_err="" ac_fn_c_check_header_mongrel "$LINENO" "et/com_err.h" "ac_cv_header_et_com_err_h" "$ac_includes_default" -if test "x$ac_cv_header_et_com_err_h" = x""yes; then : +if test "x$ac_cv_header_et_com_err_h" = xyes; then : $as_echo "#define HAVE_ET_COM_ERR_H /**/" >>confdefs.h else ac_fn_c_check_header_mongrel "$LINENO" "com_err.h" "ac_cv_header_com_err_h" "$ac_includes_default" -if test "x$ac_cv_header_com_err_h" = x""yes; then : +if test "x$ac_cv_header_com_err_h" = xyes; then : else as_fn_error $? "cannot locate com_err.h" "$LINENO" 5 @@ -9060,7 +9070,7 @@ set dummy compile_et; 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_COMPILE_ET+set}" = set; then : +if ${ac_cv_path_COMPILE_ET+:} false; then : $as_echo_n "(cached) " >&6 else case $COMPILE_ET in @@ -9106,7 +9116,7 @@ set dummy /usr/local/bin/compile_et; 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_COMPILE_ET+set}" = set; then : +if ${ac_cv_path_COMPILE_ET+:} false; then : $as_echo_n "(cached) " >&6 else case $COMPILE_ET in @@ -9149,7 +9159,7 @@ set dummy /usr/bin/compile_et; 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_COMPILE_ET+set}" = set; then : +if ${ac_cv_path_COMPILE_ET+:} false; then : $as_echo_n "(cached) " >&6 else case $COMPILE_ET in @@ -9242,7 +9252,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for modern syslog" >&5 $as_echo_n "checking for modern syslog... " >&6; } -if test "${cyrus_cv_lib_syslog+set}" = set; then : +if ${cyrus_cv_lib_syslog+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -9289,7 +9299,7 @@ $as_echo "$SYSLOG_FACILITY" >&6; } ac_fn_c_check_func "$LINENO" "getdtablesize" "ac_cv_func_getdtablesize" -if test "x$ac_cv_func_getdtablesize" = x""yes; then : +if test "x$ac_cv_func_getdtablesize" = xyes; then : $as_echo "#define HAVE_GETDTABLESIZE 1" >>confdefs.h else @@ -9342,12 +9352,12 @@ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = x""yes; then : +if test "x$ac_cv_func_dlopen" = xyes; then : 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 : +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9381,7 +9391,7 @@ 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 : +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDL 1 _ACEOF @@ -9393,12 +9403,12 @@ fi ac_fn_c_check_func "$LINENO" "crypt" "ac_cv_func_crypt" -if test "x$ac_cv_func_crypt" = x""yes; then : +if test "x$ac_cv_func_crypt" = xyes; then : cmu_have_crypt=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for crypt in -lcrypt" >&5 $as_echo_n "checking for crypt in -lcrypt... " >&6; } -if test "${ac_cv_lib_crypt_crypt+set}" = set; then : +if ${ac_cv_lib_crypt_crypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9432,7 +9442,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypt_crypt" >&5 $as_echo "$ac_cv_lib_crypt_crypt" >&6; } -if test "x$ac_cv_lib_crypt_crypt" = x""yes; then : +if test "x$ac_cv_lib_crypt_crypt" = xyes; then : LIB_CRYPT="-lcrypt"; cmu_have_crypt=yes else cmu_have_crypt=no @@ -9509,11 +9519,11 @@ fi fi ac_fn_c_check_header_mongrel "$LINENO" "gssapi.h" "ac_cv_header_gssapi_h" "$ac_includes_default" -if test "x$ac_cv_header_gssapi_h" = x""yes; then : +if test "x$ac_cv_header_gssapi_h" = xyes; then : else ac_fn_c_check_header_mongrel "$LINENO" "gssapi/gssapi.h" "ac_cv_header_gssapi_gssapi_h" "$ac_includes_default" -if test "x$ac_cv_header_gssapi_gssapi_h" = x""yes; then : +if test "x$ac_cv_header_gssapi_gssapi_h" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling GSSAPI - no include files found" >&5 @@ -9546,7 +9556,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 $as_echo_n "checking for res_search in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_res_search+set}" = set; then : +if ${ac_cv_lib_resolv_res_search+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9580,7 +9590,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5 $as_echo "$ac_cv_lib_resolv_res_search" >&6; } -if test "x$ac_cv_lib_resolv_res_search" = x""yes; then : +if test "x$ac_cv_lib_resolv_res_search" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBRESOLV 1 _ACEOF @@ -9608,7 +9618,7 @@ gss_failed=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gss_unwrap in -lgssapi" >&5 $as_echo_n "checking for gss_unwrap in -lgssapi... " >&6; } -if test "${ac_cv_lib_gssapi_gss_unwrap+set}" = set; then : +if ${ac_cv_lib_gssapi_gss_unwrap+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9642,7 +9652,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssapi_gss_unwrap" >&5 $as_echo "$ac_cv_lib_gssapi_gss_unwrap" >&6; } -if test "x$ac_cv_lib_gssapi_gss_unwrap" = x""yes; then : +if test "x$ac_cv_lib_gssapi_gss_unwrap" = xyes; then : gss_impl="heimdal" else gss_failed=1 @@ -9657,7 +9667,7 @@ # check for libkrb5support first { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_getspecific in -lkrb5support" >&5 $as_echo_n "checking for krb5int_getspecific in -lkrb5support... " >&6; } -if test "${ac_cv_lib_krb5support_krb5int_getspecific+set}" = set; then : +if ${ac_cv_lib_krb5support_krb5int_getspecific+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9691,7 +9701,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5support_krb5int_getspecific" >&5 $as_echo "$ac_cv_lib_krb5support_krb5int_getspecific" >&6; } -if test "x$ac_cv_lib_krb5support_krb5int_getspecific" = x""yes; then : +if test "x$ac_cv_lib_krb5support_krb5int_getspecific" = xyes; then : K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a fi @@ -9699,7 +9709,7 @@ gss_failed=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gss_unwrap in -lgssapi_krb5" >&5 $as_echo_n "checking for gss_unwrap in -lgssapi_krb5... " >&6; } -if test "${ac_cv_lib_gssapi_krb5_gss_unwrap+set}" = set; then : +if ${ac_cv_lib_gssapi_krb5_gss_unwrap+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9733,7 +9743,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssapi_krb5_gss_unwrap" >&5 $as_echo "$ac_cv_lib_gssapi_krb5_gss_unwrap" >&6; } -if test "x$ac_cv_lib_gssapi_krb5_gss_unwrap" = x""yes; then : +if test "x$ac_cv_lib_gssapi_krb5_gss_unwrap" = xyes; then : gss_impl="mit" else gss_failed=1 @@ -9766,7 +9776,7 @@ unset ac_cv_lib_gss_csf_gss_acq_user { $as_echo "$as_me:${as_lineno-$LINENO}: checking for csf_gss_acq_user in -lgss" >&5 $as_echo_n "checking for csf_gss_acq_user in -lgss... " >&6; } -if test "${ac_cv_lib_gss_csf_gss_acq_user+set}" = set; then : +if ${ac_cv_lib_gss_csf_gss_acq_user+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9800,13 +9810,13 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gss_csf_gss_acq_user" >&5 $as_echo "$ac_cv_lib_gss_csf_gss_acq_user" >&6; } -if test "x$ac_cv_lib_gss_csf_gss_acq_user" = x""yes; then : +if test "x$ac_cv_lib_gss_csf_gss_acq_user" = xyes; then : gss_impl="cybersafe03" else unset ac_cv_lib_gss_csf_gss_acq_user; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for csf_gss_acq_user in -lgss" >&5 $as_echo_n "checking for csf_gss_acq_user in -lgss... " >&6; } -if test "${ac_cv_lib_gss_csf_gss_acq_user+set}" = set; then : +if ${ac_cv_lib_gss_csf_gss_acq_user+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9840,7 +9850,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gss_csf_gss_acq_user" >&5 $as_echo "$ac_cv_lib_gss_csf_gss_acq_user" >&6; } -if test "x$ac_cv_lib_gss_csf_gss_acq_user" = x""yes; then : +if test "x$ac_cv_lib_gss_csf_gss_acq_user" = xyes; then : gss_impl="cybersafe" else gss_failed=1 @@ -9864,7 +9874,7 @@ gss_failed=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gss_unwrap in -lgss" >&5 $as_echo_n "checking for gss_unwrap in -lgss... " >&6; } -if test "${ac_cv_lib_gss_gss_unwrap+set}" = set; then : +if ${ac_cv_lib_gss_gss_unwrap+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -9898,7 +9908,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gss_gss_unwrap" >&5 $as_echo "$ac_cv_lib_gss_gss_unwrap" >&6; } -if test "x$ac_cv_lib_gss_gss_unwrap" = x""yes; then : +if test "x$ac_cv_lib_gss_gss_unwrap" = xyes; then : gss_impl="seam" else gss_failed=1 @@ -10059,7 +10069,7 @@ $as_echo "with implementation ${gss_impl}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 $as_echo_n "checking for res_search in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_res_search+set}" = set; then : +if ${ac_cv_lib_resolv_res_search+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10093,7 +10103,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5 $as_echo "$ac_cv_lib_resolv_res_search" >&6; } -if test "x$ac_cv_lib_resolv_res_search" = x""yes; then : +if test "x$ac_cv_lib_resolv_res_search" = xyes; then : GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lresolv" fi @@ -10106,7 +10116,7 @@ for ac_func in gsskrb5_register_acceptor_identity do : ac_fn_c_check_func "$LINENO" "gsskrb5_register_acceptor_identity" "ac_cv_func_gsskrb5_register_acceptor_identity" -if test "x$ac_cv_func_gsskrb5_register_acceptor_identity" = x""yes; then : +if test "x$ac_cv_func_gsskrb5_register_acceptor_identity" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY 1 _ACEOF @@ -10171,9 +10181,9 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "sasl/sasl.h" "ac_cv_header_sasl_sasl_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_sasl_h" = x""yes; then : +if test "x$ac_cv_header_sasl_sasl_h" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "sasl/saslutil.h" "ac_cv_header_sasl_saslutil_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_saslutil_h" = x""yes; then : +if test "x$ac_cv_header_sasl_saslutil_h" = xyes; then : for i42 in lib64 lib; do if test -r ${with_staticsasl}/$i42/libsasl2.a; then ac_cv_found_sasl=yes @@ -10227,12 +10237,12 @@ # be sure to check for a SASLv2 specific function ac_fn_c_check_header_mongrel "$LINENO" "sasl/sasl.h" "ac_cv_header_sasl_sasl_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_sasl_h" = x""yes; then : +if test "x$ac_cv_header_sasl_sasl_h" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "sasl/saslutil.h" "ac_cv_header_sasl_saslutil_h" "$ac_includes_default" -if test "x$ac_cv_header_sasl_saslutil_h" = x""yes; then : +if test "x$ac_cv_header_sasl_saslutil_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prop_get in -lsasl2" >&5 $as_echo_n "checking for prop_get in -lsasl2... " >&6; } -if test "${ac_cv_lib_sasl2_prop_get+set}" = set; then : +if ${ac_cv_lib_sasl2_prop_get+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10266,7 +10276,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sasl2_prop_get" >&5 $as_echo "$ac_cv_lib_sasl2_prop_get" >&6; } -if test "x$ac_cv_lib_sasl2_prop_get" = x""yes; then : +if test "x$ac_cv_lib_sasl2_prop_get" = xyes; then : ac_cv_found_sasl=yes else ac_cv_found_sasl=no @@ -10366,7 +10376,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sasl_checkapop in -lsasl2" >&5 $as_echo_n "checking for sasl_checkapop in -lsasl2... " >&6; } -if test "${ac_cv_lib_sasl2_sasl_checkapop+set}" = set; then : +if ${ac_cv_lib_sasl2_sasl_checkapop+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10400,7 +10410,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sasl2_sasl_checkapop" >&5 $as_echo "$ac_cv_lib_sasl2_sasl_checkapop" >&6; } -if test "x$ac_cv_lib_sasl2_sasl_checkapop" = x""yes; then : +if test "x$ac_cv_lib_sasl2_sasl_checkapop" = xyes; then : $as_echo "#define HAVE_APOP /**/" >>confdefs.h @@ -10436,7 +10446,7 @@ 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_PERL+set}" = set; then : +if ${ac_cv_prog_PERL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PERL"; then @@ -10483,7 +10493,7 @@ PERL_SUBDIRS="imap" PERL="${with_perl}" case "${target_os}" in - linux*|netbsd*) + linux*|netbsd*|freebsd*|dragonfly*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl cccdlflags needed on \"${target_os}\"" >&5 $as_echo_n "checking for perl cccdlflags needed on \"${target_os}\"... " >&6; } eval `${PERL} -V:cccdlflags` @@ -10531,7 +10541,7 @@ cmu_save_LIBS="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for request_init in -lwrap" >&5 $as_echo_n "checking for request_init in -lwrap... " >&6; } -if test "${ac_cv_lib_wrap_request_init+set}" = set; then : +if ${ac_cv_lib_wrap_request_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10565,10 +10575,10 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_wrap_request_init" >&5 $as_echo "$ac_cv_lib_wrap_request_init" >&6; } -if test "x$ac_cv_lib_wrap_request_init" = x""yes; then : +if test "x$ac_cv_lib_wrap_request_init" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "tcpd.h" "ac_cv_header_tcpd_h" "$ac_includes_default" -if test "x$ac_cv_header_tcpd_h" = x""yes; then : +if test "x$ac_cv_header_tcpd_h" = xyes; then : else with_libwrap=no @@ -10593,7 +10603,7 @@ LIB_WRAP="-lwrap" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yp_get_default_domain in -lnsl" >&5 $as_echo_n "checking for yp_get_default_domain in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_yp_get_default_domain+set}" = set; then : +if ${ac_cv_lib_nsl_yp_get_default_domain+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10627,7 +10637,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_yp_get_default_domain" >&5 $as_echo "$ac_cv_lib_nsl_yp_get_default_domain" >&6; } -if test "x$ac_cv_lib_nsl_yp_get_default_domain" = x""yes; then : +if test "x$ac_cv_lib_nsl_yp_get_default_domain" = xyes; then : LIB_WRAP="${LIB_WRAP} -lnsl" fi @@ -10660,7 +10670,7 @@ set dummy net-snmp-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_SNMP_CONFIG+set}" = set; then : +if ${ac_cv_path_SNMP_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $SNMP_CONFIG in @@ -10720,7 +10730,7 @@ for ac_header in net-snmp/agent/agent_module_config.h do : ac_fn_c_check_header_mongrel "$LINENO" "net-snmp/agent/agent_module_config.h" "ac_cv_header_net_snmp_agent_agent_module_config_h" "$ac_includes_default" -if test "x$ac_cv_header_net_snmp_agent_agent_module_config_h" = x""yes; then : +if test "x$ac_cv_header_net_snmp_agent_agent_module_config_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_NET_SNMP_AGENT_AGENT_MODULE_CONFIG_H 1 _ACEOF @@ -10744,7 +10754,7 @@ cmu_save_LIBS="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sprint_objid in -lsnmp" >&5 $as_echo_n "checking for sprint_objid in -lsnmp... " >&6; } -if test "${ac_cv_lib_snmp_sprint_objid+set}" = set; then : +if ${ac_cv_lib_snmp_sprint_objid+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10778,10 +10788,10 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_snmp_sprint_objid" >&5 $as_echo "$ac_cv_lib_snmp_sprint_objid" >&6; } -if test "x$ac_cv_lib_snmp_sprint_objid" = x""yes; then : +if test "x$ac_cv_lib_snmp_sprint_objid" = xyes; then : ac_fn_c_check_header_mongrel "$LINENO" "ucd-snmp/version.h" "ac_cv_header_ucd_snmp_version_h" "$ac_includes_default" -if test "x$ac_cv_header_ucd_snmp_version_h" = x""yes; then : +if test "x$ac_cv_header_ucd_snmp_version_h" = xyes; then : else with_snmp=no @@ -10806,7 +10816,7 @@ LIB_UCDSNMP="-lucdagent -lucdmibs -lsnmp" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rpmdbOpen in -lrpm" >&5 $as_echo_n "checking for rpmdbOpen in -lrpm... " >&6; } -if test "${ac_cv_lib_rpm_rpmdbOpen+set}" = set; then : +if ${ac_cv_lib_rpm_rpmdbOpen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10840,7 +10850,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rpm_rpmdbOpen" >&5 $as_echo "$ac_cv_lib_rpm_rpmdbOpen" >&6; } -if test "x$ac_cv_lib_rpm_rpmdbOpen" = x""yes; then : +if test "x$ac_cv_lib_rpm_rpmdbOpen" = xyes; then : LIB_UCDSNMP="${LIB_UCDSNMP} -lrpm -lpopt" fi @@ -10962,10 +10972,21 @@ :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" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -10998,7 +11019,7 @@ -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -11099,6 +11120,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11406,7 +11428,7 @@ # values after options handling. ac_log=" This file was extended by $as_me, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -11468,7 +11490,7 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.67, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -11601,7 +11623,7 @@ "$EXTRA_OUTPUT") CONFIG_FILES="$CONFIG_FILES $EXTRA_OUTPUT" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -11623,9 +11645,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -11633,12 +11656,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -11660,7 +11684,7 @@ ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -11688,7 +11712,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -11736,7 +11760,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -11768,7 +11792,7 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -11802,7 +11826,7 @@ # 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 || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -11814,8 +11838,8 @@ # 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 + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 @@ -11916,7 +11940,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -11935,7 +11959,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -11944,7 +11968,7 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -11970,8 +11994,8 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -12101,21 +12125,22 @@ s&@INSTALL@&$ac_INSTALL&;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 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -12126,20 +12151,20 @@ if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ + mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; diff -Nru cyrus-imapd-2.4-2.4.9/configure.in cyrus-imapd-2.4-2.4.12/configure.in --- cyrus-imapd-2.4-2.4.9/configure.in 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/configure.in 2011-10-04 19:53:03.000000000 +0000 @@ -403,7 +403,7 @@ if test "$testpcre" != "no"; then AC_CHECK_HEADER(pcreposix.h) - if test "$ac_cv_header_pcreposix_h" == "yes"; then + if test "$ac_cv_header_pcreposix_h" = "yes"; then AC_MSG_CHECKING(for utf8 enabled pcre) AC_CACHE_VAL(cyrus_cv_pcre_utf8, AC_TRY_CPP([#include #ifndef REG_UTF8 @@ -415,13 +415,13 @@ fi fi - if test "$cyrus_cv_pcre_utf8" == "yes"; then + if test "$cyrus_cv_pcre_utf8" = "yes"; then LIBS="$LIBS -lpcre -lpcreposix"; AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) AC_DEFINE(HAVE_PCREPOSIX_H, [], [Do we have usable pcre library?]) else AC_CHECK_HEADERS(rxposix.h) - if test "$ac_cv_header_rxposix_h" == "yes"; then + if test "$ac_cv_header_rxposix_h" = "yes"; then LIBS="$LIBS -lrx" AC_DEFINE(ENABLE_REGEX, [], [Do we have a regex library?]) @@ -1171,7 +1171,7 @@ dnl libraries will be compiled as PIC if perl requires PIC objects dnl -- this is needed on NetBSD and Linux, but seems to cause problems on atleast Solaris -- case "${target_os}" in - linux*|netbsd*) + linux*|netbsd*|freebsd*|dragonfly*) AC_MSG_CHECKING(for perl cccdlflags needed on "${target_os}") eval `${PERL} -V:cccdlflags` PERL_CCCDLFLAGS="$cccdlflags" diff -Nru cyrus-imapd-2.4-2.4.9/debian/changelog cyrus-imapd-2.4-2.4.12/debian/changelog --- cyrus-imapd-2.4-2.4.9/debian/changelog 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/changelog 2011-10-06 19:53:48.000000000 +0000 @@ -1,3 +1,30 @@ +cyrus-imapd-2.4 (2.4.12-2) unstable; urgency=low + + * Add versioned conflicts with *-2.2 (Closes: 644503) + + -- Ondřej Surý Thu, 06 Oct 2011 21:53:28 +0200 + +cyrus-imapd-2.4 (2.4.12-1) unstable; urgency=low + + * Optimize cyrus-makedirs finds that chown incorrect permissions in + the spool + * Imported Upstream version 2.4.12 + + -- Ondřej Surý Wed, 05 Oct 2011 09:39:35 +0200 + +cyrus-imapd-2.4 (2.4.11-1) unstable; urgency=low + + * Imported Upstream version 2.4.11 + * Adapt patches to the new release + * Fix Vcs-* Links + * Use kfreebsd-any (Closes: #634693) + * Move proc and lock directories to /run and clean them on restart + (Closes: #629609) + * Obsolete cyrus-imapd-2.2; it's no longer maintained upstream + * Install docs for transitional packages + + -- Ondřej Surý Mon, 26 Sep 2011 10:43:13 +0200 + cyrus-imapd-2.4 (2.4.9-1) unstable; urgency=low * Imported Upstream version 2.4.9 diff -Nru cyrus-imapd-2.4-2.4.9/debian/control cyrus-imapd-2.4-2.4.12/debian/control --- cyrus-imapd-2.4-2.4.9/debian/control 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/control 2011-10-06 19:53:48.000000000 +0000 @@ -20,7 +20,7 @@ groff, hardening-wrapper, libdb-dev, - libkvm-dev [kfreebsd-i386 kfreebsd-amd64], + libkvm-dev [kfreebsd-any], libldap2-dev, libpam0g-dev, libsasl2-dev (>= 2.1.9), @@ -34,8 +34,8 @@ quilt (>> 0.46-7~), transfig, xutils-dev -Vcs-Git: git://git.debian.org/pkg-cyrus-imapd/pkg-cyrus-imapd-2.4.git -Vcs-Browser: http://git.debian.org/?p=pkg-cyrus-imapd/pkg-cyrus-imapd-2.4.git +Vcs-Git: git://git.debian.org/pkg-cyrus-imapd/cyrus-imapd-2.4.git +Vcs-Browser: http://git.debian.org/?p=pkg-cyrus-imapd/cyrus-imapd-2.4.git Homepage: http://www.cyrusimap.org/ Package: cyrus-common-2.4 @@ -45,8 +45,8 @@ Recommends: cyrus-imapd-2.4 | cyrus-pop3d-2.4 | cyrus-murder-2.4 | cyrus-nntpd-2.4 | cyrus-admin-2.4 Suggests: cyrus-clients-2.4, cyrus-admin-2.4, cyrus-imapd-2.4, cyrus-pop3d-2.4, cyrus-murder-2.4, cyrus-replication-2.4, cyrus-nntpd-2.4, cyrus-doc-2.4, sasl2-bin, apt-listchanges (>= 2.35) Provides: cyrus-common-2.2, cyrus-common-2.3 -Conflicts: cyrus-common (<< ${source:Version}), suidmanager (<< 0.50), cyrus-common-2.2, cyrus-common-2.3 -Replaces: cyrus-common-2.2, cyrus-common-2.3 +Conflicts: cyrus-common (<< ${source:Version}), suidmanager (<< 0.50), cyrus-common-2.2 (<< 2.4), cyrus-common-2.3 +Replaces: cyrus-common-2.2 (<< 2.4), cyrus-common-2.3 Description: Cyrus mail system - common files Cyrus is an IMAP server designed to handle massive quantities of mail, with a number of features not found in other IMAP implementations, @@ -76,8 +76,8 @@ Section: doc Depends: ${misc:Depends} Provides: cyrus-doc, cyrus-doc-2.2, cyrus-doc-2.3 -Conflicts: cyrus-doc (<< ${source:Version}), cyrus-doc-2.2, cyrus-doc-2.3 -Replaces: cyrus-doc (<< ${source:Version}), cyrus-doc-2.2, cyrus-doc-2.3 +Conflicts: cyrus-doc (<< ${source:Version}), cyrus-doc-2.2 (<< 2.4), cyrus-doc-2.3 +Replaces: cyrus-doc (<< ${source:Version}), cyrus-doc-2.2 (<< 2.4), cyrus-doc-2.3 Description: Cyrus mail system - documentation files Cyrus is an IMAP server designed to handle massive quantities of mail, with a number of features not found in other IMAP implementations, @@ -101,8 +101,8 @@ Section: mail Depends: cyrus-common-2.4 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} Provides: cyrus-imapd, imap-server, cyrus-imapd-2.2, cyrus-imapd-2.3 -Conflicts: cyrus-imapd (<< ${source:Version}), imap-server, cyrus-imapd-2.2, cyrus-imapd-2.3 -Replaces: cyrus-imapd (<< ${source:Version}), cyrus-imapd-2.2, cyrus-imapd-2.3, cyrus-common-2.4 (<< 2.4.8-6) +Conflicts: cyrus-imapd (<< ${source:Version}), imap-server, cyrus-imapd-2.2 (<< 2.4), cyrus-imapd-2.3 +Replaces: cyrus-imapd (<< ${source:Version}), cyrus-imapd-2.2 (<< 2.4), cyrus-imapd-2.3, cyrus-common-2.4 (<< 2.4.8-6) Breaks: cyrus-common (<< 2.4.8-6) Description: Cyrus mail system - IMAP support Cyrus is an IMAP server designed to handle massive quantities of mail, @@ -128,8 +128,8 @@ Section: mail Depends: cyrus-common-2.4 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} Provides: cyrus-pop3d, pop3-server, cyrus-pop3d-2.2, cyrus-pop3d-2.3 -Conflicts: cyrus-pop3d (<< ${source:Version}), pop3-server, cyrus-pop3d-2.2, cyrus-pop3d-2.3 -Replaces: cyrus-pop3d (<< ${source:Version}), cyrus-pop3d-2.2, cyrus-pop3d-2.3 +Conflicts: cyrus-pop3d (<< ${source:Version}), pop3-server, cyrus-pop3d-2.2 (<< 2.4), cyrus-pop3d-2.3 +Replaces: cyrus-pop3d (<< ${source:Version}), cyrus-pop3d-2.2 (<< 2.4), cyrus-pop3d-2.3 Description: Cyrus mail system - POP3 support Cyrus is an IMAP server designed to handle massive quantities of mail, with a number of features not found in other IMAP implementations, @@ -155,8 +155,8 @@ Depends: libcyrus-imap-perl24 (>= ${binary:Version}), ${misc:Depends} Suggests: sasl2-bin Provides: cyrus-admin, cyrus-admin-2.2, cyrus-admin-2.3 -Conflicts: cyrus-admin (<< ${source:Version}), cyrus-admin-2.2, cyrus-admin-2.3 -Replaces: cyrus-admin (<< ${source:Version}), cyrus-admin-2.2, cyrus-admin-2.3 +Conflicts: cyrus-admin (<< ${source:Version}), cyrus-admin-2.2 (<< 2.4), cyrus-admin-2.3 +Replaces: cyrus-admin (<< ${source:Version}), cyrus-admin-2.2 (<< 2.4), cyrus-admin-2.3 Description: Cyrus mail system - administration tools This package provides the administrative tools for the Cyrus IMAPd suite. It contains the cyradm tool which can be used to administer @@ -172,8 +172,8 @@ Depends: cyrus-common-2.4 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} Recommends: cyrus-imapd-2.4 (= ${binary:Version}), cyrus-pop3d-2.4 (= ${binary:Version}) Provides: cyrus-murder, cyrus21-murder, cyrus22-murder, cyrus-murder-2.2, cyrus-murder-2.3 -Conflicts: cyrus-murder (<< ${source:Version}), cyrus-murder-2.2, cyrus-murder-2.3 -Replaces: cyrus-murder (<< ${source:Version}), cyrus-murder-2.2, cyrus-murder-2.3 +Conflicts: cyrus-murder (<< ${source:Version}), cyrus-murder-2.2 (<< 2.4), cyrus-murder-2.3 +Replaces: cyrus-murder (<< ${source:Version}), cyrus-murder-2.2 (<< 2.4), cyrus-murder-2.3 Description: Cyrus mail system - proxies and aggregator This package contains the Cyrus IMAPd suite murder aggregator system, i.e. IMAP, POP3 and LMTP proxies, and the mupdate mailbox master daemon. @@ -201,8 +201,8 @@ Section: mail Depends: cyrus-common-2.4 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} Provides: cyrus-nntpd, news-transport-system, cyrus-nntpd-2.2, cyrus-nntpd-2.3 -Conflicts: cyrus-nntpd (<< ${source:Version}), news-transport-system, cyrus-nntpd-2.2, cyrus-nntpd-2.3 -Replaces: cyrus-nntpd (<< ${source:Version}), cyrus-nntpd-2.2, cyrus-nntpd-2.3 +Conflicts: cyrus-nntpd (<< ${source:Version}), news-transport-system, cyrus-nntpd-2.2 (<< 2.4), cyrus-nntpd-2.3 +Replaces: cyrus-nntpd (<< ${source:Version}), cyrus-nntpd-2.2 (<< 2.4), cyrus-nntpd-2.3 Description: Cyrus mail system - NNTP support This package contains the NNTP (Network News Transfer Protocol) portion of the Cyrus IMAPd suite. @@ -214,8 +214,8 @@ Section: mail Depends: ${shlibs:Depends}, ${misc:Depends} Provides: cyrus-clients, cyrus-clients-2.2, cyrus-clients-2.3 -Conflicts: cyrus-clients (<< ${source:Version}), cyrus-clients-2.2, cyrus-clients-2.3 -Replaces: cyrus-clients (<< ${source:Version}), cyrus-clients-2.2, cyrus-clients-2.3 +Conflicts: cyrus-clients (<< ${source:Version}), cyrus-clients-2.2 (<< 2.4), cyrus-clients-2.3 +Replaces: cyrus-clients (<< ${source:Version}), cyrus-clients-2.2 (<< 2.4), cyrus-clients-2.3 Description: Cyrus mail system - test clients This package contains client tools to test the Cyrus IMAPd suite. It contains the mupdatetest, sivtest, smtptest, lmtptest, @@ -230,8 +230,8 @@ Section: devel Depends: libcyrus-imap-perl24 (>= ${binary:Version}), cyrus-common-2.4 (= ${binary:Version}), libsasl2-dev (>= 2.1.9), ${misc:Depends} Provides: cyrus-dev, cyrus-dev-2.2, cyrus-dev-2.3 -Conflicts: cyrus-dev (<< ${source:Version}), cyrus-dev-2.2, cyrus-dev-2.3, libdb3-dev (<< 3.2.9-15), libdb2-dev (<< 2.7.7.0-6), libdb4.2-dev (<<4.2.52) -Replaces: cyrus-dev (<< ${source:Version}), cyrus-dev-2.2, cyrus-dev-2.3 +Conflicts: cyrus-dev (<< ${source:Version}), cyrus-dev-2.2 (<< 2.4), cyrus-dev-2.3, libdb3-dev (<< 3.2.9-15), libdb2-dev (<< 2.7.7.0-6), libdb4.2-dev (<<4.2.52) +Replaces: cyrus-dev (<< ${source:Version}), cyrus-dev-2.2 (<< 2.4), cyrus-dev-2.3 Description: Cyrus mail system - developer files This package contains header files and the static library needed to develop IMAP applications that interface with the Cyrus IMAPd suite. @@ -408,3 +408,84 @@ consider to be in the best shape. . For more information, please see the cyrus-common-2.4 package. + +Package: cyrus-common-2.2 +Architecture: all +Section: mail +Depends: ${misc:Depends}, cyrus-common-2.4 +Description: Transitional package for cyrus-common-2.4 + This is a transitional package to ease upgrades to the cyrus-common-2.4 + package. It can safely be removed. + +Package: cyrus-doc-2.2 +Architecture: all +Section: doc +Depends: ${misc:Depends}, cyrus-doc-2.4 +Description: Transitional package for cyrus-doc-2.4 + This is a transitional package to ease upgrades to the cyrus-doc-2.4 + package. It can safely be removed. + +Package: cyrus-imapd-2.2 +Architecture: all +Section: mail +Depends: ${misc:Depends}, cyrus-imapd-2.4 +Description: Transitional package for cyrus-imapd-2.4 + This is a transitional package to ease upgrades to the cyrus-imapd-2.4 + package. It can safely be removed. + +Package: cyrus-pop3d-2.2 +Architecture: all +Section: mail +Depends: ${misc:Depends}, cyrus-pop3d-2.4 +Description: Transitional package for cyrus-pop3d-2.4 + This is a transitional package to ease upgrades to the cyrus-pop3d-2.4 + package. It can safely be removed. + +Package: cyrus-admin-2.2 +Architecture: all +Section: mail +Depends: ${misc:Depends}, cyrus-admin-2.4 +Description: Transitional package for cyrus-admin-2.4 + This is a transitional package to ease upgrades to the cyrus-admin-2.4 + package. It can safely be removed. + +Package: cyrus-murder-2.2 +Architecture: all +Section: mail +Depends: ${misc:Depends}, cyrus-murder-2.4 +Description: Transitional package for cyrus-murder-2.4 + This is a transitional package to ease upgrades to the cyrus-murder-2.4 + package. It can safely be removed. + +Package: cyrus-nntpd-2.2 +Architecture: all +Section: mail +Depends: ${misc:Depends}, cyrus-nntpd-2.4 +Description: Transitional package for cyrus-nntpd-2.4 + This is a transitional package to ease upgrades to the cyrus-nntpd-2.4 + package. It can safely be removed. + +Package: cyrus-clients-2.2 +Architecture: all +Section: mail +Depends: ${misc:Depends}, cyrus-clients-2.4 +Description: Transitional package for cyrus-clients-2.4 + This is a transitional package to ease upgrades to the cyrus-clients-2.4 + package. It can safely be removed. + +Package: cyrus-dev-2.2 +Architecture: all +Section: devel +Depends: ${misc:Depends}, cyrus-dev-2.4 +Description: Transitional package for cyrus-dev-2.4 + This is a transitional package to ease upgrades to the cyrus-dev-2.4 + package. It can safely be removed. + +Package: libcyrus-imap-perl22 +Architecture: all +Section: perl +Depends: ${misc:Depends}, libcyrus-imap-perl24 +Description: Transitional package for libcyrus-imap-perl24 + This is a transitional package to ease upgrades to the libcyrus-imap-perl24 + package. It can safely be removed. + diff -Nru cyrus-imapd-2.4-2.4.9/debian/cyrus-common.cyrus-imapd.init cyrus-imapd-2.4-2.4.12/debian/cyrus-common.cyrus-imapd.init --- cyrus-imapd-2.4-2.4.9/debian/cyrus-common.cyrus-imapd.init 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/cyrus-common.cyrus-imapd.init 2011-10-06 19:53:48.000000000 +0000 @@ -34,9 +34,6 @@ PIDFILE="/var/run/${NAME}.pid" DESC="Cyrus IMAPd" -SYNC_CLIENT=/usr/lib/cyrus/bin/sync_client -SYNCSHUTDOWN="$([ -r /etc/imapd.conf ] && (grep sync_shutdown_file /etc/imapd.conf|awk '{print $2}'))" - # Check if Cyrus is installed (vs. removed but not purged) test -x "$DAEMON" || exit 0 @@ -56,6 +53,20 @@ [ "x${MASTERCONF}" != "x" ] && OPTIONS="-M ${MASTERCONF} ${OPTIONS}" [ "x${LISTENQUEUE}" != "x" ] && OPTIONS="-l ${LISTENQUEUE} ${OPTIONS}" +if [ -n "$CONF" ]; then + [ -r "$CONF" ] || ( echo Could not read config file $CONF; exit 1) +else + CONF=/etc/imapd.conf +fi + +SYNC_CLIENT=/usr/lib/cyrus/bin/sync_client +SYNCSHUTDOWN="$(gawk '/^sync_shutdown_file:[[:blank:]]/ { print $2 }' $CONF)" +CONFIGDIR="$(gawk '/^configdirectory:[[:blank:]]/ {print $2}' $CONF)" +LOCK_DIR="$(gawk '/^mboxname_lockpath:[[:blank:]]/ {print $2}' $CONF)" +PROC_DIR="$(gawk '/^proc_path:[[:blank:]]/ {print $2}' $CONF)" +[ -z "$LOCK_DIR" ] && LOCK_DIR="$CONFIGDIR/lock" +[ -z "$PROC_DIR" ] && PROC_DIR="$CONFIGDIR/proc" + # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh @@ -132,6 +143,11 @@ # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started + + # Clean stale entries + find "$LOCK_DIR" -mindepth 1 -depth -size 0 # -delete + find "$PROC_DIR" -mindepth 1 -depth -name '[0-9]*' # -delete + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ diff -Nru cyrus-imapd-2.4-2.4.9/debian/cyrus-common.postinst cyrus-imapd-2.4-2.4.12/debian/cyrus-common.postinst --- cyrus-imapd-2.4-2.4.9/debian/cyrus-common.postinst 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/cyrus-common.postinst 2011-10-06 19:53:48.000000000 +0000 @@ -80,7 +80,7 @@ if [ -z "$2" ]; then echo -n "cyrus-common: Creating cyrus-imapd directories..." cyrus-makedirs --cleansquat - echo -n "done." + echo "done." fi # Add USERDENY database if doesn't exist diff -Nru cyrus-imapd-2.4-2.4.9/debian/cyrus-makedirs cyrus-imapd-2.4-2.4.12/debian/cyrus-makedirs --- cyrus-imapd-2.4-2.4.9/debian/cyrus-makedirs 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/cyrus-makedirs 2011-10-06 19:53:48.000000000 +0000 @@ -89,7 +89,7 @@ [ -d "$confdir/$i/$j" ] || mkdir "$confdir/$i/$j" done done -find "$confdir" -print0 \( -not -user cyrus -or -not -group mail \) | xargs -r -0 chown cyrus:mail +find "$confdir" \( -not -user cyrus -or -not -group mail \) -execdir chown cyrus:mail '{}' \; # Now, create the spool partitions for i in $partitions ; do @@ -102,7 +102,7 @@ done } [ -d "$i/stage." ] || mkdir "$i/stage." - find "$i" -print0 \( -not -user cyrus -or -not -group mail \) | xargs -r -0 chown cyrus:mail + find "$i" \( -not -user cyrus -or -not -group mail \) -execdir chown cyrus:mail '{}' \; # and kill any squatter indexes [ $killsquat -ne 0 ] && find "$i" -name 'cyrus.squat' -type f -exec rm -f "{}" \; done @@ -115,7 +115,7 @@ [ -d "$sievedir/$j" ] || mkdir "$sievedir/$j" chmod 755 "$sievedir/$j" done - find "$sievedir" -print0 \( -not -user cyrus -or -not -group mail \) | xargs -r -0 chown cyrus:mail + find "$sievedir" \( -not -user cyrus -or -not -group mail \) -execdir chown cyrus:mail '{}' \; } [ "x${CYRUSOPTFILESYS}" != "x1" ] && exit 0 diff -Nru cyrus-imapd-2.4-2.4.9/debian/imapd.conf cyrus-imapd-2.4-2.4.12/debian/imapd.conf --- cyrus-imapd-2.4-2.4.9/debian/imapd.conf 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/imapd.conf 2011-10-06 19:53:48.000000000 +0000 @@ -4,6 +4,10 @@ # Configuration directory configdirectory: /var/lib/cyrus +# Directories for proc and lock files +proc_path: /run/cyrus/proc +mboxname_lockpath: /run/cyrus/lock + # Which partition to use for default mailboxes defaultpartition: default partition-default: /var/spool/cyrus/mail diff -Nru cyrus-imapd-2.4-2.4.9/debian/patches/03-fix_docs.dpatch cyrus-imapd-2.4-2.4.12/debian/patches/03-fix_docs.dpatch --- cyrus-imapd-2.4-2.4.9/debian/patches/03-fix_docs.dpatch 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/patches/03-fix_docs.dpatch 2011-10-06 19:53:48.000000000 +0000 @@ -31,7 +31,7 @@ --- a/lib/imapoptions +++ b/lib/imapoptions -@@ -264,7 +264,11 @@ Blank lines and lines beginning with ``# +@@ -270,7 +270,11 @@ Blank lines and lines beginning with ``# mailbox that does not have a parent mailbox. */ { "defaultdomain", NULL, STRING } @@ -44,7 +44,7 @@ { "defaultpartition", NULL, STRING } /* The partition name used by default for new mailboxes. If not -@@ -606,7 +610,10 @@ Blank lines and lines beginning with ``# +@@ -635,7 +639,10 @@ Blank lines and lines beginning with ``# /* The list of remote realms whose users may authenticate using cross-realm authentication identifiers. Separate each realm name by a space. (A cross-realm identity is considered any identity returned by SASL diff -Nru cyrus-imapd-2.4-2.4.9/debian/patches/05-fix_programnames.dpatch cyrus-imapd-2.4-2.4.12/debian/patches/05-fix_programnames.dpatch --- cyrus-imapd-2.4-2.4.9/debian/patches/05-fix_programnames.dpatch 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/patches/05-fix_programnames.dpatch 2011-10-06 19:53:48.000000000 +0000 @@ -19,14 +19,14 @@ exit(EC_USAGE); --- a/imap/quota.c +++ b/imap/quota.c -@@ -212,7 +212,7 @@ int main(int argc,char **argv) +@@ -207,7 +207,7 @@ int main(int argc,char **argv) void usage(void) { fprintf(stderr, - "usage: quota [-C ] [-d ] [-f] [prefix]...\n"); + "usage: cyrquota [-C ] [-d ] [-f] [prefix]...\n"); exit(EC_USAGE); - } + } --- a/imap/reconstruct.c +++ b/imap/reconstruct.c diff -Nru cyrus-imapd-2.4-2.4.9/debian/patches/08-clean_socket_closes.dpatch cyrus-imapd-2.4-2.4.12/debian/patches/08-clean_socket_closes.dpatch --- cyrus-imapd-2.4-2.4.9/debian/patches/08-clean_socket_closes.dpatch 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/patches/08-clean_socket_closes.dpatch 2011-10-06 19:53:48.000000000 +0000 @@ -46,7 +46,7 @@ --- a/imap/imapd.c +++ b/imap/imapd.c -@@ -1056,6 +1056,10 @@ void shut_down(int code) +@@ -1057,6 +1057,10 @@ void shut_down(int code) #ifdef HAVE_SSL tls_shutdown_serverengine(); #endif @@ -59,7 +59,7 @@ --- a/imap/lmtpd.c +++ b/imap/lmtpd.c -@@ -973,6 +973,9 @@ void shut_down(int code) +@@ -979,6 +979,9 @@ void shut_down(int code) cyrus_done(); diff -Nru cyrus-imapd-2.4-2.4.9/debian/patches/13b-MAXFD-cleanups cyrus-imapd-2.4-2.4.12/debian/patches/13b-MAXFD-cleanups --- cyrus-imapd-2.4-2.4.9/debian/patches/13b-MAXFD-cleanups 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/patches/13b-MAXFD-cleanups 2011-10-06 19:53:48.000000000 +0000 @@ -9,7 +9,7 @@ --- a/master/master.c +++ b/master/master.c -@@ -1613,11 +1613,10 @@ void add_event(const char *name, struct +@@ -1614,11 +1614,10 @@ void add_event(const char *name, struct void limit_fds(rlim_t x) { struct rlimit rl; @@ -22,7 +22,7 @@ syslog(LOG_ERR, "setrlimit: Unable to set file descriptors limit to %ld: %m", x); #ifdef HAVE_GETRLIMIT -@@ -1632,11 +1631,9 @@ void limit_fds(rlim_t x) +@@ -1633,11 +1632,9 @@ void limit_fds(rlim_t x) } diff -Nru cyrus-imapd-2.4-2.4.9/debian/patches/13c-master-reload cyrus-imapd-2.4-2.4.12/debian/patches/13c-master-reload --- cyrus-imapd-2.4-2.4.9/debian/patches/13c-master-reload 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/patches/13c-master-reload 2011-10-06 19:53:48.000000000 +0000 @@ -7,7 +7,7 @@ --- a/master/master.c +++ b/master/master.c -@@ -1495,8 +1495,9 @@ void add_service(const char *name, struc +@@ -1494,8 +1494,9 @@ void add_service(const char *name, struc char buf[1024]; snprintf(buf, sizeof(buf), "cannot find executable for service '%s'", name); @@ -19,7 +19,7 @@ } Services[i].maxforkrate = maxforkrate; -@@ -1516,6 +1517,7 @@ void add_service(const char *name, struc +@@ -1515,6 +1516,7 @@ void add_service(const char *name, struc if (prefork > 1) prefork = 1; Services[i].desired_workers = prefork; Services[i].max_workers = 1; @@ -27,7 +27,7 @@ } if (reconfig) { -@@ -1561,7 +1563,7 @@ void add_event(const char *name, struct +@@ -1562,7 +1564,7 @@ void add_event(const char *name, struct if (!strcmp(cmd,"")) { char buf[256]; snprintf(buf, sizeof(buf), @@ -36,7 +36,7 @@ if (ignore_err) { syslog(LOG_WARNING, "WARNING: %s -- ignored", buf); -@@ -1667,13 +1669,18 @@ void reread_conf(void) +@@ -1668,13 +1670,18 @@ void reread_conf(void) Services[i].stat[0], Services[i].stat[1]); /* Only free the service info on the primary */ diff -Nru cyrus-imapd-2.4-2.4.9/debian/patches/13e-master-janitor-delay cyrus-imapd-2.4-2.4.12/debian/patches/13e-master-janitor-delay --- cyrus-imapd-2.4-2.4.9/debian/patches/13e-master-janitor-delay 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/patches/13e-master-janitor-delay 2011-10-06 19:53:48.000000000 +0000 @@ -42,7 +42,7 @@ } else { /* Are we multithreaded now? we don't know this child */ syslog(LOG_ERR, -@@ -1763,9 +1765,9 @@ int main(int argc, char **argv) +@@ -1764,9 +1766,9 @@ int main(int argc, char **argv) p = getenv("CYRUS_VERBOSE"); if (p) verbose = atoi(p) + 1; #ifdef HAVE_NETSNMP @@ -54,7 +54,7 @@ #endif switch (opt) { case 'C': /* alt imapd.conf file */ -@@ -1798,8 +1800,15 @@ int main(int argc, char **argv) +@@ -1799,8 +1801,15 @@ int main(int argc, char **argv) /* Janitor frequency */ janitor_frequency = atoi(optarg); if(janitor_frequency < 1) diff -Nru cyrus-imapd-2.4-2.4.9/debian/patches/82-fix_manpage_errors.patch cyrus-imapd-2.4-2.4.12/debian/patches/82-fix_manpage_errors.patch --- cyrus-imapd-2.4-2.4.9/debian/patches/82-fix_manpage_errors.patch 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/patches/82-fix_manpage_errors.patch 2011-10-06 19:53:48.000000000 +0000 @@ -1,6 +1,6 @@ --- a/lib/imapoptions +++ b/lib/imapoptions -@@ -899,12 +899,13 @@ And the notification message will be ava +@@ -928,12 +928,13 @@ And the notification message will be ava in minutes. The minimum value is 10, the default. */ { "popuseacl", 0, SWITCH } diff -Nru cyrus-imapd-2.4-2.4.9/debian/patches/cyrus-imapd-2.4.2-903-normalize-authorization-id.patch cyrus-imapd-2.4-2.4.12/debian/patches/cyrus-imapd-2.4.2-903-normalize-authorization-id.patch --- cyrus-imapd-2.4-2.4.9/debian/patches/cyrus-imapd-2.4.2-903-normalize-authorization-id.patch 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/patches/cyrus-imapd-2.4.2-903-normalize-authorization-id.patch 2011-10-06 19:53:48.000000000 +0000 @@ -55,7 +55,7 @@ --- a/lib/imapoptions +++ b/lib/imapoptions -@@ -1363,6 +1363,11 @@ product version in the capabilities */ +@@ -1392,6 +1392,11 @@ product version in the capabilities */ interface, otherwise the user is assumed to be in the default domain (if set). */ diff -Nru cyrus-imapd-2.4-2.4.9/debian/rules cyrus-imapd-2.4-2.4.12/debian/rules --- cyrus-imapd-2.4-2.4.9/debian/rules 2011-06-22 07:14:09.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/debian/rules 2011-10-06 19:53:48.000000000 +0000 @@ -256,6 +256,11 @@ dh_installdocs -p cyrus-$$i --link-doc=cyrus-$$i-2.4; \ done dh_installdocs -p libcyrus-imap-perl --link=libcyrus-imap-perl24 + # Install docs for transitional packages + for p in common doc imapd pop3d admin murder nntpd clients dev ; do \ + dh_installdocs -p cyrus-$$p-2.2 --link-doc=cyrus-common; \ + done + dh_installdocs -p libcyrus-imap-perl22 --link=cyrus-common override_dh_installinit: dh_installinit -p cyrus-common --noscripts --name=cyrus-imapd diff -Nru cyrus-imapd-2.4-2.4.9/doc/changes.html cyrus-imapd-2.4-2.4.12/doc/changes.html --- cyrus-imapd-2.4-2.4.9/doc/changes.html 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/changes.html 2011-10-04 19:53:03.000000000 +0000 @@ -8,6 +8,104 @@ + +

Changes to the Cyrus IMAP Server since 2.4.11

+
    +
  • Bug #3150 - fix issue with overview and messages without + a References header
  • +
  • fixed nntp login with tab and space in password
  • +
  • Bug #3501 - be more relaxed about names of DELETED folders
  • +
  • Bug #3553 - fix QRESYNC passing to murder backend - thanks + alec <alec@alec.pl>
  • +
  • Bug #3554 - only show ENABLED response the first time each + option is ENABLEd
  • +
  • Lots of cleanup of build process and backporting of APIs
  • +
  • Bug #3502 - make configure.in more portable - thanks + OBATA Akio <obata@lins.jp>
  • +
  • Bug #3533 - add missing break statements in sieve - + thanks Thomas Jarosch <thomas.jarosch@intra2net.com>
  • +
  • Bug #3550 - support wildcards for ACLS in cyradm - + thanks <mark.cave-ayland@siriusit.co.uk>
  • +
  • Bug #3556 - print remote server in mbpath - + thanks Wolfgang Breyha <wbreyha@gmx.net>
  • +
  • Bug #3559 - make XFER work with unlimited quota - + thanks Wolfgang Breyha <wbreyha@gmx.net>
  • +
  • Bug #3547 - use strconcat() in writefile()
  • +
  • fixed a case where skiplist library could write error + messages directly to stdout
  • +
  • Bug #3545 - fix sign extension in squat_decode_64
  • +
  • Bug #3558 - return error if backend doesn't support + LIST-EXTENDED
  • +
  • Bug #3565 - clean up in preparation for automake
  • +
  • fixed incomplete authentication checks in nntpd, + reported by Secunia as SA46093
  • +
+ +

Changes to the Cyrus IMAP Server since 2.4.10

+
    +
  • fixed replication recovery from different messages + at the each end
  • +
  • Bug #3489 - fixed quotalegacy handling of prefixes so + only exact subfolders match
  • +
  • Bug #3498 - fixed deletion of users quota files + with unixheriarchysep enabled, thanks Leena Heino
  • +
  • Bug #3491 - NOOP and UNAUTHENTICATE for timsieved, + thanks Dilyan Palauzov
  • +
  • Bug #3492 - better response codes for timsieved, + thanks Dilyan Palauzov
  • +
  • Bug #3497 - fix cmd syslog from master, + thanks Kristof Katus
  • +
  • Bug #3503 - compilation of perl libraries on + dragonfly and freebsd, thanks OBATA Akio
  • +
  • Bug #3451 - allow CC to have spaces
  • +
  • Bug #3505 - fix sync_reset, + thanks David Carter
  • +
  • Bug #3506 - use literal+ for sync_(client|server), + thanks David Carter
  • +
  • Bug #3300 - use portable function for TCP constants, + thanks OBATA Akio
  • +
  • Bug #3507 - fix replication recovery with non-delayed + expunge, thanks Julien Coloos
  • +
  • Bug #3495 - improved duplicate suppression, + thanks Kristof Katus
  • +
  • Bug #2772/3463 - fixed crashes in THREAD by correcting + folding of references headers
  • +
  • Bug #3439 - fix ugly syslog message for vacation
  • +
  • Bug #3499 - options to disable namespaces to reduce + load on big servers with no shared folders. Thanks + Olivier ROLAND
  • +
  • Changed skiplist to truncate old files after checkpoint, + which can save disk space on tmpfs or small ssds when + old copies were held open by other processes
  • +
  • Made Cyrus more robust against corruption in + mailboxes.db data, so it will return an error rather + than crashing on invalid entries
  • +
  • Fix for CVE-2011-3208, a remotely exploitable buffer + overflow in nntpd - thanks Coverity
  • +
+ +

Changes to the Cyrus IMAP Server since 2.4.9

+
    +
  • fixed handling of unparsable emails during append (which + would cause invalid cyrus.index records otherwise)
  • +
  • quota: fix a pile of bugs. #1801, virtdomain support; + #2728, slow user delete; #3178, "file name too long" with + big mailbox names; #3179, quota -f doubles usage.
  • +
  • Bug #3043 - parse multiple groups in headers correctly
  • +
  • Bug #3158 - lmtp backend connection timeout
  • +
  • Bug #3223 - limit MIME parsing depth to avoid stack overflows
  • +
  • Bug #3273 - add SORT=DISPLAY support (but note: still questions + about correctness of unicode sorting)
  • +
  • Bug #3504 - convert all sieve scripts to \r\n line endings + on upload
  • +
  • Bug #3402 - options to munge 8bit characters in headers + during lmtp delivery to avoid backscatter
  • +
  • sync_client: fix broken keepalive TCP options (I doubt anyone + ever tried to use it)
  • +
  • Bug #3482 - add "-o" option to ipurge to only purge messages + with \Deleted flag set
  • +
+

Changes to the Cyrus IMAP Server since 2.4.8

  • fixed crashes in seen handling
  • diff -Nru cyrus-imapd-2.4-2.4.9/doc/install-upgrade.html cyrus-imapd-2.4-2.4.12/doc/install-upgrade.html --- cyrus-imapd-2.4-2.4.9/doc/install-upgrade.html 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/install-upgrade.html 2011-10-04 19:53:03.000000000 +0000 @@ -8,6 +8,38 @@

    Upgrading From Previous Versions

    +

    Upgrading from 2.4.11

    +
      +
    • To support bug-interoperability with older versions of Cyrus, + the quota command now supports "-1" as a synonym for + unlimited storage
    • +
    + +

    Upgrading from 2.4.10

    +
      +
    • Duplicate database formats have changed, so any duplicate or + vacation data will be lost - meaning that vacation responses + will be sent again, and duplicates just across the upgrade + time will both get delivered.
    • +
    + + +

    Upgrading from 2.4.9

    +
      +
    • quota -f now works correctly. If you are upgrading from earlier + than 2.4.9 we recommend that you run quota -f to ensure that all + quotas are now correct. There is a slight race condition in the + quota command, so it's safest to run with the server shut down, + but this has always existed.
    • +
    • On the topic of quota -f, the documentation has been updated to + make it quite clear that you need to give "complete" prefixes if + using quotalegacy, as it doesn't implement quite the same semantics + as other databases. If you run 'quota -f a' and you have domains + starting with 'a', you will be quite sad at the results. So don't + do that. Running quota -f with no argument, or with a full domain + or full user specification is perfectly safe.
    • +
    +

    Upgrading from 2.4.8

    • CYRUS_PREFIX environemnt varabile. If you have an environment diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/arbitron.8.html cyrus-imapd-2.4-2.4.12/doc/man/arbitron.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/arbitron.8.html 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/arbitron.8.html 2011-10-04 20:03:49.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/chk_cyrus.8.html cyrus-imapd-2.4-2.4.12/doc/man/chk_cyrus.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/chk_cyrus.8.html 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/chk_cyrus.8.html 2011-10-04 20:03:49.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/ctl_cyrusdb.8.html cyrus-imapd-2.4-2.4.12/doc/man/ctl_cyrusdb.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/ctl_cyrusdb.8.html 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/ctl_cyrusdb.8.html 2011-10-04 20:03:49.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/ctl_deliver.8.html cyrus-imapd-2.4-2.4.12/doc/man/ctl_deliver.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/ctl_deliver.8.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/ctl_deliver.8.html 2011-10-04 20:03:49.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/ctl_mboxlist.8.html cyrus-imapd-2.4-2.4.12/doc/man/ctl_mboxlist.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/ctl_mboxlist.8.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/ctl_mboxlist.8.html 2011-10-04 20:03:49.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/cvt_cyrusdb.8.html cyrus-imapd-2.4-2.4.12/doc/man/cvt_cyrusdb.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/cvt_cyrusdb.8.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/cvt_cyrusdb.8.html 2011-10-04 20:03:49.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/cyr_dbtool.8.html cyrus-imapd-2.4-2.4.12/doc/man/cyr_dbtool.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/cyr_dbtool.8.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/cyr_dbtool.8.html 2011-10-04 20:03:50.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/cyr_df.8.html cyrus-imapd-2.4-2.4.12/doc/man/cyr_df.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/cyr_df.8.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/cyr_df.8.html 2011-10-04 20:03:50.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/cyr_expire.8.html cyrus-imapd-2.4-2.4.12/doc/man/cyr_expire.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/cyr_expire.8.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/cyr_expire.8.html 2011-10-04 20:03:50.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/cyr_synclog.8.html cyrus-imapd-2.4-2.4.12/doc/man/cyr_synclog.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/cyr_synclog.8.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/cyr_synclog.8.html 2011-10-04 20:03:50.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/cyrus.conf.5.html cyrus-imapd-2.4-2.4.12/doc/man/cyrus.conf.5.html --- cyrus-imapd-2.4-2.4.9/doc/man/cyrus.conf.5.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/cyrus.conf.5.html 2011-10-04 20:03:50.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/deliver.8.html cyrus-imapd-2.4-2.4.12/doc/man/deliver.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/deliver.8.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/deliver.8.html 2011-10-04 20:03:50.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/fetchnews.8.html cyrus-imapd-2.4-2.4.12/doc/man/fetchnews.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/fetchnews.8.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/fetchnews.8.html 2011-10-04 20:03:50.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/fud.8.html cyrus-imapd-2.4-2.4.12/doc/man/fud.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/fud.8.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/fud.8.html 2011-10-04 20:03:50.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/idled.8.html cyrus-imapd-2.4-2.4.12/doc/man/idled.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/idled.8.html 2011-06-21 19:51:35.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/idled.8.html 2011-10-04 20:03:50.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/imapd.8.html cyrus-imapd-2.4-2.4.12/doc/man/imapd.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/imapd.8.html 2011-06-21 19:51:36.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/imapd.8.html 2011-10-04 20:03:50.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/imapd.conf.5.html cyrus-imapd-2.4-2.4.12/doc/man/imapd.conf.5.html --- cyrus-imapd-2.4-2.4.9/doc/man/imapd.conf.5.html 2011-06-21 19:51:36.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/imapd.conf.5.html 2011-10-04 20:03:51.000000000 +0000 @@ -1,5 +1,5 @@ - + @@ -354,6 +354,14 @@

      Maximum number of transactions to be supported in the berkeley environment.

      +

      boundary_limit: 1000

      + +

      messages are parsed recursively +and a deep enough MIME structure can cause a stack overflow. +Do not parse deeper than this many layers of MIME structure. +The default of 1000 is much higher than any sane message +should have.

      +

      client_timeout: 10

      Number of seconds to wait @@ -439,6 +447,25 @@ will automatically be given the new ’x’ right.

      +

      disable_user_namespace: +0

      + +

      Preclude list command on user +namespace. If set to ’yes’, the LIST response +will never include any other user’s mailbox. Admin +users will always see all mailboxes. The default is +’no’

      + + +

      disable_shared_namespace: +0

      + +

      Preclude list command on user +namespace. If set to ’yes’, the LIST response +will never include any non-user mailboxes. Admin users will +always see all mailboxes. The default is +’no’

      +

      disconnect_on_vanished_mailbox: 0

      @@ -941,6 +968,17 @@ failure won’t occur until the mailbox is already over quota.

      +

      lmtp_strict_rfc2821: +1

      + +

      By default, lmtpd will be +strict (per RFC 2821) with regards to which envelope +addresses are allowed. If this option is set to false, 8bit +characters in the local-part of envelope addresses are +changed to ’X’ instead. This is useful to avoid +generating backscatter with certain MTAs like Postfix or +Exim which accept such messages.

      +

      lmtpsocket: {configdirectory}/socket/lmtp

      @@ -948,6 +986,15 @@ listens on, used by deliver(8). This should match the path specified in cyrus.conf(5).

      +

      lmtptxn_timeout: 300

      + +

      Timeout (in seconds) used +during a lmtp transaction to a remote backend (e.g. in a +murder environment). Can be used to prevent hung lmtpds on +proxy hosts when a backend server becomes unresponsive +during a lmtp transaction. The default is 300 - change to +zero for infinite.

      +

      loginrealms: <empty string>

      @@ -1051,7 +1098,7 @@

      Allowed values: header, index, cache, expunge, -squat, lock

      +squat

      metapartition-name: <none>

      @@ -1852,10 +1899,10 @@

      Suppress the named capabilities from any capability response. Use the exact case as it appears in the response, e.g. "suppress_capabilities: -ESEARCH QRESYNC WITHIN XLIST" if you have a murder with -2.3.x backends and don’t want clients being confused -by new capabilities that some backends don’t -support.

      +ESEARCH QRESYNC WITHIN XLIST LIST-EXTENDED" if you have +a murder with 2.3.x backends and don’t want clients +being confused by new capabilities that some backends +don’t support.

      statuscache: 0

      diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/imclient.3.html cyrus-imapd-2.4-2.4.12/doc/man/imclient.3.html --- cyrus-imapd-2.4-2.4.9/doc/man/imclient.3.html 2011-06-21 19:51:36.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/imclient.3.html 2011-10-04 20:03:51.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/imtest.1.html cyrus-imapd-2.4-2.4.12/doc/man/imtest.1.html --- cyrus-imapd-2.4-2.4.9/doc/man/imtest.1.html 2011-06-21 19:51:36.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/imtest.1.html 2011-10-04 20:03:51.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/installsieve.1.html cyrus-imapd-2.4-2.4.12/doc/man/installsieve.1.html --- cyrus-imapd-2.4-2.4.9/doc/man/installsieve.1.html 2011-06-21 19:51:36.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/installsieve.1.html 2011-10-04 20:03:51.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/ipurge.8.html cyrus-imapd-2.4-2.4.12/doc/man/ipurge.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/ipurge.8.html 2011-06-21 19:51:36.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/ipurge.8.html 2011-10-04 20:03:51.000000000 +0000 @@ -1,5 +1,5 @@ - + @@ -48,7 +48,7 @@

      ipurge [ −f ] [ −C config-file ] [ −x ] [ −X ] [ −i ] [ -−s ]
      +−s ] [ −o ]
      [ −d days | −b bytes | −k Kbytes | −m Mbytes ]
      @@ -183,6 +183,17 @@

      Skip over messages that have the \Flagged flag set.

      + + + + + +

      −o

      + + + + +

      Only purge messages that have the \Deleted flag set.

      FILES diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/krb.equiv.5.html cyrus-imapd-2.4-2.4.12/doc/man/krb.equiv.5.html --- cyrus-imapd-2.4-2.4.9/doc/man/krb.equiv.5.html 2011-06-21 19:51:36.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/krb.equiv.5.html 2011-10-04 20:03:51.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/lmtpd.8.html cyrus-imapd-2.4-2.4.12/doc/man/lmtpd.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/lmtpd.8.html 2011-06-21 19:51:36.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/lmtpd.8.html 2011-10-04 20:03:51.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/lmtptest.1.html cyrus-imapd-2.4-2.4.12/doc/man/lmtptest.1.html --- cyrus-imapd-2.4-2.4.9/doc/man/lmtptest.1.html 2011-06-21 19:51:37.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/lmtptest.1.html 2011-10-04 20:03:51.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/master.8.html cyrus-imapd-2.4-2.4.12/doc/man/master.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/master.8.html 2011-06-21 19:51:37.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/master.8.html 2011-10-04 20:03:51.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/mbexamine.8.html cyrus-imapd-2.4-2.4.12/doc/man/mbexamine.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/mbexamine.8.html 2011-06-21 19:51:37.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/mbexamine.8.html 2011-10-04 20:03:51.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/mbpath.8.html cyrus-imapd-2.4-2.4.12/doc/man/mbpath.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/mbpath.8.html 2011-06-21 19:51:37.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/mbpath.8.html 2011-10-04 20:03:51.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/mupdatetest.1.html cyrus-imapd-2.4-2.4.12/doc/man/mupdatetest.1.html --- cyrus-imapd-2.4-2.4.9/doc/man/mupdatetest.1.html 2011-06-21 19:51:37.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/mupdatetest.1.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/nntpd.8.html cyrus-imapd-2.4-2.4.12/doc/man/nntpd.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/nntpd.8.html 2011-06-21 19:51:37.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/nntpd.8.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/nntptest.1.html cyrus-imapd-2.4-2.4.12/doc/man/nntptest.1.html --- cyrus-imapd-2.4-2.4.9/doc/man/nntptest.1.html 2011-06-21 19:51:37.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/nntptest.1.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/notifyd.8.html cyrus-imapd-2.4-2.4.12/doc/man/notifyd.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/notifyd.8.html 2011-06-21 19:51:37.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/notifyd.8.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/pop3d.8.html cyrus-imapd-2.4-2.4.12/doc/man/pop3d.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/pop3d.8.html 2011-06-21 19:51:37.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/pop3d.8.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/pop3test.1.html cyrus-imapd-2.4-2.4.12/doc/man/pop3test.1.html --- cyrus-imapd-2.4-2.4.9/doc/man/pop3test.1.html 2011-06-21 19:51:37.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/pop3test.1.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/quota.8.html cyrus-imapd-2.4-2.4.12/doc/man/quota.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/quota.8.html 2011-06-21 19:51:37.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/quota.8.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/reconstruct.8.html cyrus-imapd-2.4-2.4.12/doc/man/reconstruct.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/reconstruct.8.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/reconstruct.8.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/rmnews.8.html cyrus-imapd-2.4-2.4.12/doc/man/rmnews.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/rmnews.8.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/rmnews.8.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/sivtest.1.html cyrus-imapd-2.4-2.4.12/doc/man/sivtest.1.html --- cyrus-imapd-2.4-2.4.9/doc/man/sivtest.1.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/sivtest.1.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/smmapd.8.html cyrus-imapd-2.4-2.4.12/doc/man/smmapd.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/smmapd.8.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/smmapd.8.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/smtptest.1.html cyrus-imapd-2.4-2.4.12/doc/man/smtptest.1.html --- cyrus-imapd-2.4-2.4.9/doc/man/smtptest.1.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/smtptest.1.html 2011-10-04 20:03:52.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/squatter.8.html cyrus-imapd-2.4-2.4.12/doc/man/squatter.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/squatter.8.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/squatter.8.html 2011-10-04 20:03:53.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/sync_client.8.html cyrus-imapd-2.4-2.4.12/doc/man/sync_client.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/sync_client.8.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/sync_client.8.html 2011-10-04 20:03:53.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/syncnews.8.html cyrus-imapd-2.4-2.4.12/doc/man/syncnews.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/syncnews.8.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/syncnews.8.html 2011-10-04 20:03:53.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/sync_reset.8.html cyrus-imapd-2.4-2.4.12/doc/man/sync_reset.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/sync_reset.8.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/sync_reset.8.html 2011-10-04 20:03:53.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/sync_server.8.html cyrus-imapd-2.4-2.4.12/doc/man/sync_server.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/sync_server.8.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/sync_server.8.html 2011-10-04 20:03:53.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/timsieved.8.html cyrus-imapd-2.4-2.4.12/doc/man/timsieved.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/timsieved.8.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/timsieved.8.html 2011-10-04 20:03:53.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/tls_prune.8.html cyrus-imapd-2.4-2.4.12/doc/man/tls_prune.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/tls_prune.8.html 2011-06-21 19:51:38.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/tls_prune.8.html 2011-10-04 20:03:53.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru cyrus-imapd-2.4-2.4.9/doc/man/unexpunge.8.html cyrus-imapd-2.4-2.4.12/doc/man/unexpunge.8.html --- cyrus-imapd-2.4-2.4.9/doc/man/unexpunge.8.html 2011-06-21 19:51:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/man/unexpunge.8.html 2011-10-04 20:03:53.000000000 +0000 @@ -1,5 +1,5 @@ - + Binary files /tmp/HpjzOKNlsL/cyrus-imapd-2.4-2.4.9/doc/murder.png and /tmp/HpPnlYRmGW/cyrus-imapd-2.4-2.4.12/doc/murder.png differ Binary files /tmp/HpjzOKNlsL/cyrus-imapd-2.4-2.4.9/doc/netnews.png and /tmp/HpPnlYRmGW/cyrus-imapd-2.4-2.4.12/doc/netnews.png differ diff -Nru cyrus-imapd-2.4-2.4.9/doc/specs.html cyrus-imapd-2.4-2.4.12/doc/specs.html --- cyrus-imapd-2.4-2.4.9/doc/specs.html 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/specs.html 2011-10-04 19:53:03.000000000 +0000 @@ -76,7 +76,16 @@ Extended URLFETCH for Binary and Converted Parts draft-daboo-imap-annotatemore -IMAP ANNOTATEMORE Extension +ANNOTATEMORE Draft +RFC 5464 +The IMAP METADATA Extension + +draft-ietf-morg-list-specialuse +IMAP SPECIALUSE Draft (And non-standard Google XLIST support) +RFC 5819 +IMAP4 Extension for Returning STATUS Information in Extended LIST +RFC 5957 +Display-Based Address Sorting for the IMAP4 SORT Extension

      POP

      diff -Nru cyrus-imapd-2.4-2.4.9/doc/text/changes cyrus-imapd-2.4-2.4.12/doc/text/changes --- cyrus-imapd-2.4-2.4.9/doc/text/changes 2011-06-21 19:51:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/text/changes 2011-10-04 20:03:54.000000000 +0000 @@ -1,3 +1,90 @@ +Changes to the Cyrus IMAP Server since 2.4.11 + + * Bug #3150 - fix issue with overview and messages without a + References header + * fixed nntp login with tab and space in password + * Bug #3501 - be more relaxed about names of DELETED folders + * Bug #3553 - fix QRESYNC passing to murder backend - thanks alec + + * Bug #3554 - only show ENABLED response the first time each option + is ENABLEd + * Lots of cleanup of build process and backporting of APIs + * Bug #3502 - make configure.in more portable - thanks OBATA Akio + + * Bug #3533 - add missing break statements in sieve - thanks Thomas + Jarosch + * Bug #3550 - support wildcards for ACLS in cyradm - thanks + + * Bug #3556 - print remote server in mbpath - thanks Wolfgang Breyha + + * Bug #3559 - make XFER work with unlimited quota - thanks Wolfgang + Breyha + * Bug #3547 - use strconcat() in writefile() + * fixed a case where skiplist library could write error messages + directly to stdout + * Bug #3545 - fix sign extension in squat_decode_64 + * Bug #3558 - return error if backend doesn't support LIST-EXTENDED + * Bug #3565 - clean up in preparation for automake + * fixed incomplete authentication checks in nntpd, reported by + Secunia as SA46093 + +Changes to the Cyrus IMAP Server since 2.4.10 + + * fixed replication recovery from different messages at the each end + * Bug #3489 - fixed quotalegacy handling of prefixes so only exact + subfolders match + * Bug #3498 - fixed deletion of users quota files with + unixheriarchysep enabled, thanks Leena Heino + * Bug #3491 - NOOP and UNAUTHENTICATE for timsieved, thanks Dilyan + Palauzov + * Bug #3492 - better response codes for timsieved, thanks Dilyan + Palauzov + * Bug #3497 - fix cmd syslog from master, thanks Kristof Katus + * Bug #3503 - compilation of perl libraries on dragonfly and freebsd, + thanks OBATA Akio + * Bug #3451 - allow CC to have spaces + * Bug #3505 - fix sync_reset, thanks David Carter + * Bug #3506 - use literal+ for sync_(client|server), thanks David + Carter + * Bug #3300 - use portable function for TCP constants, thanks OBATA + Akio + * Bug #3507 - fix replication recovery with non-delayed expunge, + thanks Julien Coloos + * Bug #3495 - improved duplicate suppression, thanks Kristof Katus + * Bug #2772/3463 - fixed crashes in THREAD by correcting folding of + references headers + * Bug #3439 - fix ugly syslog message for vacation + * Bug #3499 - options to disable namespaces to reduce load on big + servers with no shared folders. Thanks Olivier ROLAND + * Changed skiplist to truncate old files after checkpoint, which can + save disk space on tmpfs or small ssds when old copies were held + open by other processes + * Made Cyrus more robust against corruption in mailboxes.db data, so + it will return an error rather than crashing on invalid entries + * Fix for CVE-2011-3208, a remotely exploitable buffer overflow in + nntpd - thanks Coverity + +Changes to the Cyrus IMAP Server since 2.4.9 + + * fixed handling of unparsable emails during append (which would + cause invalid cyrus.index records otherwise) + * quota: fix a pile of bugs. #1801, virtdomain support; #2728, slow + user delete; #3178, "file name too long" with big mailbox names; + #3179, quota -f doubles usage. + * Bug #3043 - parse multiple groups in headers correctly + * Bug #3158 - lmtp backend connection timeout + * Bug #3223 - limit MIME parsing depth to avoid stack overflows + * Bug #3273 - add SORT=DISPLAY support (but note: still questions + about correctness of unicode sorting) + * Bug #3504 - convert all sieve scripts to \r\n line endings on + upload + * Bug #3402 - options to munge 8bit characters in headers during lmtp + delivery to avoid backscatter + * sync_client: fix broken keepalive TCP options (I doubt anyone ever + tried to use it) + * Bug #3482 - add "-o" option to ipurge to only purge messages with + \Deleted flag set + Changes to the Cyrus IMAP Server since 2.4.8 * fixed crashes in seen handling diff -Nru cyrus-imapd-2.4-2.4.9/doc/text/install-upgrade cyrus-imapd-2.4-2.4.12/doc/text/install-upgrade --- cyrus-imapd-2.4-2.4.9/doc/text/install-upgrade 2011-06-21 19:51:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/text/install-upgrade 2011-10-04 20:03:54.000000000 +0000 @@ -1,539 +1,2 @@ Upgrading From Previous Versions -Upgrading from 2.4.8 - - * CYRUS_PREFIX environemnt varabile. If you have an environment - variable "CYRUS_PREFIX" then config files will be searched for in - there first, so for example the file /var/cyrus/etc/imapd.conf will - override /etc/imapd.conf if your CYRUS_PREFIX is /var/cyrus. This - is to make things easier for sites with multiple installs on a - single machine. You will want to check that there aren't unexpected - files in those locations when upgrading. - * New config options: *_db_path allow moving individual DB files to - different partitions - for example you may want to put the - deliver.db onto tmpfs to improve performance. - * KNOWN BUG: quota -f can double ALL quota usage values for all - users. This is particularly bad because of the bug fixed in this - release where quotaroots were not correctly updated on folder - rename. Recommended workaround: run quota -f twice. - -Upgrading from 2.4.7 - - * New config option: proc_path allows setting the path to the proc - directory onto tmpfs more easily - -Upgrading from 2.4.6 - - * New config option: failedloginpause allows you to change the pause - after a failed login from the existing default of 3 seconds - * On Solaris: now getpassphrase is used, so passwords longer than 8 - characters will work with management tools - * $confdir/proc now gets created automatically if it doesn't exist, - which may impact init script design - * If you have damaged mailboxes that weren't previously fixable, a - reconstruct of those mailboxes may be advised - -Upgrading from 2.4.5 - - * New config option: suppress_capabilities, which takes a space - separated list of capabilities which will NOT be given in any imap - capability response. This can be used on frontends to not display - capabilities that older backends don't have, so clients don't get - confused - -Upgrading from 2.4.4 - - * sync_client no longer forks two process - it just pre-forks a - single process in rolling replication mode and uses it "forever". - This is to avoid the bug where it used to open the BDB environment - once before forking, then close it in every child, causing the - reference count to go negative. This also means you can start it - without '-o' and still have the master start without the replica - already running. - -Upgrading from 2.4.3 - - * Actually, it's more upgrading directly to here from 2.3.x or older. - ALL upgrades from previous versions now incur a full re-parse of - all messages, which may take a while. In exchange you get reliable - upgrades though, and guaranteed still-searchable cyrus.cache - records. - -Upgrading from 2.4.2 - - * The AFS ptloader configure options have changed. If you were - previously specifying --with-afs when you built, you'll now want to - use --enable-afs instead. Additionally, you may now specify - --with-afs-libdir and --with-afs-incdir to facilitate finding the - AFS libraries and header files. - * The sync_log_names option has been replaced with sync_log_channels - and the documentation and tools updated to match. This is to use a - less overloaded term and allow multi-channel replication to be - used. - * Cyrus 2.4.3 can now XFER mailboxes back to earlier version (at - least as far back as Cyrus 2.2.12) in a murder configuration. - * sync_client in rolling mode now only connects after forking, so it - no longer blocks startup. You can remove the '-o' option from your - cyrus.conf entry if you want, and not have to start sync_client - manually afterwards! - -Upgrading from 2.4.0 - - * The response to the "ID" command has changed slightly to include - git metadata rather than CVS metadata - so your in-house tools - expecting a particular value may need changing (very unlikely) - -Upgrading from 2.3.16 - - * There is a new index format, so downgrades are not possible without - a reconstruct. We recommend that you take a full backup before - upgrading, and perform an upgrade with a small test server if - possible to make sure everything will work for your site. - * MURDER does work, but you can't rename a mailbox back to a previous - version backend because the index was upgraded. - * There is a new replication protocol, so you can't replicate between - 2.4.0 and previous versions in either direction. You need to - upgrade both before you can restart repliation. - * The default value for delayed_expunge has changed to provide better - QRESYNC and replication support. The default is still pretty - efficient, but you may want to change it to 'immediate', the - previous default - * The default type for all databases is now skiplist which is very - reliable now, all the bugs are ironed out! Because ctl_cyrusdb -r - automatically converts databases between known types, you shouldn't - need to do anything, but if you want to keep the old defaults, - you'll need to make them explicit in your imapd.conf as follows: - - duplicate_db: berkeley-nosync - ptscache_db: berkeley - statuscache_db: berkeley-nosync - tlscache_db: berkeley-nosync - - * There is a new lock folder which defaults to configdir/lock/ and - contains one zerobyte file per mailbox. These can get pretty hot, - and don't need to persist over reboots (they will be auto-created - when needed) - so you may want to define mboxname_lockpath to be on - tmpfs or ramfs or similar. It certainly makes sense to clean it out - on restart, because names will persist in there forever otherwise. - Even on mailbox delete these files aren't removed (to avoid - potential race conditions) - * The make_md5 and make_sha1 utilities no longer exist. If you want - to check message file integrity, the best way is reconstruct -r -n - -G. This will parse every message file, check the sha1 against the - value stored in the cyrus.index, and tell you about mismatches - without fixing them. - * Speaking of reconstruct, the switches have changed, as has the - implementation. It fixes the mailbox "in place" a lot more rather - than creating a new mailbox, meaning that IMAP semantics won't be - broken. It's more likely to abort rather than complete if your - filesystem permissions are wrong - fix them first! - - -kRemoved, expunge data is always kept - - -gRemoved, GUIDs are always stored - - -GChanged, now means "re-parse the message". If not specified, - reconstruct only checks the message size and assumes the rest of - the stuff in the index record is OK (pretty safe because we do - CRC32 checks on index records now) - - -sAdded, skip the stat call, so reconstruct doesn't even check the - message file size - just that a file with the correct name exists - at all - - -nAdded, don't make any changes, just report what would have been - done if -n wasn't specified - - If you try to use -k or -g, you will get a warning but the - reconstruct will still run. - -Upgrading from 2.3.15 - - * The SQL detection code in configure has been reworked. Separate - options for the include directories and lib directories have been - added. Previous SQL options may not work as expected. - -Upgrading from 2.3.10 - - * STARTTLS is now allowed for externally preauth'd LMTP connections. - If you don't want STARTTLS to be advertised and used by preauth'd - clients, you can set _tls_cert_file: disabled in - imapd.conf. - -Upgrading from 2.3.9 - - * The method used for generating Globally Unique IDentifiers used for - replication has been changed to be the SHA1 hash of the messages. - If you wish to upgrade the existing GUIDs in particular mailbox(es) - or the entire server, perform the following steps in the listed - order. Note that is is NOT REQUIRED that existing GUIDs be - upgraded. - - 1. Zero GUIDs on the replica (reconstruct -g) - 2. Regenerate GUIDs on the master (reconstruct -G) - 3. Regenerate GUIDs on the replica (reconstruct -G) - -Upgrading from 2.3.8 - - * You must install and configure Cyrus SASL version 2.1.17 or later - to use Cyrus IMAP 2.3.9 and later. You can download SASL at - http://www.cyrusimap.org/mediawiki/index.php/Downloads#SASL_Library. - * The default value of the allowplaintext option has been changed to - disabled (0). If you need to allow cleartext passwords on the wire, - then you will have to explicitly enable the allowplaintext option - in imapd.conf. - -Upgrading from 2.3.3 or later (64-bit machines) - - * Due to byte alignment issues in cyrus.index, all mailboxes will - have to be reconstructed. - -Upgrading from 2.3.4 or 2.3.5 - - * Any mailboxes which had messages appended/delivered/copied with a - 2.3.4 service or copied with a 2.3.5 imapd MUST be reconstructed in - order for the new messages to be displayed by clients. - -Upgrading from 2.2.x or earlier - - * If you wish to use separate metadata partition(s), you MUST first - shut down Cyrus and then perform the following: - - 1. Set the metapartition-* and metapartition_files options to suit - your configuration. For a full description of these options, - see the imapd.conf(5) man page. - 2. Create the metadata partition directory(s) listed in the - metapartition-* option(s), setting the ownership and - permissions in same fashion as step 6 of install-configure. - 3. Run the tools/migrate-metadata script (as the cyrus user) to - move the metadata files listed in the metapartition_files - option from the spool partition(s) to the new metadata - partition(s). This script may take a long time to run depending - on the number of mailboxes on the server, but presumably the - metadata partitions are located on high speed storage, so the - writes should be relatively fast. - 4. Restart Cyrus. - -Upgrading from 2.2.2 or earlier - - * The Cyrus database backend configuration is now handled at runtime - using imapd.conf options. If you are not using the default backend - for any of the databases, make sure that you specify the correct - backend(s) in appropriate option(s). - * The format of the newspeer option has been changed. The existing - format will still be parsed, but the option should be upgraded to - use the new format (see imapd.conf(5) for details). - -Upgrading from 2.2.1 or earlier - - * The sieve bytecode format has changed again to correct an issue - with the short circuiting of the allof and anyof operators. To - upgrade existing scripts (outside of home directories), you can run - the tools/masssievec perl script included with the distribution. It - requires a path to your sievec binary. This should also upgrade - scripts that have already been compiled to bytecode. For example: - - masssievec /usr/src/cyrus/sieve/sievec - -Upgrading from 2.2.0 or earlier - - * The improved directory hashing (fulldirhash) is now a runtime - configuration option. If you are currently using this feature, then - make sure that you enable the fulldirhash option in imapd.conf. - * The format of mailbox index files has changed. They are upgraded on - the fly, so you need to do nothing to upgrade. However, to - downgrade them you will need to remove the cyrus.index files, and - reconstruct the mailboxes, otherwise the index files will be - invalid. - * ctl_deliver -E has been deprecated in favor of cyr_expire -E. This - new tool does both duplicate delivery database pruning as well as - message expunging. You should replace the appropriate EVENTS entry - in cyrus.conf with one of those in the sample configurations in the - master/conf directory. - * The sieve bytecode format has changed. The new format is encoded in - network byte order, and will be transferable between architechures. - To upgrade existing scripts (outside of home directories), you can - run the tools/masssievec perl script included with the - distribution. It requires a path to your sievec binary. This should - also upgrade scripts that have already been compiled to bytecode. - For example: - - masssievec /usr/src/cyrus/sieve/sievec - -Upgrading from 2.1.x or earlier - -General information (ALL SITES) - - * The default database formats for the mailbox list and the seen - state databases has been changed to the skiplist backend. There are - two ways of dealing with this if you have been using the defaults. - - 1. Specify --with-mboxlist-db=berkeley and --with-seen-db=flat to - configure. This will instruct Cyrus to continue to use the - previous defaults. - 2. Use the cvt_cyrusdb program to directly convert the databases. - This should be done with the server down, and with the binaries - from the new Cyrus distribution. Change any paths that do not - match your configuration. - For the mailbox list, the command looks like: - - /usr/cyrus/bin/cvt_cyrusdb /var/imap/mailboxes.db berkeley /var/imap/mailboxes.db.new skiplist - mv /var/imap/mailboxes.db.new /var/imap/mailboxes.db - - Note that the use of full paths to the database files is - important. You should also backup your old mailboxes database - before moving the new one in. - For the seen state databases, the command to get them all in - one fell swoop looks like: - - find /var/imap/user -name \*.seen -exec /usr/cyrus/bin/cvt_cyrusdb \{\} flat \{\}.new skiplist \; -exec mv \{\}.new \{\} \; - - The slashes are important for shell escaping. Again, you should - back up the contents of your /var/imap/user directory before - executing this command. These commands may take some time to - complete, especially if your databases are large. - - We believe that skiplist offers considerable performance advantages - for these two databases over the previous defaults. - * Sieve scripts are now compiled into bytecode. The program sievec is - provided to do this process manually (timsieved will compile - submitted sieve scripts as they are uploaded). To upgrade existing - scripts (outside of home directories), you can run the - tools/masssievec perl script included with the distribution. It - requires a path to your sievec binary. For example: - - masssievec /usr/src/cyrus/sieve/sievec - - Note that this will fail for scripts that use the "envelope" - extention but do not require it. Cyrus 2.1's timsieved did not do - appropriate checking that the optional envelope test was required - before it was used. - * Configuration subsystem changes: - - * The tls_[service]_* configuration options have been removed. - Now use [servicename]_tls_*, where servicename is the service - identifier from cyrus.conf for that particular process. - * The admins and lmtp_admins configuration options no longer - union. Per-service options completely override the default - value when they are specified. - * lmtp_allowplaintext is no longer a defined parameter and must - be specified using the service name of your lmtp process if you - require a specific value. - -Specialized information (Murder, AFS, etc.) - - * The IMAP IDLE command is now supported by proxyd and is controlled - by the imapidlepoll option, which is enabled by default (60 - seconds). To disable IMAP IDLE in proxyd, set imapidlepoll to 0. - * User moves via RENAME and XFER are now controlled by the - allowusermoves option, which defaults to off. - * If you use ptloader, it now runs as a regular cyrus service. This - means that you will need master to acquire and maintain AFS tokens - for it. You will also need to create the ptclient directory under - your imap configdirectory, to hold the PTS cache (now a - full-fledged cyrusdb) and UNIX socket. In cyrus.conf, ptloader - should be setup to listen on /ptclient/ptsock. See - the master/test/cmu-backend.conf example configuration file. - * Also, ptloader has been given a generic interface. You should now - specify "--with-auth=pts" (instead of "--with-auth=krb_pts") to - configure. There is also a --with-pts= configure option that - defaults to afskrb (Kerberos Canonicalization, AFS PTS Groups). - There is also an experimental ldap module. Note also that if - ptloader fails the lookup, authorization (and therefore - authentication) will now fail, as canonicalization is done inside - of ptloader. - * The format of sieve referrals has changed to be more consistant - with the current managesieve draft, this may cause interoperability - problems when using managesieve clients and servers from different - cyrus versions. - * Clients that use old-style ACL commands that include the "MAILBOX" - directive will no longer function. We do not know of any clients - that have this problem currently. - * Any applications that link libcyrus.a now need to link - libcyrus_min.a as well. - -Upgrading from 2.1.13 or earlier - - * We are now more forgiving of MIME boundry headers generated by - earlier versions of eudora. However, if you have messages already - in the mailstore that you want to fix you will need to reconstruct - the affected mailboxes to regenerate the cached bodystructure data - to take this into account. Nothing needs to be done for new - messages to be treated in this way. - -Upgrading from 2.1.12 or earlier - - * timsieved was corrected to behave properly in the altnamespace - configuration. However, this means that it was previously looking - for sieve scripts in "user.name" format instead of the (correct) - "user^name" format. A sample script to do this (which should be run - in the top level of the sieve directory) is in - tools/convert-sieve.pl. Note that this is only needed if you are - running with altnamespace turned on. - -Upgrading from 2.1.3 or earlier - - * If you use notifications (previously notify_zephyr or notify_unix) - this functionality has been seperated out to notifyd. See the - notifyd manpage and example entries in master/conf. - -Upgrading from 2.1.2 or earlier - - * Sieve has been updated to be compliant with RFC 3028 and - draft-martin-sieve-notify-01. All notify actions and any fileinto - and/or redirect actions using stringlists will have to be - updated/changed. - -Upgrading from 2.0.16 or earlier - - * You must install and configure Cyrus SASL version 2 to use Cyrus - IMAP 2.1 and later. You can download SASL at - http://www.cyrusimap.org/mediawiki/index.php/Downloads#SASL_Library. - * If you use timsieved to manage Sieve scripts, and have enabled the - alternate namespace and/or the Unix hierarchy separator, run the - script "tools/translatesieve". This script will translate the - folder names in fileinto actions. - * Cyrus now uses the service name "sieve" instead of "imap" for the - SASL profile of timsieved. If you use timsieved to manage Sieve - scripts, be sure to update your password checking mechanism - appropriately, - * If you have enabled the improved directory hashing scheme, run the - script "tools/rehash full". This script will rehash your existing - directories. - * The hashed deliver databases (used for duplicate delivery - suppression and Sieve) have been merged into a single deliver.db - database. You can safely remove the entire /var/imap/deliverdb - directory structure after shutting down the server. - * All of the Cyrus databases have been unified under a single BDB - environment. A new ctl_cyrusdb tool is now used for database - recovery and checkpointing instead of ctl_mboxlist and ctl_deliver. - You should replace the appropriate START and EVENTS entries in - cyrus.conf with those in the sample configurations in the - master/conf directory. - * Cyrus now caches SSL/TLS sessions in an external database. If you - have support for SSL/TLS, and haven't disabled session caching (see - imapd.conf(5)), you should add a line like the following to the - EVENTS section of cyrus.conf to prune expired sessions from the - database: - - # this is only necessary if caching TLS sessions - tlsprune cmd="tls_prune" period=1440 - -Upgrading from 2.0.6, 2.0.7, 2.0.8, or 2.0.9 or earlier - - * If you use timsieved to manage Sieve scripts, run the script - "tools/upgradesieve". timsieved now uses symlinks instead of hard - links. - -Upgrading from a previous 2.0 version to 2.0.6 - - Warning: You do not need to follow these instructions if you're - upgrading from version 1.6. - - * You can now pick whether to use Berkeley db to store seen state, - the subscription files, and the mailboxes file or a flat text file, - at compile time only. (Look in imap/seen_db.c and imap/mboxlist.h.) - * The format of the mailboxes file and seen state has changed. It is - not possible to preserve seen state, but upgrade the mailboxes file - as follows: - - 1. Run ctl_mboxlist -d > mboxlist.temp to dump existing mailboxes. - 2. Remove old database files: rm mailboxes.db db/* user/*/*.seen - 3. With the new version of ctl_mboxlist, run ctl_mboxlist -u < - mboxlist.temp. - -Upgrading from 1.6.22 or 1.6.24 - - Warning: Cyrus imapd 2.0 will automatically convert on-disk file - formats as the server is used. It is not possible to run 1.6 after 2.0 - has been used on a mail spool without reconstructing every mailbox. - - * Create some extra directories and remove the duplicate delivery - database: - - mkdir /var/imap/db - mkdir /var/imap/socket - chown cyrus /var/imap/db /var/imap/socket - rm -rf /var/imap/deliverdb - - * Convert mailboxes file to Berkeley DB: - - su cyrus - cd /var/imap - ctl_mboxlist -u < mailboxes - ctl_cyrusdb -c - - Please keep a backup of your mailboxes file. You can dump an - old-style mailboxes file by using ctl_mboxlist -d. - * remove "/etc/inetd.conf" entries. The imap and popd3d lines need to - be removed from /etc/inetd.conf and inetd needs to be restarted. - * master process configuration: You'll need to configure the master - process Cyrus process and ensure that it starts on boot. see this - section of the configuration instructions. - * MTA configuration. You will have to reconfigure your MTA to speak - to lmtpd. See this section of the configuration document. - * cyrus.seen conversion. The cyrus.seen file will be automatically - upgraded as users read mail. After some time, you might want to - delete the cyrus.seen file in each mailbox; it is superceded by the - user/joe.seen file. - * cyrus.index conversion. The cyrus.index file will be automatically - upgraded the first time each mailbox is SELECTed. - * Netnews conversion. The netnews programs are no longer built. If - you are using netnews, you will need to apply the diff in the - netnews/ directory to INN or see if INN is now distributing those - changes. You will also want to run remotepurge on a regular basis - to purge old netnews posts. - -Upgrading from 1.6.13 - - * Upgrading from the Cyrus IMAP server version 1.6.13 or earlier: if - you use Sieve, you should run the "tools/upgradesieve" script, as - the format of the "/usr/sieve" directory has changed slightly. - - timsieved, included in this release, will handle maintenance of - Sieve scripts. - * Upgrading from the Cyrus IMAP server version 1.6.10 or earlier: if - you export news via the IMAP server, you'll have to change your - "newsfeeds" file to contain - - collectnews!:*:Tf,WR:collectnews - - The format of the input to collectnews has changed. - - Duplicate delivery suppression is now required for Sieve. - * Upgrading from the Cyrus IMAP server version 1.6.1 or earlier - (including 1.5.x!): the quota and user directories are now hashed - by the first character of the username. This is to reduce the - number of entries in any given directory. It doesn't do a great job - (and in some cases it will do a really poor job) but as a quick - hack it shouldn't make things worse. Optionally, the data - partitions can also be hashed by enabling the "hashimapspool" - option. - - You must hash your directories using the "dohash" script in the - tools subdirectory. (If you want to hash your mail spool, be sure - to set "hashimapspool" before running "dohash".) This must be run - as the Cyrus user. Be sure to stop mail service while converting. - Doing this in single user mode is probably the safest. - -Upgrading from 1.5 - - * Upgrading from the Cyrus IMAP server version 1.5 or earlier: - libsasl is now required. Configuring SASL to work may be a chore, - especially if you use shadow passwords. - * An ANSI C compiler is now required. gcc should work fine and can be - acquired from http://www.gnu.org/software/gcc/gcc.html. - * Make sure to read the upgrading instructions under 1.6 above. - * Upgrading from 1.5.14 or earlier requires deleting the delivered - database. Remove the file delivered.db in the configdirectory and - make a directory called "deliverdb" in the configdirectory. This - may cause some duplicates to get through. - * Upgrading from 1.5.14 or earlier requires removing the PTS cache - database (if the AFS PTS group support is used, which is not the - default). The PTS cache is in /var/ptclient/ptscache.db, and you - should remove it. This is because the format for the PTS cache for - IMSP has changed. If you use AFS ACLs, IMSPd, and IMAPd on the same - machine, make sure you have version 1.5a5 of the IMSP server for - this version of the IMAP server. (If you don't have IMSP, or AFS, - don't worry about it.) - diff -Nru cyrus-imapd-2.4-2.4.9/doc/text/specs cyrus-imapd-2.4-2.4.12/doc/text/specs --- cyrus-imapd-2.4-2.4.9/doc/text/specs 2011-06-21 19:51:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/doc/text/specs 2011-10-04 20:03:54.000000000 +0000 @@ -66,7 +66,17 @@ RFC 5524 Extended URLFETCH for Binary and Converted Parts - draft-daboo-imap-annotatemore IMAP ANNOTATEMORE Extension + draft-daboo-imap-annotatemore ANNOTATEMORE Draft + + RFC 5464 The IMAP METADATA Extension + + draft-ietf-morg-list-specialuse IMAP SPECIALUSE Draft (And non-standard + Google XLIST support) + + RFC 5819 IMAP4 Extension for Returning STATUS Information in Extended + LIST + + RFC 5957 Display-Based Address Sorting for the IMAP4 SORT Extension POP diff -Nru cyrus-imapd-2.4-2.4.9/imap/annotate.c cyrus-imapd-2.4-2.4.12/imap/annotate.c --- cyrus-imapd-2.4-2.4.9/imap/annotate.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/annotate.c 2011-10-04 19:53:03.000000000 +0000 @@ -1428,6 +1428,14 @@ return write_entry(mboxname, entry, userid, &theentry, tid); } +int annotatemore_commit(struct txn *tid) { + return tid ? DB->commit(anndb, tid) : 0; +} + +int annotatemore_abort(struct txn *tid) { + return tid ? DB->abort(anndb, tid) : 0; +} + struct storedata { struct namespace *namespace; const char *userid; @@ -2275,7 +2283,8 @@ ae = xmalloc(sizeof(struct annotate_st_entry)); p2 = p; - for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/'); + for (; *p && (isalnum(*p) || + *p=='.' || *p=='-' || *p=='_' || *p=='/' || *p==':'); p++); /* TV-TODO: should test for empty */ ae->name = xstrndup(p2, p-p2); diff -Nru cyrus-imapd-2.4-2.4.9/imap/annotate.h cyrus-imapd-2.4-2.4.12/imap/annotate.h --- cyrus-imapd-2.4-2.4.9/imap/annotate.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/annotate.h 2011-10-04 19:53:03.000000000 +0000 @@ -143,6 +143,8 @@ const char *value, const char *contenttype, size_t size, time_t modifiedsince, struct txn **tid); +int annotatemore_commit(struct txn *tid); +int annotatemore_abort(struct txn *tid); /* rename the annotations for 'oldmboxname' to 'newmboxname' * if 'olduserid' is non-NULL then the private annotations diff -Nru cyrus-imapd-2.4-2.4.9/imap/append.c cyrus-imapd-2.4-2.4.12/imap/append.c --- cyrus-imapd-2.4-2.4.9/imap/append.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/append.c 2011-10-04 19:53:03.000000000 +0000 @@ -456,7 +456,7 @@ if (destfile) { /* this will hopefully ensure that the link() actually happened and makes sure that the file actually hits disk */ - r = fsync(fileno(destfile)); + fsync(fileno(destfile)); fclose(destfile); } if (r) { diff -Nru cyrus-imapd-2.4-2.4.9/imap/duplicate.c cyrus-imapd-2.4-2.4.12/imap/duplicate.c --- cyrus-imapd-2.4-2.4.9/imap/duplicate.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/duplicate.c 2011-10-04 19:53:03.000000000 +0000 @@ -121,9 +121,12 @@ return r; } -time_t duplicate_check(char *id, int idlen, const char *to, int tolen) +time_t duplicate_check(duplicate_key_t *dkey) { char buf[1024]; + int idlen = strlen(dkey->id); + int tolen = strlen(dkey->to); + int datelen = strlen(dkey->date); int r; const char *data = NULL; int len = 0; @@ -131,16 +134,18 @@ if (!duplicate_dbopen) return 0; - if (idlen + tolen > (int) sizeof(buf) - 30) return 0; - memcpy(buf, id, idlen); + if (idlen + tolen + datelen > (int) sizeof(buf) - 30) return 0; + memcpy(buf, dkey->id, idlen); buf[idlen] = '\0'; - memcpy(buf + idlen + 1, to, tolen); + memcpy(buf + idlen + 1, dkey->to, tolen); buf[idlen + tolen + 1] = '\0'; + assert(dkey->date != NULL); + memcpy(buf + idlen + tolen + 2, dkey->date, datelen); + buf[idlen + tolen + datelen + 2] = '\0'; do { r = DB->fetch(dupdb, buf, - idlen + tolen + 2, /* +2 b/c 1 for the center null; - +1 for the terminating null */ + idlen + tolen + datelen + 3, /* We have three concatenated values now, all parts ending with '\0' */ &data, &len, NULL); } while (r == CYRUSDB_AGAIN); @@ -152,54 +157,59 @@ memcpy(&mark, data, sizeof(time_t)); } else if (r != CYRUSDB_OK) { if (r != CYRUSDB_NOTFOUND) { - syslog(LOG_ERR, "duplicate_check: error looking up %s/%s: %s", - id, to, - cyrusdb_strerror(r)); + syslog(LOG_ERR, "duplicate_check: error looking up %s/%s/%s: %s", + dkey->id, dkey->to, dkey->date, + cyrusdb_strerror(r)); } mark = 0; } - syslog(LOG_DEBUG, "duplicate_check: %-40s %-20s %ld", - buf, buf+idlen+1, mark); + syslog(LOG_DEBUG, "duplicate_check: %-40s %-20s %-40s %ld", + buf, buf+idlen+1, buf+idlen+tolen+2, mark); return mark; } -void duplicate_log(char *msgid, const char *name, char *action) +void duplicate_log(duplicate_key_t *dkey, char *action) { - syslog(LOG_INFO, "dupelim: eliminated duplicate message to %s id %s (%s)", - name, msgid, action); + assert(dkey->date != NULL); + syslog(LOG_INFO, "dupelim: eliminated duplicate message to %s id %s date %s (%s)", + dkey->to, dkey->id, dkey->date, action); if (config_auditlog) - syslog(LOG_NOTICE, "auditlog: duplicate sessionid=<%s> action=<%s> message-id=%s user=<%s>", - session_id(), action, msgid, name); + syslog(LOG_NOTICE, "auditlog: duplicate sessionid=<%s> action=<%s> message-id=%s user=<%s> date=<%s>", + session_id(), action, dkey->id, dkey->to, dkey->date); } -void duplicate_mark(char *id, int idlen, const char *to, int tolen, time_t mark, - unsigned long uid) +void duplicate_mark(duplicate_key_t *dkey, time_t mark, unsigned long uid) { char buf[1024], data[100]; + int idlen = strlen(dkey->id); + int tolen = strlen(dkey->to); + int datelen = strlen(dkey->date); int r; if (!duplicate_dbopen) return; - if (idlen + tolen > (int) sizeof(buf) - 30) return; - memcpy(buf, id, idlen); + if (idlen + tolen + datelen > (int) sizeof(buf) - 30) return; + memcpy(buf, dkey->id, idlen); buf[idlen] = '\0'; - memcpy(buf + idlen + 1, to, tolen); + memcpy(buf + idlen + 1, dkey->to, tolen); buf[idlen + tolen + 1] = '\0'; + assert(dkey->date != NULL); + memcpy(buf + idlen + tolen + 2, dkey->date, datelen); + buf[idlen + tolen + datelen + 2] = '\0'; memcpy(data, &mark, sizeof(mark)); memcpy(data + sizeof(mark), &uid, sizeof(uid)); do { r = DB->store(dupdb, buf, - idlen + tolen + 2, /* +2 b/c 1 for the center null; - +1 for the terminating null */ + idlen + tolen + datelen + 3, /* We have three concatenated values now, all parts ending with '\0' */ data, sizeof(mark)+sizeof(uid), NULL); } while (r == CYRUSDB_AGAIN); - syslog(LOG_DEBUG, "duplicate_mark: %-40s %-20s %ld %lu", - buf, buf+idlen+1, mark, uid); + syslog(LOG_DEBUG, "duplicate_mark: %-40s %-20s %-40s %ld %lu", + buf, buf+idlen+1, buf+idlen+tolen+2, mark, uid); return; } diff -Nru cyrus-imapd-2.4-2.4.9/imap/duplicate.h cyrus-imapd-2.4-2.4.12/imap/duplicate.h --- cyrus-imapd-2.4-2.4.9/imap/duplicate.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/duplicate.h 2011-10-04 19:53:03.000000000 +0000 @@ -49,12 +49,19 @@ /* name of the duplicate delivery database */ #define FNAME_DELIVERDB "/deliver.db" +typedef struct duplicate_key { + const char *id; + const char *to; + const char *date; +} duplicate_key_t; + +#define DUPLICATE_INITIALIZER { NULL, NULL, NULL } + int duplicate_init(const char *fname, int myflags); -time_t duplicate_check(char *id, int idlen, const char *to, int tolen); -void duplicate_log(char *msgid, const char *name, char *action); -void duplicate_mark(char *id, int idlen, const char *to, int tolen, time_t mark, - unsigned long uid); +time_t duplicate_check(duplicate_key_t *dkey); +void duplicate_log(duplicate_key_t *dkey, char *action); +void duplicate_mark(duplicate_key_t *dkey, time_t mark, unsigned long uid); int duplicate_find(char *msgid, int (*proc)(), void *rock); int duplicate_prune(int seconds, struct hash_table *expire_table); diff -Nru cyrus-imapd-2.4-2.4.9/imap/imapd.c cyrus-imapd-2.4-2.4.12/imap/imapd.c --- cyrus-imapd-2.4-2.4.9/imap/imapd.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/imapd.c 2011-10-04 19:53:03.000000000 +0000 @@ -299,6 +299,7 @@ { "ESEARCH", 2 }, { "SORT", 2 }, { "SORT=MODSEQ", 2 }, + { "SORT=DISPLAY", 2 }, { "THREAD=ORDEREDSUBJECT", 2 }, { "THREAD=REFERENCES", 2 }, { "ANNOTATEMORE", 2 }, @@ -438,7 +439,7 @@ static int subscribed_cb(const char *name, int matchlen, int maycreate, struct list_rock *rock); static void list_data(struct listargs *listargs); -static void list_data_remote(char *tag, struct listargs *listargs); +static int list_data_remote(char *tag, struct listargs *listargs); extern int saslserver(sasl_conn_t *conn, const char *mech, const char *init_resp, const char *resp_prefix, @@ -3657,7 +3658,7 @@ prot_printf(backend_current->out, "%s %s {" SIZE_T_FMT "+}\r\n%s", tag, cmd, strlen(name), name); if (v->uidvalidity) { - prot_printf(backend_current->out, " (QRESYNC %lu " MODSEQ_FMT, + prot_printf(backend_current->out, " (QRESYNC (%lu " MODSEQ_FMT, v->uidvalidity, v->modseq); if (v->sequence) { prot_printf(backend_current->out, " %s", v->sequence); @@ -3666,7 +3667,7 @@ prot_printf(backend_current->out, " (%s %s)", v->match_seq, v->match_uid); } - prot_printf(backend_current->out, ")"); + prot_printf(backend_current->out, "))"); } prot_printf(backend_current->out, "\r\n"); @@ -5996,7 +5997,8 @@ mailboxes locally (frontend) and the subscriptions remotely (INBOX backend). We can only pass the buck to the INBOX backend if its running a unified config */ - list_data_remote(tag, listargs); + if (list_data_remote(tag, listargs)) + return; } else { list_data(listargs); } @@ -6633,11 +6635,14 @@ c = getword(imapd_in, &arg); if (c != ' ' && c != ')') goto badlist; if (arg.s[0] == '\0') goto badlist; - newquota = 0; - for (p = arg.s; *p; p++) { - if (!Uisdigit(*p)) goto badlist; - newquota = newquota * 10 + *p - '0'; - if (newquota < 0) goto badlist; /* overflow */ + /* accept "(storage -1)" as "()" to make move from unpatched cyrus possible */ + if (strcmp(arg.s, "-1") != 0) { + newquota = 0; + for (p = arg.s; *p; p++) { + if (!Uisdigit(*p)) goto badlist; + newquota = newquota * 10 + *p - '0'; + if (newquota < 0) goto badlist; /* overflow */ + } } if (c == ')') break; } @@ -7101,8 +7106,8 @@ sawone[NAMESPACE_INBOX] = !mboxlist_lookup(inboxname, NULL, NULL); } - sawone[NAMESPACE_USER] = 1; - sawone[NAMESPACE_SHARED] = 1; + sawone[NAMESPACE_USER] = imapd_userisadmin ? 1 : imapd_namespace.accessible[NAMESPACE_USER]; + sawone[NAMESPACE_SHARED] = imapd_userisadmin ? 1 : imapd_namespace.accessible[NAMESPACE_SHARED]; } else { pattern = xstrdup("%"); /* now find all the exciting toplevel namespaces - @@ -8853,9 +8858,16 @@ /* note use of + to force the setting of a nonexistant * quotaroot */ - prot_printf(xfer->be->out, "Q01 SETQUOTA {" SIZE_T_FMT "+}\r\n" \ - "+%s (STORAGE %d)\r\n", - strlen(extname)+1, extname, quota.limit); + if (quota.limit == -1) { + prot_printf(xfer->be->out, "Q01 SETQUOTA {" SIZE_T_FMT "+}\r\n" \ + "+%s ()\r\n", + strlen(extname)+1, extname); + } + else { + prot_printf(xfer->be->out, "Q01 SETQUOTA {" SIZE_T_FMT "+}\r\n" \ + "+%s (STORAGE %d)\r\n", + strlen(extname)+1, extname, quota.limit); + } r = getresult(xfer->be->in, "Q01"); if (r) syslog(LOG_ERR, "Could not move mailbox: %s, " \ @@ -9142,6 +9154,10 @@ (*sortcrit)[n].key = SORT_CC; else if (!strcmp(criteria.s, "date")) (*sortcrit)[n].key = SORT_DATE; + else if (!strcmp(criteria.s, "displayfrom")) + (*sortcrit)[n].key = SORT_DISPLAYFROM; + else if (!strcmp(criteria.s, "displayto")) + (*sortcrit)[n].key = SORT_DISPLAYTO; else if (!strcmp(criteria.s, "from")) (*sortcrit)[n].key = SORT_FROM; else if (!strcmp(criteria.s, "size")) @@ -10313,16 +10329,16 @@ * Retrieves the data and prints the untagged responses for a LIST command in * the case of a remote inbox. */ -static void list_data_remote(char *tag, struct listargs *listargs) +static int list_data_remote(char *tag, struct listargs *listargs) { if ((listargs->cmd & LIST_CMD_EXTENDED) && !CAPA(backend_inbox, CAPA_LISTEXTENDED)) { /* client wants to use extended list command but backend doesn't * support it */ - prot_printf(backend_inbox->out, + prot_printf(imapd_out, "%s NO Backend server does not support LIST-EXTENDED\r\n", tag); - return; + return IMAP_MAILBOX_NOTSUPPORTED; } /* print tag, command and list selection options */ @@ -10378,6 +10394,8 @@ prot_printf(backend_inbox->out, "\r\n"); pipe_lsub(backend_inbox, imapd_userid, tag, 0, (listargs->cmd & LIST_CMD_LSUB) ? "LSUB" : "LIST"); + + return 0; } /* Reset the given sasl_conn_t to a sane state */ @@ -10991,8 +11009,7 @@ { static struct buf arg; int c; - - prot_printf(imapd_out, "* ENABLED"); + unsigned new_capa = imapd_client_capa; do { c = getword(imapd_in, &arg); @@ -11003,20 +11020,12 @@ eatline(imapd_in, c); return; } - lcase(arg.s); - if (!strcmp(arg.s, "condstore")) { - imapd_client_capa |= CAPA_CONDSTORE; - prot_printf(imapd_out, " CONDSTORE"); - } - else if (!strcmp(arg.s, "qresync")) { - imapd_client_capa |= CAPA_QRESYNC | CAPA_CONDSTORE; - if (imapd_index) imapd_index->qresync = 1; - prot_printf(imapd_out, " QRESYNC CONDSTORE"); - } + if (!strcasecmp(arg.s, "condstore")) + new_capa |= CAPA_CONDSTORE; + else if (!strcasecmp(arg.s, "qresync")) + new_capa |= CAPA_QRESYNC | CAPA_CONDSTORE; } while (c == ' '); - prot_printf(imapd_out, "\r\n"); - /* check for CRLF */ if (c == '\r') c = prot_getc(imapd_in); if (c != '\n') { @@ -11026,6 +11035,23 @@ return; } + prot_printf(imapd_out, "* ENABLED"); + if (!(imapd_client_capa & CAPA_CONDSTORE) && + (new_capa & CAPA_CONDSTORE)) { + prot_printf(imapd_out, " CONDSTORE"); + } + if (!(imapd_client_capa & CAPA_QRESYNC) && + (new_capa & CAPA_QRESYNC)) { + prot_printf(imapd_out, " QRESYNC"); + /* RFC5161 says that enable while selected is actually bogus, + * but it's no skin off our nose to support it */ + if (imapd_index) imapd_index->qresync = 1; + } + prot_printf(imapd_out, "\r\n"); + + /* track the new capabilities */ + imapd_client_capa = new_capa; + prot_printf(imapd_out, "%s OK %s\r\n", tag, error_message(IMAP_OK_COMPLETED)); } diff -Nru cyrus-imapd-2.4-2.4.9/imap/imapd.h cyrus-imapd-2.4-2.4.12/imap/imapd.h --- cyrus-imapd-2.4-2.4.9/imap/imapd.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/imapd.h 2011-10-04 19:53:03.000000000 +0000 @@ -218,6 +218,8 @@ SORT_ARRIVAL, SORT_CC, SORT_DATE, + SORT_DISPLAYFROM, + SORT_DISPLAYTO, SORT_FROM, SORT_SIZE, SORT_SUBJECT, diff -Nru cyrus-imapd-2.4-2.4.9/imap/index.c cyrus-imapd-2.4-2.4.12/imap/index.c --- cyrus-imapd-2.4-2.4.9/imap/index.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/index.c 2011-10-04 19:53:03.000000000 +0000 @@ -143,6 +143,7 @@ static void index_checkflags(struct index_state *state, int dirty); static char *find_msgid(char *str, char **rem); static char *get_localpart_addr(const char *header); +static char *get_displayname(const char *header); static char *index_extract_subject(const char *subj, size_t len, int *is_refwd); static char *_index_extract_subject(char *s, int *is_refwd); static void index_get_ids(MsgData *msgdata, @@ -174,6 +175,7 @@ struct vanished_params *params); static struct seqset *_parse_sequence(struct index_state *state, const char *sequence, int usinguid); +static void massage_header(char *hdr); /* NOTE: Make sure these are listed in CAPABILITY_STRING */ static const struct thread_algorithm thread_algs[] = { @@ -1350,7 +1352,8 @@ if (CONFIG_TIMING_VERBOSE) { int len; char *key_names[] = { "SEQUENCE", "ARRIVAL", "CC", "DATE", "FROM", - "SIZE", "SUBJECT", "TO", "ANNOTATION", "MODSEQ" }; + "SIZE", "SUBJECT", "TO", "ANNOTATION", "MODSEQ", + "DISPLAYFROM", "DISPLAYTO" }; char buf[1024] = ""; while (sortcrit->key && sortcrit->key < VECTOR_SIZE(key_names)) { @@ -3505,9 +3508,10 @@ for (j = 0; sortcrit[j].key; j++) { label = sortcrit[j].key; - if ((label == SORT_CC || + if ((label == SORT_CC || label == SORT_DATE || label == SORT_FROM || label == SORT_SUBJECT || - label == SORT_TO || label == LOAD_IDS) && + label == SORT_TO || label == LOAD_IDS || + label == SORT_DISPLAYFROM || label == SORT_DISPLAYTO) && !did_cache) { /* fetch cached info */ @@ -3578,6 +3582,14 @@ index_get_ids(cur, envtokens, cacheitem_base(&im->record, CACHE_HEADERS), cacheitem_size(&im->record, CACHE_HEADERS)); break; + case SORT_DISPLAYFROM: + cur->displayfrom = get_displayname( + cacheitem_base(&im->record, CACHE_FROM)); + break; + case SORT_DISPLAYTO: + cur->displayto = get_displayname( + cacheitem_base(&im->record, CACHE_TO)); + break; } } @@ -3587,17 +3599,58 @@ return md; } +static char *get_localpart_addr(const char *header) +{ + struct address *addr = NULL; + char *ret; + + parseaddr_list(header, &addr); + if (!addr) return xstrdup(""); + + if (addr->mailbox) { + ret = xstrdup(addr->mailbox); + } + else { + ret = xstrdup(""); + } + + parseaddr_free(addr); + + return ret; +} + /* - * Get the 'local-part' of an address from a header + * Get the 'display-name' of an address from a header */ -static char *get_localpart_addr(const char *header) +static char *get_displayname(const char *header) { struct address *addr = NULL; char *ret; parseaddr_list(header, &addr); - ret = xstrdup(addr && addr->mailbox ? addr->mailbox : ""); + if (!addr) return xstrdup(""); + + if (addr->name && addr->name[0]) { + char *p; + ret = xstrdup(addr->name); + for (p = ret; *p; p++) + *p = toupper(*p); + } + else if (addr->domain && addr->mailbox) { + /* mailbox@domain */ + int len = strlen(addr->mailbox) + strlen(addr->domain) + 2; + ret = xmalloc(len); + snprintf(ret, len, "%s@%s", addr->mailbox, addr->domain); + } + else if (addr->mailbox) { + ret = xstrdup(addr->mailbox); + } + else { + ret = xstrdup(""); + } + parseaddr_free(addr); + return ret; } @@ -3645,6 +3698,10 @@ free(buf); + for (s = base; *s; s++) { + *s = toupper(*s); + } + return base; } @@ -3906,6 +3963,7 @@ /* allocate some space for refs */ msgdata->ref = (char **) xmalloc(refsize * sizeof(char *)); /* find references */ + massage_header(buf); refstr = buf; while ((ref = find_msgid(refstr, &refstr)) != NULL) { /* reallocate space for this msgid if necessary */ @@ -4002,6 +4060,12 @@ case SORT_MODSEQ: ret = numcmp(md1->modseq, md2->modseq); break; + case SORT_DISPLAYFROM: + ret = strcmp(md1->displayfrom, md2->displayfrom); + break; + case SORT_DISPLAYTO: + ret = strcmp(md1->displayto, md2->displayto); + break; } } while (!ret && sortcrit[i++].key != SORT_SEQUENCE); @@ -4021,6 +4085,8 @@ FREE(md->cc); FREE(md->from); FREE(md->to); + FREE(md->displayfrom); + FREE(md->displayto); FREE(md->xsubj); FREE(md->msgid); for (i = 0; i < md->nref; i++) @@ -4976,6 +5042,9 @@ struct mailbox *mailbox = state->mailbox; struct index_map *im = &state->map[msgno-1]; + /* flush any previous data */ + memset(&over, 0, sizeof(struct nntp_overview)); + if (mailbox_cacherecord(mailbox, &im->record)) return NULL; /* upper layers can cope! */ @@ -5031,8 +5100,6 @@ over.from = from; } - else - over.from = NULL; /* massage references */ refhdr.s = "references"; diff -Nru cyrus-imapd-2.4-2.4.9/imap/index.h cyrus-imapd-2.4-2.4.12/imap/index.h --- cyrus-imapd-2.4-2.4.9/imap/index.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/index.h 2011-10-04 19:53:03.000000000 +0000 @@ -145,6 +145,8 @@ char *cc; /* local-part of first "cc" address */ char *from; /* local-part of first "from" address */ char *to; /* local-part of first "to" address */ + char *displayfrom; /* display-name of first "from" address */ + char *displayto; /* display-name of first "to" address */ char *xsubj; /* extracted subject text */ unsigned xsubj_hash; /* hash of extracted subject text */ int is_refwd; /* is message a reply or forward? */ diff -Nru cyrus-imapd-2.4-2.4.9/imap/ipurge.c cyrus-imapd-2.4-2.4.12/imap/ipurge.c --- cyrus-imapd-2.4-2.4.9/imap/ipurge.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/ipurge.c 2011-10-04 19:53:03.000000000 +0000 @@ -82,6 +82,7 @@ int exact = -1; int pattern = -1; int skipflagged = 0; +int onlydeleted = 0; int use_sentdate = 1; int invertmatch = 0; @@ -118,7 +119,7 @@ fatal("must run as the Cyrus user", EC_USAGE); } - while ((option = getopt(argc, argv, "C:hxd:b:k:m:fsXi")) != EOF) { + while ((option = getopt(argc, argv, "C:hxd:b:k:m:fsXio")) != EOF) { switch (option) { case 'C': /* alt config file */ alt_config = optarg; @@ -162,6 +163,9 @@ case 'i' : { invertmatch = 1; } break; + case 'o' : { + onlydeleted = 1; + } break; case 'h': default: usage(argv[0]); } @@ -219,7 +223,7 @@ int usage(char *name) { - printf("usage: %s [-f] [-s] [-C ] [-x] [-X] [-i] {-d days | -b bytes|-k Kbytes|-m Mbytes}\n\t[mboxpattern1 ... [mboxpatternN]]\n", name); + printf("usage: %s [-f] [-s] [-C ] [-x] [-X] [-i] [-o] {-d days | -b bytes|-k Kbytes|-m Mbytes}\n\t[mboxpattern1 ... [mboxpatternN]]\n", name); printf("\tthere are no defaults and at least one of -d, -b, -k, -m\n\tmust be specified\n"); printf("\tif no mboxpattern is given %s works on all mailboxes\n", name); printf("\t -x specifies an exact match for days or size\n"); @@ -227,6 +231,7 @@ printf("\t -s skip over messages that are flagged.\n"); printf("\t -X use delivery time instead of date header for date matches.\n"); printf("\t -i invert match logic: -x means not equal, date is for newer, size is for smaller.\n"); + printf("\t -o only purge messages that are deleted.\n"); exit(0); } @@ -294,6 +299,9 @@ if (skipflagged && record->system_flags & FLAG_FLAGGED) return 0; + if (onlydeleted && !(record->system_flags & FLAG_DELETED)) + return 0; + if (exact == 1) { if (days >= 0) { /* printf("comparing %ld :: %ld\n", my_time, the_record->sentdate); */ diff -Nru cyrus-imapd-2.4-2.4.9/imap/lmtpd.c cyrus-imapd-2.4-2.4.12/imap/lmtpd.c --- cyrus-imapd-2.4-2.4.9/imap/lmtpd.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/lmtpd.c 2011-10-04 19:53:03.000000000 +0000 @@ -496,6 +496,7 @@ const char *user, char *notifyheader, const char *mailboxname, + char *date, int quotaoverride, int acloverride) { @@ -503,6 +504,7 @@ struct appendstate as; unsigned long uid; const char *notifier; + duplicate_key_t dkey = {NULL, NULL, NULL}; r = append_setup(&as, mailboxname, authuser, authstate, acloverride ? 0 : ACL_POST, @@ -511,9 +513,12 @@ (long) size : 0); /* check for duplicate message */ + dkey.id = id; + dkey.to = mailboxname; + dkey.date = date; if (!r && id && dupelim && !(as.mailbox->i.options & OPT_IMAP_DUPDELIVER) && - duplicate_check(id, strlen(id), mailboxname, strlen(mailboxname))) { - duplicate_log(id, mailboxname, "delivery"); + duplicate_check(&dkey)) { + duplicate_log(&dkey, "delivery"); append_abort(&as); return 0; } @@ -539,8 +544,7 @@ syslog(LOG_INFO, "Delivered: %s to mailbox: %s", id, mailboxname); if (dupelim && id) { - duplicate_mark(id, strlen(id), mailboxname, - strlen(mailboxname), time(NULL), uid); + duplicate_mark(&dkey, time(NULL), uid); } mailbox_close(&mailbox); } @@ -605,7 +609,6 @@ struct rcpt *rc; struct backend *remote; int i = 0; - int r = 0; lt->from = msgdata->return_path; lt->auth = d->authas[0] ? d->authas : NULL; @@ -627,7 +630,10 @@ remote = proxy_findserver(d->server, &lmtp_protocol, "", &backend_cached, NULL, NULL, NULL); if (remote) { - r = lmtp_runtxn(remote, lt); + int txn_timeout = config_getint(IMAPOPT_LMTPTXN_TIMEOUT); + if (txn_timeout) + prot_settimeout(remote->in, txn_timeout); + lmtp_runtxn(remote, lt); } else { /* remote server not available; tempfail all deliveries */ for (rc = d->to, i = 0; i < d->rnum; i++) { @@ -688,7 +694,7 @@ md->size, flag, nflags, mydata->authuser, mydata->authstate, md->id, NULL, mydata->notifyheader, - namebuf, quotaoverride, 0); + namebuf, md->date, quotaoverride, 0); } /* case 2: ordinary user */ @@ -708,7 +714,7 @@ md->size, flag, nflags, mydata->authuser, mydata->authstate, md->id, username, mydata->notifyheader, - namebuf, quotaoverride, 0); + namebuf, md->date, quotaoverride, 0); } if (ret2 == IMAP_MAILBOX_NONEXISTENT && mailboxname && config_getswitch(IMAPOPT_LMTP_FUZZY_MAILBOX_MATCH) && @@ -718,7 +724,7 @@ md->size, flag, nflags, mydata->authuser, mydata->authstate, md->id, username, mydata->notifyheader, - namebuf, quotaoverride, 0); + namebuf, md->date, quotaoverride, 0); } if (ret2) { /* normal delivery to INBOX */ @@ -730,7 +736,7 @@ md->size, flag, nflags, (char *) username, authstate, md->id, username, mydata->notifyheader, - namebuf, quotaoverride, 1); + namebuf, md->date, quotaoverride, 1); if (authstate) auth_freestate(authstate); } diff -Nru cyrus-imapd-2.4-2.4.9/imap/lmtpd.h cyrus-imapd-2.4-2.4.12/imap/lmtpd.h --- cyrus-imapd-2.4-2.4.9/imap/lmtpd.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/lmtpd.h 2011-10-04 19:53:03.000000000 +0000 @@ -89,6 +89,7 @@ const char *user, char *notifyheader, const char *mailboxname, + char *date, int quotaoverride, int acloverride); diff -Nru cyrus-imapd-2.4-2.4.9/imap/lmtpengine.c cyrus-imapd-2.4-2.4.12/imap/lmtpengine.c --- cyrus-imapd-2.4-2.4.9/imap/lmtpengine.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/lmtpengine.c 2011-10-04 19:53:03.000000000 +0000 @@ -282,6 +282,7 @@ ret->return_path = NULL; ret->rcpt = NULL; ret->rcpt_num = 0; + ret->date = NULL; ret->authuser = NULL; ret->authstate = NULL; @@ -319,6 +320,9 @@ } free(m->rcpt); } + if (m->date) { + free(m->date); + } if (m->authuser) { free(m->authuser); @@ -462,6 +466,7 @@ { char *p, *ret; int len; + int lmtp_strict_rfc2821 = config_getswitch(IMAPOPT_LMTP_STRICT_RFC2821); p = s; @@ -500,6 +505,12 @@ if (!*++p) return 0; } else { + if (*p & 128 && !lmtp_strict_rfc2821) { + /* this prevents us from becoming a backscatter + source if our MTA allows 8bit in local-part + of adresses. */ + *p = 'X'; + } if (*p <= ' ' || (*p & 128) || strchr("<>()[]\\,;:\"", *p)) return 0; } @@ -734,12 +745,16 @@ } /* get date */ - if (!spool_getheader(m->hdrcache, "date")) { + if (!(body = spool_getheader(m->hdrcache, "date"))) { /* no date, create one */ addbody = xstrdup(datestr); + m->date = xstrdup(datestr); fprintf(f, "Date: %s\r\n", addbody); spool_cache_header(xstrdup("Date"), addbody, m->hdrcache); } + else { + m->date = xstrdup(body[0]); + } if (!m->return_path && (body = msg_getheader(m, "return-path"))) { diff -Nru cyrus-imapd-2.4-2.4.9/imap/lmtpengine.h cyrus-imapd-2.4-2.4.12/imap/lmtpengine.h --- cyrus-imapd-2.4-2.4.9/imap/lmtpengine.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/lmtpengine.h 2011-10-04 19:53:03.000000000 +0000 @@ -65,6 +65,7 @@ char *return_path; /* where to return message */ address_data_t **rcpt; /* to recipients of this message */ int rcpt_num; /* number of recipients */ + char *date; /* date field of header */ /* auth state */ char *authuser; diff -Nru cyrus-imapd-2.4-2.4.9/imap/lmtp_sieve.c cyrus-imapd-2.4-2.4.12/imap/lmtp_sieve.c --- cyrus-imapd-2.4-2.4.9/imap/lmtp_sieve.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/lmtp_sieve.c 2011-10-04 19:53:03.000000000 +0000 @@ -225,6 +225,7 @@ time_t t; char datestr[80]; pid_t sm_pid, p; + duplicate_key_t dkey = DUPLICATE_INITIALIZER; smbuf[0] = "sendmail"; smbuf[1] = "-i"; /* ignore dots */ @@ -244,10 +245,13 @@ global_outgoing_count++, config_servername); namebuf = make_sieve_db(mailreceip); - duplicate_mark(buf, strlen(buf), namebuf, strlen(namebuf), t, 0); - fprintf(sm, "Message-ID: %s\r\n", buf); + dkey.id = buf; + dkey.to = namebuf; rfc822date_gen(datestr, sizeof(datestr), t); + dkey.date = datestr; + duplicate_mark(&dkey, t, 0); + fprintf(sm, "Message-ID: %s\r\n", buf); fprintf(sm, "Date: %s\r\n", datestr); fprintf(sm, "X-Sieve: %s\r\n", SIEVE_VERSION); @@ -368,6 +372,7 @@ script_data_t *sd = (script_data_t *) sc; message_data_t *m = ((deliver_data_t *) mc)->m; char buf[8192], *sievedb = NULL; + duplicate_key_t dkey = DUPLICATE_INITIALIZER; int res; /* if we have a msgid, we can track our redirects */ @@ -375,17 +380,19 @@ snprintf(buf, sizeof(buf), "%s-%s", m->id, rc->addr); sievedb = make_sieve_db(sd->username); + dkey.id = buf; + dkey.to = sievedb; + dkey.date = ((deliver_data_t *) mc)->m->date; /* ok, let's see if we've redirected this message before */ - if (duplicate_check(buf, strlen(buf), sievedb, strlen(sievedb))) { - duplicate_log(m->id, sd->username, "redirect"); + if (duplicate_check(&dkey)) { + duplicate_log(&dkey, "redirect"); return SIEVE_OK; } } if ((res = send_forward(rc->addr, m->return_path, m->data)) == 0) { /* mark this message as redirected */ - if (sievedb) duplicate_mark(buf, strlen(buf), - sievedb, strlen(sievedb), time(NULL), 0); + if (sievedb) duplicate_mark(&dkey, time(NULL), 0); snmp_increment(SIEVE_REDIRECT, 1); syslog(LOG_INFO, "sieve redirected: %s to: %s", @@ -494,7 +501,7 @@ fc->imapflags->flag, fc->imapflags->nflags, (char *) sd->username, sd->authstate, md->id, sd->username, mdata->notifyheader, - namebuf, quotaoverride, 0); + namebuf, md->date, quotaoverride, 0); } if (!ret) { @@ -554,6 +561,8 @@ return SIEVE_OK; } +static const char hex[] = "0123456789ABCDEF"; + static int autorespond(void *ac, void *ic __attribute__((unused)), void *sc, @@ -564,14 +573,25 @@ script_data_t *sd = (script_data_t *) sc; time_t t, now; int ret; + int i; + duplicate_key_t dkey = DUPLICATE_INITIALIZER; + char *id; snmp_increment(SIEVE_VACATION_TOTAL, 1); now = time(NULL); /* ok, let's see if we've responded before */ - t = duplicate_check((char *) arc->hash, SIEVE_HASHLEN, - sd->username, strlen(sd->username)); + id = xmalloc(SIEVE_HASHLEN*2 + 1); + for (i = 0; i < SIEVE_HASHLEN; i++) { + id[i*2+0] = hex[arc->hash[i] / 16]; + id[i*2+1] = hex[arc->hash[i] % 16]; + } + id[SIEVE_HASHLEN*2] = '\0'; + dkey.id = id; + dkey.to = sd->username; + dkey.date = ""; /* no date on these, ID is custom */ + t = duplicate_check(&dkey); if (t) { if (now >= t) { /* yay, we can respond again! */ @@ -585,11 +605,11 @@ } if (ret == SIEVE_OK) { - duplicate_mark((char *) arc->hash, SIEVE_HASHLEN, - sd->username, strlen(sd->username), - now + arc->days * (24 * 60 * 60), 0); + duplicate_mark(&dkey, now + arc->days * (24 * 60 * 60), 0); } + free(id); + return ret; } @@ -607,6 +627,7 @@ sieve_send_response_context_t *src = (sieve_send_response_context_t *) ac; message_data_t *md = ((deliver_data_t *) mc)->m; script_data_t *sdata = (script_data_t *) sc; + duplicate_key_t dkey = DUPLICATE_INITIALIZER; smbuf[0] = "sendmail"; smbuf[1] = "-i"; /* ignore dots */ @@ -667,8 +688,10 @@ if (sm_stat == 0) { /* sendmail exit value */ sievedb = make_sieve_db(sdata->username); - duplicate_mark(outmsgid, strlen(outmsgid), - sievedb, strlen(sievedb), t, 0); + dkey.id = outmsgid; + dkey.to = sievedb; + dkey.date = ((deliver_data_t *) mc)->m->date; + duplicate_mark(&dkey, t, 0); snmp_increment(SIEVE_VACATION_REPLIED, 1); @@ -879,6 +902,7 @@ char userbuf[MAX_MAILBOX_BUFFER] = ""; char authuserbuf[MAX_MAILBOX_BUFFER]; int r = 0; + duplicate_key_t dkey = DUPLICATE_INITIALIZER; if (!user) { /* shared mailbox, check for annotation */ @@ -935,8 +959,10 @@ domain ? domain : ""); sdb = make_sieve_db(namebuf); - duplicate_mark(msgdata->m->id, strlen(msgdata->m->id), - sdb, strlen(sdb), time(NULL), 0); + dkey.id = msgdata->m->id; + dkey.to = sdb; + dkey.date = msgdata->m->date; + duplicate_mark(&dkey, time(NULL), 0); } /* free everything */ diff -Nru cyrus-imapd-2.4-2.4.9/imap/mailbox.c cyrus-imapd-2.4-2.4.12/imap/mailbox.c --- cyrus-imapd-2.4-2.4.9/imap/mailbox.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/mailbox.c 2011-10-04 19:53:03.000000000 +0000 @@ -1433,6 +1433,42 @@ } /* + * bsearch() function to compare two index record buffers by UID + */ +static int rec_compar(const void *key, const void *mem) +{ + uint32_t uid = *((uint32_t *) key); + struct index_record record; + int r; + + if ((r = mailbox_buf_to_index_record(mem, &record))) return r; + + if (uid < record.uid) return -1; + return (uid > record.uid); +} + +/* + * Find the index record in mailbox corresponding to UID + */ +int mailbox_find_index_record(struct mailbox *mailbox, uint32_t uid, + struct index_record *record) +{ + const void *mem, *base = mailbox->index_base + mailbox->i.start_offset; + size_t num_records = mailbox->i.num_records; + size_t size = mailbox->i.record_size; + int r; + + mem = bsearch(&uid, base, num_records, size, rec_compar); + if (!mem) return CYRUSDB_NOTFOUND; + + if ((r = mailbox_buf_to_index_record(mem, record))) return r; + + record->recno = ((mem - base) / size) + 1; + + return 0; +} + +/* * Lock the index file for 'mailbox'. Reread index file header if necessary. */ int mailbox_lock_index(struct mailbox *mailbox, int locktype) @@ -2140,6 +2176,9 @@ /* Append MUST have a message with data */ assert(record->size); + /* GUID must not be null */ + assert(!message_guid_isnull(&record->guid)); + /* belt AND suspenders - check the previous record too */ if (mailbox->i.num_records) { struct index_record prev; diff -Nru cyrus-imapd-2.4-2.4.9/imap/mailbox.h cyrus-imapd-2.4-2.4.12/imap/mailbox.h --- cyrus-imapd-2.4-2.4.9/imap/mailbox.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/mailbox.h 2011-10-04 19:53:03.000000000 +0000 @@ -457,6 +457,8 @@ struct index_record *record); extern int mailbox_append_index_record(struct mailbox *mailbox, struct index_record *record); +extern int mailbox_find_index_record(struct mailbox *mailbox, uint32_t uid, + struct index_record *record); extern int mailbox_set_acl(struct mailbox *mailbox, const char *acl, int dirty_modseq); diff -Nru cyrus-imapd-2.4-2.4.9/imap/Makefile.in cyrus-imapd-2.4-2.4.12/imap/Makefile.in --- cyrus-imapd-2.4-2.4.9/imap/Makefile.in 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/Makefile.in 2011-10-04 19:53:03.000000000 +0000 @@ -347,12 +347,6 @@ $(CC) $(LDFLAGS) -o $@ unexpunge.o $(CLIOBJS) \ libimap.a $(DEPLIBS) $(LIBS) -make_md5: make_md5.o libimap.a mutex_fake.o $(DEPLIBS) - $(CC) $(LDFLAGS) -o make_md5 make_md5.o libimap.a mutex_fake.o $(DEPLIBS) $(LIBS) - -make_sha1: make_sha1.o libimap.a mutex_fake.o $(DEPLIBS) - $(CC) $(LDFLAGS) -o make_sha1 make_sha1.o libimap.a mutex_fake.o $(DEPLIBS) $(LIBS) - sync_client: sync_client.o sync_support.o \ backend.o tls.o imapparse.o libimap.a mutex_fake.o $(DEPLIBS) $(CC) $(LDFLAGS) -o \ diff -Nru cyrus-imapd-2.4-2.4.9/imap/mboxlist.c cyrus-imapd-2.4-2.4.12/imap/mboxlist.c --- cyrus-imapd-2.4-2.4.9/imap/mboxlist.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/mboxlist.c 2011-10-04 19:53:03.000000000 +0000 @@ -175,9 +175,12 @@ /* copy out interesting parts */ mbtype = strtol(data, &p, 10); - if (*p == ' ') p++; + if (!p) + return IMAP_IOERROR; + + if (*p == ' ' && (p - data) < datalen) p++; q = partition; - while (*p != ' ') { /* copy out partition name */ + while (*p != ' ' && (p - data) < datalen) { /* copy out partition name */ *q++ = *p++; } *q = '\0'; @@ -1755,6 +1758,16 @@ return r; } +int mboxlist_allmbox(const char *prefix, foreach_cb *proc, void *rock) +{ + int r; + char *search = prefix ? (char *)prefix : ""; + + r = DB->foreach(mbdb, search, strlen(search), NULL, proc, rock, 0); + + return r; +} + /* * Find all mailboxes that match 'pattern'. * 'isadmin' is nonzero if user is a mailbox admin. 'userid' @@ -1765,7 +1778,7 @@ * case it wants some persistant storage or extra data. */ /* Find all mailboxes that match 'pattern'. */ -int mboxlist_findall(struct namespace *namespace __attribute__((unused)), +int mboxlist_findall(struct namespace *namespace, const char *pattern, int isadmin, const char *userid, struct auth_state *auth_state, int (*proc)(), void *rock) { @@ -1781,6 +1794,8 @@ char domainpat[MAX_MAILBOX_BUFFER] = ""; /* do intra-domain fetches only */ char *pat = NULL; + if (!namespace) namespace = mboxname_get_adminnamespace(); + if (config_virtdomains) { char *domain; @@ -1913,7 +1928,7 @@ NULL); } - if(!r) { + if (!r && (isadmin || namespace->accessible[NAMESPACE_USER])) { cbrock.find_namespace = NAMESPACE_USER; /* switch to pattern with domain prepended */ glob_free(&cbrock.g); @@ -1958,6 +1973,8 @@ char domainpat[MAX_MAILBOX_BUFFER]; /* do intra-domain fetches only */ char *pat = NULL; + if (!namespace) namespace = mboxname_get_adminnamespace(); + if (config_virtdomains && userid && (p = strchr(userid, '@'))) { userlen = p - userid; domainlen = strlen(p); /* includes separator */ @@ -2057,33 +2074,35 @@ * * If "Other Users*" can match pattern, search for those mailboxes next */ - len = strlen(namespace->prefix[NAMESPACE_USER]); - if(len>0) len--; + if (isadmin || namespace->accessible[NAMESPACE_USER]) { + len = strlen(namespace->prefix[NAMESPACE_USER]); + if(len>0) len--; - if (!strncmp(namespace->prefix[NAMESPACE_USER], pattern, + if (!strncmp(namespace->prefix[NAMESPACE_USER], pattern, prefixlen < len ? prefixlen : len)) { - if (prefixlen < len) { - strlcpy(domainpat+domainlen, pattern+prefixlen, + if (prefixlen < len) { + strlcpy(domainpat+domainlen, pattern+prefixlen, sizeof(domainpat)-domainlen); - cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); - } - else { - strlcpy(domainpat+domainlen, "user", sizeof(domainpat)-domainlen); - strlcat(domainpat, pattern+len, sizeof(domainpat)); - cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); - } - cbrock.find_namespace = NAMESPACE_USER; - cbrock.inboxoffset = 0; + cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); + } + else { + strlcpy(domainpat+domainlen, "user", sizeof(domainpat)-domainlen); + strlcat(domainpat, pattern+len, sizeof(domainpat)); + cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); + } + cbrock.find_namespace = NAMESPACE_USER; + cbrock.inboxoffset = 0; - /* iterate through prefixes matching usermboxname */ - strlcpy(domainpat+domainlen, "user", sizeof(domainpat)-domainlen); - DB->foreach(mbdb, - domainpat, strlen(domainpat), - &find_p, &find_cb, &cbrock, - NULL); + /* iterate through prefixes matching usermboxname */ + strlcpy(domainpat+domainlen, "user", sizeof(domainpat)-domainlen); + DB->foreach(mbdb, + domainpat, strlen(domainpat), + &find_p, &find_cb, &cbrock, + NULL); - glob_free(&cbrock.g); + glob_free(&cbrock.g); + } } /* @@ -2092,55 +2111,57 @@ * search for all remaining mailboxes. * just bother looking at the ones that have the same pattern prefix. */ - len = strlen(namespace->prefix[NAMESPACE_SHARED]); - if(len>0) len--; - if (!strncmp(namespace->prefix[NAMESPACE_SHARED], pattern, - prefixlen < len ? prefixlen : len)) { + if (isadmin || namespace->accessible[NAMESPACE_SHARED]) { + len = strlen(namespace->prefix[NAMESPACE_SHARED]); + if(len>0) len--; + if (!strncmp(namespace->prefix[NAMESPACE_SHARED], pattern, + prefixlen < len ? prefixlen : len)) { - cbrock.find_namespace = NAMESPACE_SHARED; - cbrock.inboxoffset = 0; + cbrock.find_namespace = NAMESPACE_SHARED; + cbrock.inboxoffset = 0; - if (prefixlen <= len) { - /* Skip pattern which matches shared namespace prefix */ - for (p = pat+prefixlen; *p; p++) { - if (*p == '%') continue; - else if (*p == '.') p++; - break; - } + if (prefixlen <= len) { + /* Skip pattern which matches shared namespace prefix */ + for (p = pat+prefixlen; *p; p++) { + if (*p == '%') continue; + else if (*p == '.') p++; + break; + } - if (*pattern && !strchr(pattern, '.') && + if (*pattern && !strchr(pattern, '.') && pattern[strlen(pattern)-1] == '%') { /* special case: LIST "" *% -- output prefix */ - cbrock.checkshared = 1; - } + cbrock.checkshared = 1; + } - if ((cbrock.checkshared || prefixlen == len) && !*p) { - /* special case: LIST "" % -- output prefix - (if we have a shared mbox) and quit */ - strlcpy(domainpat+domainlen, "*", sizeof(domainpat)-domainlen); - cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); - cbrock.checkshared = 2; - } - else { - strlcpy(domainpat+domainlen, p, sizeof(domainpat)-domainlen); + if ((cbrock.checkshared || prefixlen == len) && !*p) { + /* special case: LIST "" % -- output prefix + (if we have a shared mbox) and quit */ + strlcpy(domainpat+domainlen, "*", sizeof(domainpat)-domainlen); + cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); + cbrock.checkshared = 2; + } + else { + strlcpy(domainpat+domainlen, p, sizeof(domainpat)-domainlen); + cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); + } + + domainpat[domainlen] = '\0'; + DB->foreach(mbdb, + domainpat, domainlen, + &find_p, &find_cb, &cbrock, + NULL); + } + else if (pattern[len] == '.') { + strlcpy(domainpat+domainlen, pattern+len+1, + sizeof(domainpat)-domainlen); cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); - } - - domainpat[domainlen] = '\0'; - DB->foreach(mbdb, - domainpat, domainlen, - &find_p, &find_cb, &cbrock, - NULL); - } - else if (pattern[len] == '.') { - strlcpy(domainpat+domainlen, pattern+len+1, - sizeof(domainpat)-domainlen); - cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); - DB->foreach(mbdb, - domainpat, domainlen+prefixlen-(len+1), - &find_p, &find_cb, &cbrock, + DB->foreach(mbdb, + domainpat, domainlen+prefixlen-(len+1), + &find_p, &find_cb, &cbrock, NULL); + } } } @@ -2535,7 +2556,7 @@ * is the user's login id. For each matching mailbox, calls * 'proc' with the name of the mailbox. */ -int mboxlist_findsub(struct namespace *namespace __attribute__((unused)), +int mboxlist_findsub(struct namespace *namespace, const char *pattern, int isadmin __attribute__((unused)), const char *userid, struct auth_state *auth_state, int (*proc)(), void *rock, int force) @@ -2553,6 +2574,8 @@ char domainpat[MAX_MAILBOX_BUFFER]; /* do intra-domain fetches only */ char *pat = NULL; + if (!namespace) namespace = mboxname_get_adminnamespace(); + if (config_virtdomains && userid && (p = strchr(userid, '@'))) { userlen = p - userid; domainlen = strlen(p); /* includes separator */ @@ -2663,20 +2686,22 @@ cbrock.usermboxnamelen = 0; } - cbrock.find_namespace = NAMESPACE_USER; - /* switch to pattern with domain prepended */ - glob_free(&cbrock.g); - cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); - cbrock.inboxoffset = 0; - if (usermboxnamelen) { - usermboxname[--usermboxnamelen] = '\0'; - cbrock.usermboxname = usermboxname; - cbrock.usermboxnamelen = usermboxnamelen; - } - /* search for all remaining mailboxes. - just bother looking at the ones that have the same pattern prefix. */ - SUBDB->foreach(subs, domainpat, domainlen + prefixlen, - &find_p, &find_cb, &cbrock, NULL); + if (isadmin || namespace->accessible[NAMESPACE_USER]) { + cbrock.find_namespace = NAMESPACE_USER; + /* switch to pattern with domain prepended */ + glob_free(&cbrock.g); + cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); + cbrock.inboxoffset = 0; + if (usermboxnamelen) { + usermboxname[--usermboxnamelen] = '\0'; + cbrock.usermboxname = usermboxname; + cbrock.usermboxnamelen = usermboxnamelen; + } + /* search for all remaining mailboxes. + just bother looking at the ones that have the same pattern prefix. */ + SUBDB->foreach(subs, domainpat, domainlen + prefixlen, + &find_p, &find_cb, &cbrock, NULL); + } done: if (subs) mboxlist_closesubs(subs); @@ -2720,6 +2745,8 @@ char domainpat[MAX_MAILBOX_BUFFER]; /* do intra-domain fetches only */ char *pat = NULL; + if (!namespace) namespace = mboxname_get_adminnamespace(); + if (config_virtdomains && userid && (p = strchr(userid, '@'))) { userlen = p - userid; domainlen = strlen(p); /* includes separator */ @@ -2827,33 +2854,36 @@ * * If "Other Users*" can match pattern, search for those subscriptions next */ - len = strlen(namespace->prefix[NAMESPACE_USER]); - if (len>0) len--; /* Remove Separator */ - if (!strncmp(namespace->prefix[NAMESPACE_USER], pattern, - prefixlen < len ? prefixlen : len)) { - - if (prefixlen < len) { - strlcpy(domainpat+domainlen, pattern+prefixlen, - sizeof(domainpat)-domainlen); - cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); - } - else { - strlcpy(domainpat+domainlen, "user", - sizeof(domainpat)-domainlen); - strlcat(domainpat, pattern+len, sizeof(domainpat)); - cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); - } - cbrock.find_namespace = NAMESPACE_USER; - cbrock.inboxoffset = 0; - /* iterate through prefixes matching usermboxname */ - strlcpy(domainpat+domainlen, "user", sizeof(domainpat)-domainlen); - SUBDB->foreach(subs, - domainpat, strlen(domainpat), - &find_p, &find_cb, &cbrock, - NULL); + if (isadmin || namespace->accessible[NAMESPACE_USER]) { + len = strlen(namespace->prefix[NAMESPACE_USER]); + if(len>0) len--; /* Remove Separator */ + if (!strncmp(namespace->prefix[NAMESPACE_USER], pattern, + prefixlen < len ? prefixlen : len)) { + + if (prefixlen < len) { + strlcpy(domainpat+domainlen, pattern+prefixlen, + sizeof(domainpat)-domainlen); + cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); + } + else { + strlcpy(domainpat+domainlen, "user", + sizeof(domainpat)-domainlen); + strlcat(domainpat, pattern+len, sizeof(domainpat)); + cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); + } + cbrock.find_namespace = NAMESPACE_USER; + cbrock.inboxoffset = 0; + + /* iterate through prefixes matching usermboxname */ + strlcpy(domainpat+domainlen, "user", sizeof(domainpat)-domainlen); + SUBDB->foreach(subs, + domainpat, strlen(domainpat), + &find_p, &find_cb, &cbrock, + NULL); - glob_free(&cbrock.g); + glob_free(&cbrock.g); + } } /* @@ -2862,55 +2892,57 @@ * search for all remaining subscriptions. * just bother looking at the ones that have the same pattern prefix. */ - len = strlen(namespace->prefix[NAMESPACE_SHARED]); - if(len>0) len--; /* Remove Separator */ - if (!strncmp(namespace->prefix[NAMESPACE_SHARED], pattern, - prefixlen < len ? prefixlen : len)) { + if (isadmin || namespace->accessible[NAMESPACE_SHARED]) { + len = strlen(namespace->prefix[NAMESPACE_SHARED]); + if(len>0) len--; /* Remove Separator */ + if (!strncmp(namespace->prefix[NAMESPACE_SHARED], pattern, + prefixlen < len ? prefixlen : len)) { - cbrock.find_namespace = NAMESPACE_SHARED; - cbrock.inboxoffset = 0; + cbrock.find_namespace = NAMESPACE_SHARED; + cbrock.inboxoffset = 0; - if (prefixlen <= len) { - /* Skip pattern which matches shared namespace prefix */ - for (p = pat+prefixlen; *p; p++) { - if (*p == '%') continue; - else if (*p == '.') p++; - break; - } + if (prefixlen <= len) { + /* Skip pattern which matches shared namespace prefix */ + for (p = pat+prefixlen; *p; p++) { + if (*p == '%') continue; + else if (*p == '.') p++; + break; + } - if (*pattern && !strchr(pattern, '.') && - pattern[strlen(pattern)-1] == '%') { - /* special case: LSUB "" *% -- output prefix */ - cbrock.checkshared = 1; - } + if (*pattern && !strchr(pattern, '.') && + pattern[strlen(pattern)-1] == '%') { + /* special case: LSUB "" *% -- output prefix */ + cbrock.checkshared = 1; + } - if ((cbrock.checkshared || prefixlen == len) && !*p) { - /* special case: LSUB "" % -- output prefix - (if we have a shared mbox) and quit */ - strlcpy(domainpat+domainlen, "*", sizeof(domainpat)-domainlen); - cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); - cbrock.checkshared = 2; - } - else { - strlcpy(domainpat+domainlen, p, sizeof(domainpat)-domainlen); - cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); - } + if ((cbrock.checkshared || prefixlen == len) && !*p) { + /* special case: LSUB "" % -- output prefix + (if we have a shared mbox) and quit */ + strlcpy(domainpat+domainlen, "*", sizeof(domainpat)-domainlen); + cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); + cbrock.checkshared = 2; + } + else { + strlcpy(domainpat+domainlen, p, sizeof(domainpat)-domainlen); + cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); + } - domainpat[domainlen] = '\0'; - SUBDB->foreach(subs, - domainpat, domainlen, - &find_p, &find_cb, &cbrock, - NULL); - } - else if (pattern[len] == '.') { - strlcpy(domainpat+domainlen, pattern+len+1, - sizeof(domainpat)-domainlen); - cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); + domainpat[domainlen] = '\0'; + SUBDB->foreach(subs, + domainpat, domainlen, + &find_p, &find_cb, &cbrock, + NULL); + } + else if (pattern[len] == '.') { + strlcpy(domainpat+domainlen, pattern+len+1, + sizeof(domainpat)-domainlen); + cbrock.g = glob_init(domainpat, GLOB_HIERARCHY); - SUBDB->foreach(subs, - domainpat, domainlen+prefixlen-(len+1), - &find_p, &find_cb, &cbrock, - NULL); + SUBDB->foreach(subs, + domainpat, domainlen+prefixlen-(len+1), + &find_p, &find_cb, &cbrock, + NULL); + } } } diff -Nru cyrus-imapd-2.4-2.4.9/imap/mboxlist.h cyrus-imapd-2.4-2.4.12/imap/mboxlist.h --- cyrus-imapd-2.4-2.4.9/imap/mboxlist.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/mboxlist.h 2011-10-04 19:53:03.000000000 +0000 @@ -162,6 +162,7 @@ /* direct access to subs DB */ int mboxlist_allsubs(const char *userid, foreach_cb *proc, void *rock); +int mboxlist_allmbox(const char *prefix, foreach_cb *proc, void *rock); /* Find subscribed mailboxes that match 'pattern'. */ int mboxlist_findsub(struct namespace *namespace, diff -Nru cyrus-imapd-2.4-2.4.9/imap/mboxname.c cyrus-imapd-2.4-2.4.12/imap/mboxname.c --- cyrus-imapd-2.4-2.4.9/imap/mboxname.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/mboxname.c 2011-10-04 19:53:03.000000000 +0000 @@ -73,6 +73,8 @@ static struct mboxlocklist *open_mboxlocks = NULL; +static struct namespace *admin_namespace; + /* Mailbox patterns which the design of the server prohibits */ static char *badmboxpatterns[] = { "", @@ -644,6 +646,10 @@ config_getswitch(IMAPOPT_UNIXHIERARCHYSEP) ? '/' : '.'; namespace->isalt = !isadmin && config_getswitch(IMAPOPT_ALTNAMESPACE); + namespace->accessible[NAMESPACE_INBOX] = 1; + namespace->accessible[NAMESPACE_USER] = !config_getswitch(IMAPOPT_DISABLE_USER_NAMESPACE); + namespace->accessible[NAMESPACE_SHARED] = !config_getswitch(IMAPOPT_DISABLE_SHARED_NAMESPACE); + if (namespace->isalt) { /* alternate namespace */ strcpy(namespace->prefix[NAMESPACE_INBOX], ""); @@ -688,6 +694,16 @@ return 0; } +struct namespace *mboxname_get_adminnamespace() +{ + static struct namespace ns; + if (!admin_namespace) { + mboxname_init_namespace(&ns, /*isadmin*/1); + admin_namespace = &ns; + } + return admin_namespace; +} + /* * Translate separator charactors in a mailboxname from its external * representation to its internal representation '.'. @@ -745,8 +761,7 @@ */ int mboxname_userownsmailbox(const char *userid, const char *name) { - struct namespace internal = { '.', 0, 0, { "INBOX.", "user.", "" }, - NULL, NULL, NULL, NULL }; + struct namespace internal = NAMESPACE_INITIALIZER; char inboxname[MAX_MAILBOX_BUFFER]; if (!mboxname_tointernal(&internal, "INBOX", userid, inboxname) && @@ -904,10 +919,12 @@ * A thorough fix might remove the prefix and timestamp * then continue with the check */ - if (!mboxname_isdeletedmailbox(name)) { - if (strlen(name) > MAX_MAILBOX_NAME) - return IMAP_MAILBOX_BADNAME; - } + if (mboxname_isdeletedmailbox(name)) + return 0; + + if (strlen(name) > MAX_MAILBOX_NAME) + return IMAP_MAILBOX_BADNAME; + for (i = 0; i < NUM_BADMBOXPATTERNS; i++) { g = glob_init(badmboxpatterns[i], GLOB_ICASE); if (GLOB_TEST(g, name) != -1) { @@ -995,6 +1012,28 @@ return 0; } +int mboxname_is_prefix(const char *longstr, const char *shortstr) +{ + int longlen = strlen(longstr); + int shortlen = strlen(shortstr); + + /* can't be a child */ + if (longlen < shortlen) + return 0; + + /* don't match along same length */ + if (strncmp(longstr, shortstr, shortlen)) + return 0; + + /* longer, and not a separator */ + if (longlen > shortlen && longstr[shortlen] != '.') + return 0; + + /* it's a match! */ + return 1; +} + + void mboxname_hash(char *buf, size_t buf_len, const char *root, const char *name) diff -Nru cyrus-imapd-2.4-2.4.9/imap/mboxname.h cyrus-imapd-2.4-2.4.12/imap/mboxname.h --- cyrus-imapd-2.4-2.4.9/imap/mboxname.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/mboxname.h 2011-10-04 19:53:03.000000000 +0000 @@ -63,6 +63,7 @@ int isalt; /* are we using the alternate namespace? */ int isadmin; /* current user is an admin */ char prefix[3][MAX_NAMESPACE_PREFIX+1]; + int accessible[3]; /* Convert the external mailbox 'name' to an internal name. */ int (*mboxname_tointernal)(struct namespace *namespace, const char *name, const char *userid, char *result); @@ -79,6 +80,11 @@ void *rock, int force); }; +#define NAMESPACE_INITIALIZER { '.', 0, 0, \ + { "INBOX.", "user.", "" }, \ + { 0, 0, 0, }, \ + NULL, NULL, NULL, NULL } + struct mboxlock { char *name; int lock_fd; @@ -92,6 +98,8 @@ /* Create namespace based on config options. */ int mboxname_init_namespace(struct namespace *namespace, int isadmin); +struct namespace *mboxname_get_adminnamespace(); + /* * Translate separator charactors in a mailboxname from its external * representation to its internal representation '.'. @@ -125,6 +133,9 @@ */ int mboxname_isdeletedmailbox(const char *name); +/* check if one mboxname is a parent or same as the other */ +int mboxname_is_prefix(const char *longstr, const char *shortstr); + /* * Translate (internal) inboxname into corresponding userid. */ diff -Nru cyrus-imapd-2.4-2.4.9/imap/mbpath.c cyrus-imapd-2.4-2.4.12/imap/mbpath.c --- cyrus-imapd-2.4-2.4.9/imap/mbpath.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/mbpath.c 2011-10-04 19:53:03.000000000 +0000 @@ -135,7 +135,7 @@ if ((rc = mboxlist_lookup(buf, &mbentry, NULL)) == 0) { if (mbentry.mbtype & MBTYPE_REMOTE) { - fprintf(stderr, "Remote mailbox: %s\n", argv[i]); + printf("%s\n", mbentry.partition); } else { char *path = mboxname_metapath(mbentry.partition, mbentry.name, 0, 0); printf("%s\n", path); diff -Nru cyrus-imapd-2.4-2.4.9/imap/message.c cyrus-imapd-2.4-2.4.12/imap/message.c --- cyrus-imapd-2.4-2.4.9/imap/message.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/message.c 2011-10-04 19:53:03.000000000 +0000 @@ -84,79 +84,6 @@ int encode; }; -/* cyrus.cache file item buffer */ -struct ibuf { - char *start, *end, *last; -}; - -/* - * Parsed form of a body-part - */ -struct body { - /* Content-* header information */ - char *type; - char *subtype; - struct param *params; - char *id; - char *description; - char *encoding; - char *md5; - char *disposition; - struct param *disposition_params; - struct param *language; - char *location; - - /* Location/size information */ - long header_offset; - long header_size; - long header_lines; - long content_offset; - long content_size; - long content_lines; - long boundary_size; /* Size of terminating boundary */ - long boundary_lines; - - int numparts; /* For multipart types */ - struct body *subpart; /* For message/rfc822 and multipart types */ - - /* - * Other header information. - * Only meaningful for body-parts at top level or - * enclosed in message/rfc-822 - */ - char *date; - char *subject; - struct address *from; - struct address *sender; - struct address *reply_to; - struct address *to; - struct address *cc; - struct address *bcc; - char *in_reply_to; - char *message_id; - char *received_date; - - /* - * Cached headers. Only filled in at top-level - */ - struct ibuf cacheheaders; - - /* - * decoded body. Filled in as needed. - */ - char *decoded_body; - - /* Message GUID. Only filled in at top level */ - struct message_guid guid; -}; - -/* List of Content-type parameters */ -struct param { - struct param *next; - char *attribute; - char *value; -}; - /* List of pending multipart boundaries */ struct boundary { char **id; @@ -1817,6 +1744,7 @@ struct param *boundary; char *defaultContentType = DEFAULT_CONTENT_TYPE; int i, depth; + int limit = config_getint(IMAPOPT_BOUNDARY_LIMIT); memset(&preamble, 0, sizeof(struct body)); memset(&epilogue, 0, sizeof(struct body)); @@ -1851,7 +1779,8 @@ message_parse_content(msg, &preamble, boundaries); /* Parse the component body-parts */ - while (boundaries->count == depth) { + while (boundaries->count == depth && + (limit == 0 ? 1 : boundaries->count < limit)) { body->subpart = (struct body *)xrealloc((char *)body->subpart, (body->numparts+1)*sizeof(struct body)); message_parse_body(msg, &body->subpart[body->numparts++], @@ -1912,6 +1841,11 @@ */ body->boundary_size += epilogue.boundary_size; body->boundary_lines += epilogue.boundary_lines; + + /* check if we've hit a limit and flag it */ + if (limit && depth == limit) { + syslog(LOG_ERR, "ERROR: mime boundary limit %i exceeded, not parsing anymore", limit); + } } /* diff -Nru cyrus-imapd-2.4-2.4.9/imap/message.h cyrus-imapd-2.4-2.4.12/imap/message.h --- cyrus-imapd-2.4-2.4.9/imap/message.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/message.h 2011-10-04 19:53:03.000000000 +0000 @@ -1,6 +1,6 @@ /* message.h -- Message parsing * - * Copyright (c) 1994-2008 Carnegie Mellon University. All rights reserved. + * Copyright (c) 1994-2010 Carnegie Mellon University. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -58,6 +58,78 @@ #include "prot.h" #include "mailbox.h" +/* cyrus.cache file item buffer */ +struct ibuf { + char *start, *end, *last; +}; + +/* + * Parsed form of a body-part + */ +struct body { + /* Content-* header information */ + char *type; + char *subtype; + struct param *params; + char *id; + char *description; + char *encoding; + char *md5; + char *disposition; + struct param *disposition_params; + struct param *language; + char *location; + + /* Location/size information */ + long header_offset; + long header_size; + long header_lines; + long content_offset; + long content_size; + long content_lines; + long boundary_size; /* Size of terminating boundary */ + long boundary_lines; + + int numparts; /* For multipart types */ + struct body *subpart; /* For message/rfc822 and multipart types */ + + /* + * Other header information. + * Only meaningful for body-parts at top level or + * enclosed in message/rfc-822 + */ + char *date; + char *subject; + struct address *from; + struct address *sender; + struct address *reply_to; + struct address *to; + struct address *cc; + struct address *bcc; + char *in_reply_to; + char *message_id; + char *received_date; + + /* + * Cached headers. Only filled in at top-level + */ + struct ibuf cacheheaders; + + /* + * decoded body. Filled in as needed. + */ + char *decoded_body; + + /* Message GUID. Only filled in at top level */ + struct message_guid guid; +}; + +/* List of Content-type parameters */ +struct param { + struct param *next; + char *attribute; + char *value; +}; extern int message_copy_strict P((struct protstream *from, FILE *to, unsigned size, int allow_null)); diff -Nru cyrus-imapd-2.4-2.4.9/imap/nntpd.c cyrus-imapd-2.4-2.4.12/imap/nntpd.c --- cyrus-imapd-2.4-2.4.9/imap/nntpd.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/nntpd.c 2011-10-04 19:53:03.000000000 +0000 @@ -214,6 +214,7 @@ static void cmdloop(void); static int open_group(char *name, int has_prefix, struct backend **ret, int *postable); +static int getuserpass(struct protstream *in, struct buf *buf); static int parserange(char *str, uint32_t *uid, uint32_t *last, char **msgid, struct backend **be); static time_t parse_datetime(char *datestr, char *timestr, char *gmt); @@ -899,7 +900,7 @@ /* Only Authinfo/Capabilities/Check/Head/Help/Ihave/List Active/ Mode/Quit/Starttls/Stat/Takethis allowed when not logged in */ - if (!nntp_userid && !allowanonymous && + if (!nntp_authstate && !allowanonymous && !strchr("ACHILMQST", cmd.s[0])) goto nologin; /* In case a [LIST]GROUP fails or @@ -909,42 +910,53 @@ switch (cmd.s[0]) { case 'A': if (!strcmp(cmd.s, "Authinfo")) { - arg2.len = arg3.len = 0; if (c != ' ') goto missingargs; c = getword(nntp_in, &arg1); /* subcommand */ if (c == EOF) goto missingargs; lcase(arg1.s); - if (strcmp(arg1.s, "generic") && c != ' ') { - /* arg2 is required for all subcommands except generic */ - goto missingargs; - } - if (c == ' ') { - c = getword(nntp_in, &arg2); /* argument/sasl mech */ + if (!strcmp(arg1.s, "user") || !strcmp(arg1.s, "pass")) { + if (c != ' ') goto missingargs; + c = getuserpass(nntp_in, &arg2); /* user/pass */ if (c == EOF) goto missingargs; - } - if (!strcmp(arg1.s, "sasl") && c == ' ') { - c = getword(nntp_in, &arg3); /* init response (optional) */ - if (c == EOF) goto missingargs; + if (c == '\r') c = prot_getc(nntp_in); + if (c != '\n') goto extraargs; + + if (arg1.s[0] == 'u') + cmd_authinfo_user(arg2.s); + else + cmd_authinfo_pass(arg2.s); } - if (c == '\r') c = prot_getc(nntp_in); - if (c != '\n') goto extraargs; + else if (!strcmp(arg1.s, "sasl") || !strcmp(arg1.s, "generic")) { + arg2.len = arg3.len = 0; + + /* mech name required for SASL but not GENERIC */ + if ((arg1.s[0] == 's') && (c != ' ')) goto missingargs; + + if (c == ' ') { + c = getword(nntp_in, &arg2); /* mech name */ + if (c == EOF) goto missingargs; + + if (c == ' ') { + c = getword(nntp_in, &arg3); /* init response */ + if (c == EOF) goto missingargs; + } + } + + if (c == '\r') c = prot_getc(nntp_in); + if (c != '\n') goto extraargs; - if (!strcmp(arg1.s, "user")) - cmd_authinfo_user(arg2.s); - else if (!strcmp(arg1.s, "pass")) - cmd_authinfo_pass(arg2.s); - else if (!strcmp(arg1.s, "sasl") || !strcmp(arg1.s, "generic")) cmd_authinfo_sasl(arg1.s, arg2.len ? arg2.s : NULL, arg3.len ? arg3.s : NULL); + } else prot_printf(nntp_out, "501 Unrecognized AUTHINFO command\r\n"); } else if (!(nntp_capa & MODE_READ)) goto noperm; - else if (!nntp_userid && !allowanonymous) goto nologin; + else if (!nntp_authstate && !allowanonymous) goto nologin; else if (!strcmp(cmd.s, "Article")) { char *msgid; @@ -1136,7 +1148,7 @@ cmd_help(); } else if (!(nntp_capa & MODE_READ)) goto noperm; - else if (!nntp_userid && !allowanonymous) goto nologin; + else if (!nntp_authstate && !allowanonymous) goto nologin; else if (!strcmp(cmd.s, "Hdr")) { char *msgid; @@ -1215,7 +1227,7 @@ goto prevgroup; /* In case we did LIST [ACTIVE] */ } else if (!(nntp_capa & MODE_READ)) goto noperm; - else if (!nntp_userid && !allowanonymous) goto nologin; + else if (!nntp_authstate && !allowanonymous) goto nologin; else if (!strcmp(cmd.s, "Last")) { if (c == '\r') c = prot_getc(nntp_in); if (c != '\n') goto extraargs; @@ -1415,7 +1427,7 @@ mode = ARTICLE_STAT; goto article; } - else if (!nntp_userid && !allowanonymous) goto nologin; + else if (!nntp_authstate && !allowanonymous) goto nologin; else if (!strcmp(cmd.s, "Slave")) { if (c == '\r') c = prot_getc(nntp_in); if (c != '\n') goto extraargs; @@ -1589,6 +1601,28 @@ return 1; } +/* + * Parse a username or password (token which may contain SP or TAB) + */ +#define MAX_NNTP_ARG 497 +static int getuserpass(struct protstream *in, struct buf *buf) +{ + int c; + + buf_reset(buf); + for (;;) { + c = prot_getc(in); + if (c == EOF || c == '\r' || c == '\n') { + buf_cstring(buf); /* appends a '\0' */ + return c; + } + buf_putc(buf, c); + if (buf_len(buf) > MAX_NNTP_ARG) { + fatal("argument too long", EC_IOERR); + } + } +} + static int parserange(char *str, uint32_t *uid, uint32_t *last, char **msgid, struct backend **ret) { @@ -1766,7 +1800,7 @@ if (newserver) { /* remote group */ backend_next = proxy_findserver(newserver, &nntp_protocol, - nntp_userid ? nntp_userid : "anonymous", + nntp_authstate ? nntp_userid : "anonymous", &backend_cached, &backend_current, NULL, nntp_in); if (!backend_next) return IMAP_SERVER_UNAVAILABLE; @@ -1777,7 +1811,7 @@ /* local group */ struct index_init init; memset(&init, 0, sizeof(struct index_init)); - init.userid = nntp_userid; + init.userid = nntp_authstate ? nntp_userid : NULL; init.authstate = nntp_authstate; r = index_open(name, &init, &group_state); if (r) return r; @@ -1824,7 +1858,7 @@ if (mechcount) prot_printf(nntp_out, "%s", mechlist); /* add the reader capabilities/extensions */ - if ((nntp_capa & MODE_READ) && (nntp_userid || allowanonymous)) { + if ((nntp_capa & MODE_READ) && (nntp_authstate || allowanonymous)) { prot_printf(nntp_out, "READER\r\n"); prot_printf(nntp_out, "POST\r\n"); if (config_getswitch(IMAPOPT_ALLOWNEWNEWS)) @@ -1842,7 +1876,7 @@ /* add the LIST variants */ prot_printf(nntp_out, "LIST ACTIVE%s\r\n", - ((nntp_capa & MODE_READ) && (nntp_userid || allowanonymous)) ? + ((nntp_capa & MODE_READ) && (nntp_authstate || allowanonymous)) ? " HEADERS NEWSGROUPS OVERVIEW.FMT" : ""); prot_printf(nntp_out, ".\r\n"); @@ -2321,7 +2355,7 @@ { prot_printf(nntp_out, "100 Supported commands:\r\n"); - if ((nntp_capa & MODE_READ) && (nntp_userid || allowanonymous)) { + if ((nntp_capa & MODE_READ) && (nntp_authstate || allowanonymous)) { prot_printf(nntp_out, "\tARTICLE [ message-id | number ]\r\n" "\t\tRetrieve entirety of the specified article.\r\n"); } @@ -2336,7 +2370,7 @@ prot_printf(nntp_out, "\tAUTHINFO PASS password\r\n" "\t\tPresent clear-text password for authentication.\r\n"); } - if ((nntp_capa & MODE_READ) && (nntp_userid || allowanonymous)) { + if ((nntp_capa & MODE_READ) && (nntp_authstate || allowanonymous)) { prot_printf(nntp_out, "\tBODY [ message-id | number ]\r\n" "\t\tRetrieve body of the specified article.\r\n"); } @@ -2346,7 +2380,7 @@ prot_printf(nntp_out, "\tCHECK message-id\r\n" "\t\tCheck if the server wants the specified article.\r\n"); } - if ((nntp_capa & MODE_READ) && (nntp_userid || allowanonymous)) { + if ((nntp_capa & MODE_READ) && (nntp_authstate || allowanonymous)) { prot_printf(nntp_out, "\tDATE\r\n" "\t\tRequest the current server UTC date and time.\r\n"); prot_printf(nntp_out, "\tGROUP group\r\n" @@ -2363,13 +2397,13 @@ prot_printf(nntp_out, "\tIHAVE message-id\r\n" "\t\tPresent/transfer the specified article to the server.\r\n"); } - if ((nntp_capa & MODE_READ) && (nntp_userid || allowanonymous)) { + if ((nntp_capa & MODE_READ) && (nntp_authstate || allowanonymous)) { prot_printf(nntp_out, "\tLAST\r\n" "\t\tSelect the previous article.\r\n"); } prot_printf(nntp_out, "\tLIST [ ACTIVE wildmat ]\r\n" "\t\tList the (subset of) valid newsgroups.\r\n"); - if ((nntp_capa & MODE_READ) && (nntp_userid || allowanonymous)) { + if ((nntp_capa & MODE_READ) && (nntp_authstate || allowanonymous)) { prot_printf(nntp_out, "\tLIST HEADERS [ MSGID | RANGE ]\r\n" "\t\tList the headers and metadata items available via HDR.\r\n"); prot_printf(nntp_out, "\tLIST NEWSGROUPS [wildmat]\r\n" @@ -2402,7 +2436,7 @@ prot_printf(nntp_out, "\tTAKETHIS message-id\r\n" "\t\tTransfer the specified article to the server.\r\n"); } - if ((nntp_capa & MODE_READ) && (nntp_userid || allowanonymous)) { + if ((nntp_capa & MODE_READ) && (nntp_authstate || allowanonymous)) { prot_printf(nntp_out, "\tXPAT header message-id|range wildmat\r\n" "\t\tList the specified article(s) in which the contents\r\n" "\t\tof the specified header/metadata matches the wildmat.\r\n"); @@ -2470,7 +2504,7 @@ char *result; be = proxy_findserver(server, &nntp_protocol, - nntp_userid ? nntp_userid : "anonymous", + nntp_authstate ? nntp_userid : "anonymous", &backend_cached, &backend_current, NULL, nntp_in); if (!be) return; @@ -2605,7 +2639,8 @@ strcpy(pattern, newsprefix); strcat(pattern, "*"); list_cb(NULL, 0, 0, NULL); - mboxlist_findall(NULL, pattern, 0, nntp_userid, nntp_authstate, + mboxlist_findall(NULL, pattern, 0, + nntp_authstate ? nntp_userid : NULL, nntp_authstate, list_cb, &lrock); /* proxy to the backends */ @@ -2627,7 +2662,7 @@ prot_printf(nntp_out, "502 Permission denied\r\n"); return; } - else if (!nntp_userid && !allowanonymous) { + else if (!nntp_authstate && !allowanonymous) { prot_printf(nntp_out, "480 Authentication required\r\n"); return; } @@ -2664,7 +2699,8 @@ strcpy(pattern, newsprefix); strcat(pattern, "*"); list_cb(NULL, 0, 0, NULL); - mboxlist_findall(NULL, pattern, 0, nntp_userid, nntp_authstate, + mboxlist_findall(NULL, pattern, 0, + nntp_authstate ? nntp_userid : NULL, nntp_authstate, list_cb, &lrock); /* proxy to the backends */ @@ -2874,6 +2910,7 @@ char **rcpt; /* mailboxes to post message */ int rcpt_num; /* number of groups */ + char *date; /* date field of header */ hdrcache_t hdrcache; }; @@ -2891,6 +2928,7 @@ ret->size = 0; ret->rcpt = NULL; ret->rcpt_num = 0; + ret->date = NULL; ret->hdrcache = spool_new_hdrcache(); @@ -2924,6 +2962,9 @@ } free(m->rcpt); } + if (m->date) { + free(m->date); + } spool_free_hdrcache(m->hdrcache); @@ -3047,9 +3088,13 @@ char datestr[80]; rfc822date_gen(datestr, sizeof(datestr), now); + m->date = xstrdup(datestr); fprintf(f, "Date: %s\r\n", datestr); spool_cache_header(xstrdup("Date"), xstrdup(datestr), m->hdrcache); } + else { + m->date = xstrdup(body[0]); + } /* get control */ if ((body = spool_getheader(m->hdrcache, "control")) != NULL) { @@ -3231,7 +3276,7 @@ char buf[4096]; be = proxy_findserver(d->server, &nntp_protocol, - nntp_userid ? nntp_userid : "anonymous", + nntp_authstate ? nntp_userid : "anonymous", &backend_cached, &backend_current, NULL, nntp_in); if (!be) return IMAP_SERVER_UNAVAILABLE; @@ -3279,6 +3324,7 @@ unsigned long uid; struct body *body = NULL; struct dest *dlist = NULL; + duplicate_key_t dkey = {msg->id, NULL, msg->date}; /* check ACLs of all mailboxes */ for (n = 0; n < msg->rcpt_num; n++) { @@ -3286,6 +3332,7 @@ /* look it up */ r = mlookup(rcpt, &server, &acl, NULL); + dkey.to = rcpt; if (r) return IMAP_MAILBOX_NONEXISTENT; if (!(acl && (myrights = cyrus_acl_myrights(nntp_authstate, acl)) && @@ -3301,13 +3348,15 @@ struct appendstate as; if (msg->id && - duplicate_check(msg->id, strlen(msg->id), rcpt, strlen(rcpt))) { + duplicate_check(&dkey)) { /* duplicate message */ - duplicate_log(msg->id, rcpt, "nntp delivery"); + duplicate_log(&dkey, "nntp delivery"); continue; } - r = append_setup(&as, rcpt, nntp_userid, nntp_authstate, ACL_POST, 0); + r = append_setup(&as, rcpt, + nntp_authstate ? nntp_userid : NULL, + nntp_authstate, ACL_POST, 0); if (!r) { prot_rewind(msg->data); @@ -3319,14 +3368,12 @@ r = append_fromstream(&as, &body, msg->data, msg->size, 0, (const char **) NULL, 0); } - if (r || (msg->id && - duplicate_check(msg->id, strlen(msg->id), - rcpt, strlen(rcpt)))) { + if (r || ( msg->id && duplicate_check(&dkey) ) ) { append_abort(&as); if (!r) { /* duplicate message */ - duplicate_log(msg->id, rcpt, "nntp delivery"); + duplicate_log(&dkey, "nntp delivery"); continue; } } @@ -3336,8 +3383,7 @@ } if (!r && msg->id) - duplicate_mark(msg->id, strlen(msg->id), rcpt, strlen(rcpt), - time(NULL), uid); + duplicate_mark(&dkey, time(NULL), uid); if (r) return r; @@ -3509,7 +3555,8 @@ /* store msgid of cancelled message for IHAVE/CHECK/TAKETHIS * (in case we haven't received the message yet) */ - duplicate_mark(msgid, strlen(msgid), "", 0, 0, time(NULL)); + duplicate_key_t dkey = {msgid, "", ""}; + duplicate_mark(&dkey, 0, time(NULL)); return r; } @@ -4155,7 +4202,9 @@ else if (*c == '@') wild[n].not = -1; /* absolute not (feeding) */ else wild[n].not = 0; - strcpy(p, wild[n].not ? c + 1 : c); + strncpy(p, wild[n].not ? c + 1 : c, pattern+sizeof(pattern) - p); + pattern[sizeof(pattern)-1] = '\0'; + wild[n++].pat = xstrdup(pattern); } while (c != str); wild[n].pat = NULL; diff -Nru cyrus-imapd-2.4-2.4.9/imap/quota.c cyrus-imapd-2.4-2.4.12/imap/quota.c --- cyrus-imapd-2.4-2.4.9/imap/quota.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/quota.c 2011-10-04 19:53:03.000000000 +0000 @@ -75,6 +75,7 @@ #endif #include "assert.h" +#include "bsearch.h" #include "cyrusdb.h" #include "global.h" #include "exitcodes.h" @@ -98,12 +99,6 @@ /* config.c stuff */ const int config_need_data = CONFIG_NEED_PARTITION_DATA; -struct fix_rock { - char *domain; - struct txn **tid; - unsigned long change_count; -}; - struct quotaentry { struct quota quota; char *allocname; @@ -115,12 +110,13 @@ /* forward declarations */ void usage(void); void reportquota(void); -int buildquotalist(char *domain, char **roots, int nroots, - struct fix_rock *frock); -int fixquota_mailbox(char *name, int matchlen, int maycreate, void *rock); -int fixquota(struct fix_rock *frock); -int fixquota_fixroot(struct mailbox *mailbox, const char *root); -int fixquota_finish(int thisquota, struct txn **tid, unsigned long *count); +static int buildquotalist(char *domain, char **roots, int nroots); +static int fixquotas(char *domain, char **roots, int nroots); +static int fixquota_mailbox(void *rock, const char *name, int namelen, + const char *val, int vallen); +static int fixquota_fixroot(struct mailbox *mailbox, const char *root); +static int fixquota_finish(int thisquota); +static int (*compar)(const char *s1, const char *s2); #define QUOTAGROW 300 @@ -129,16 +125,14 @@ int firstquota = 0; int redofix = 0; -int partial; int main(int argc,char **argv) { int opt; + int i; int fflag = 0; int r, code = 0; char *alt_config = NULL, *domain = NULL; - struct fix_rock frock; - struct txn *tid = NULL; if ((geteuid()) == 0 && (become_cyrus() != 0)) { fatal("must run as the Cyrus user", EC_USAGE); @@ -171,6 +165,11 @@ fatal(error_message(r), EC_CONFIG); } + if (config_getswitch(IMAPOPT_IMPROVED_MBOXLIST_SORT)) + compar = bsearch_compare; + else + compar = strcmp; + /* * Lock mailbox list to prevent mailbox creation/deletion * during work @@ -181,19 +180,10 @@ quotadb_init(0); quotadb_open(NULL); - if (!r) { - frock.domain = domain; - frock.tid = &tid; - frock.change_count = 0; - - r = buildquotalist(domain, argv+optind, argc-optind, - fflag ? &frock : NULL); - } + r = buildquotalist(domain, argv+optind, argc-optind); - if (!r && fflag) { - partial = argc-optind; - r = fixquota(&frock); - } + if (!r && fflag) + r = fixquotas(domain, argv+optind, argc-optind); quotadb_close(); quotadb_done(); @@ -204,6 +194,11 @@ if (r) code = convert_code(r); else reportquota(); + /* just for neatness */ + for (i = 0; i < quota_num; i++) + free(quota[i].allocname); + free(quota); + cyrus_done(); return code; @@ -214,7 +209,7 @@ fprintf(stderr, "usage: quota [-C ] [-d ] [-f] [prefix]...\n"); exit(EC_USAGE); -} +} void errmsg(const char *fmt, const char *arg, int err) { @@ -232,12 +227,11 @@ } /* - * A matching mailbox was found, process it. + * A quotaroot was found, add it to our list */ -static int found_match(char *name, int matchlen, int maycreate, void *frock) +static int fixquota_addroot(struct quota *q, + void *rock __attribute__((unused))) { - int r; - if (quota_num == quota_alloc) { /* Create new qr list entry */ quota_alloc += QUOTAGROW; @@ -246,45 +240,20 @@ memset("a[quota_num], 0, QUOTAGROW * sizeof(struct quotaentry)); } - /* See if the mailbox name corresponds to a quotaroot */ - quota[quota_num].quota.root = name; - do { - r = quota_read("a[quota_num].quota, NULL, 0); - } while (r == IMAP_AGAIN); - - switch (r) { - case 0: - /* Its a quotaroot! */ - quota[quota_num].allocname = xstrdup(name); - quota[quota_num].quota.root = quota[quota_num].allocname; - quota_num++; - break; - case IMAP_QUOTAROOT_NONEXISTENT: - if (!frock || !quota_num || - strncmp(name, quota[quota_num-1].quota.root, - strlen(quota[quota_num-1].quota.root))) { - /* Its not a quotaroot, and either we're not fixing quotas, - or its not part of the most recent quotaroot */ - return 0; - } - break; - default: - return r; - } - - if (frock) { - /* Recalculate the quota (we need the subfolders too!) */ - r = fixquota_mailbox(name, matchlen, maycreate, frock); - } + /* copy this quota */ + quota[quota_num].allocname = xstrdup(q->root); + quota[quota_num].quota.root = quota[quota_num].allocname; + quota[quota_num].quota.limit = q->limit; + quota[quota_num].quota.used = q->used; + quota_num++; - return r; + return 0; } /* * Build the list of quota roots in 'quota' */ -int buildquotalist(char *domain, char **roots, int nroots, - struct fix_rock *frock) +int buildquotalist(char *domain, char **roots, int nroots) { int i, r; char buf[MAX_MAILBOX_BUFFER], *tail; @@ -297,38 +266,63 @@ tail += domainlen; } + /* basic case - everything (potentially limited by domain still) */ + if (!nroots) { + r = quota_foreach(buf, fixquota_addroot, NULL); + if (r) { + errmsg("failed building quota list for '%s'", buf, IMAP_IOERROR); + } + } + /* - * Walk through all given pattern(s) and resolve them to all - * matching mailbox names. Call found_match() for every mailbox - * name found. If no pattern is given, assume "*". + * Walk through all given pattern(s) and add all the quota roots + * with the matching prefixes. */ - i = 0; - do { - if (nroots > 0) { - /* Translate separator in quotaroot. - * - * We do this directly instead of using the mboxname_tointernal() - * function pointer because we know that we are using the internal - * namespace and so we don't have to allocate a buffer for the - * translated name. - */ - mboxname_hiersep_tointernal("a_namespace, roots[i], 0); - - strlcpy(tail, roots[i], sizeof(buf) - domainlen); - } - else { - strlcpy(tail, "*", sizeof(buf) - domainlen); - } - i++; + for (i = 0; i < nroots; i++) { + strlcpy(tail, roots[i], sizeof(buf) - domainlen); + /* change the separator to internal namespace */ + mboxname_hiersep_tointernal("a_namespace, tail, 0); - r = (*quota_namespace.mboxlist_findall)("a_namespace, buf, 1, 0, 0, - &found_match, frock); - if (r < 0) { + r = quota_foreach(buf, fixquota_addroot, NULL); + if (r) { errmsg("failed building quota list for '%s'", buf, IMAP_IOERROR); - return IMAP_IOERROR; + break; } + } + + return r; +} - } while (i < nroots); +static int findroot(const char *name, int *thisquota) +{ + int i; + + *thisquota = -1; + + for (i = firstquota; i < quota_num; i++) { + const char *root = quota[i].quota.root; + + /* have we already passed the name, then there can + * be no further matches */ + if (compar(root, name) > 0) + return 0; + + /* is the mailbox within this root? */ + if (mboxname_is_prefix(name, root)) { + /* fantastic, but don't return yet, we may find + * a more exact match */ + quota[i].refcount++; + *thisquota = i; + } + else { + /* not a match, so we can finish everything up to here */ + while (firstquota < i) { + int r = fixquota_finish(firstquota); + if (r) return r; + firstquota++; + } + } + } return 0; } @@ -336,74 +330,51 @@ /* * Account for mailbox 'name' when fixing the quota roots */ -int fixquota_mailbox(char *name, - int matchlen __attribute__((unused)), - int maycreate __attribute__((unused)), - void *rock) +static int fixquota_mailbox(void *rock __attribute__((unused)), + const char *name, int namelen, + const char *val __attribute__((unused)), + int vallen __attribute__((unused))) { - int r; + int r = 0; struct mailbox *mailbox = NULL; - int i, len, thisquota, thisquotalen; - struct fix_rock *frock = (struct fix_rock *) rock; - char *p, *domain = frock->domain; - - /* make sure the domains match */ - if (domain && - (!(p = strchr(name, '!')) || (p - name) != (int) strlen(domain) || - strncmp(name, domain, p - name))) { - return 0; + int thisquota = -1; + char *mboxname = xstrndup(name, namelen); + + r = findroot(mboxname, &thisquota); + if (r) { + errmsg("failed finding quotaroot for mailbox '%s'", name, r); + goto done; } - while (firstquota < quota_num && - strncmp(name, quota[firstquota].quota.root, - strlen(quota[firstquota].quota.root)) > 0) { - r = fixquota_finish(firstquota++, frock->tid, &frock->change_count); - if (r) return r; + r = mailbox_open_iwl(mboxname, &mailbox); + if (r) { + errmsg("failed opening header for mailbox '%s'", name, r); + goto done; } - thisquota = -1; - thisquotalen = 0; - for (i = firstquota; - i < quota_num && strcmp(name, quota[i].quota.root) >= 0; i++) { - len = strlen(quota[i].quota.root); - if (!strncmp(name, quota[i].quota.root, len) && - (!name[len] || name[len] == '.' || - (domain && name[len-1] == '!'))) { - quota[i].refcount++; - if (len > thisquotalen) { - thisquota = i; - thisquotalen = len; - } + if (thisquota == -1) { + /* no matching quotaroot exists, remove from + * mailbox if present */ + if (mailbox->quotaroot) { + r = fixquota_fixroot(mailbox, (char *)0); } } - - if (partial && thisquota == -1) return 0; - - r = mailbox_open_iwl(name, &mailbox); - if (r) errmsg("failed opening header for mailbox '%s'", name, r); else { - if (thisquota == -1) { - if (mailbox->quotaroot) { - r = fixquota_fixroot(mailbox, (char *)0); - } - } - else { - if (!mailbox->quotaroot || - strcmp(mailbox->quotaroot, quota[thisquota].quota.root) != 0) { - r = fixquota_fixroot(mailbox, quota[thisquota].quota.root); - } - - if (!r) quota[thisquota].newused += mailbox->i.quota_mailbox_used; + /* matching quotaroot exists, ensure mailbox has the + * correct root */ + if (!mailbox->quotaroot || + strcmp(mailbox->quotaroot, quota[thisquota].quota.root) != 0) { + r = fixquota_fixroot(mailbox, quota[thisquota].quota.root); } - mailbox_close(&mailbox); + /* and track the total usage inside this root */ + if (!r) + quota[thisquota].newused += mailbox->i.quota_mailbox_used; } - if (r) { - /* mailbox error of some type, commit what we have */ - quota_commit(frock->tid); - *(frock->tid) = NULL; - } +done: + mailbox_close(&mailbox); + free(mboxname); return r; } @@ -413,8 +384,6 @@ { int r; - redofix = 1; - printf("%s: quota root %s --> %s\n", mailbox->name, mailbox->quotaroot ? mailbox->quotaroot : "(none)", root ? root : "(none)"); @@ -428,94 +397,101 @@ /* * Finish fixing up a quota root */ -int fixquota_finish(int thisquota, struct txn **tid, unsigned long *count) +int fixquota_finish(int thisquota) { int r = 0; + struct txn *tid = NULL; if (!quota[thisquota].refcount) { - if (!quota[thisquota].deleted++) { - printf("%s: removed\n", quota[thisquota].quota.root); - r = quota_deleteroot(quota[thisquota].quota.root); - if (r) { - errmsg("failed deleting quotaroot '%s'", - quota[thisquota].quota.root, r); - return r; - } - (*count)++; - } - return 0; - } - - if (quota[thisquota].quota.used != quota[thisquota].newused) { - /* re-read the quota with the record locked */ - r = quota_read("a[thisquota].quota, tid, 1); + printf("%s: removed\n", quota[thisquota].quota.root); + r = quota_deleteroot(quota[thisquota].quota.root); if (r) { - errmsg("failed reading quotaroot '%s'", + errmsg("failed deleting quotaroot '%s'", quota[thisquota].quota.root, r); - return r; } - (*count)++; + return r; } + + /* nothing changed, all good */ + if (quota[thisquota].quota.used == quota[thisquota].newused) + return 0; + + /* re-read the quota with the record locked */ + r = quota_read("a[thisquota].quota, &tid, 1); + if (r) { + errmsg("failed reading quotaroot '%s'", + quota[thisquota].quota.root, r); + return r; + } + + /* is it still different? */ if (quota[thisquota].quota.used != quota[thisquota].newused) { printf("%s: usage was " UQUOTA_T_FMT ", now " UQUOTA_T_FMT "\n", quota[thisquota].quota.root, quota[thisquota].quota.used, quota[thisquota].newused); quota[thisquota].quota.used = quota[thisquota].newused; - r = quota_write("a[thisquota].quota, tid); + r = quota_write("a[thisquota].quota, &tid); if (r) { errmsg("failed writing quotaroot '%s'", quota[thisquota].quota.root, r); + quota_abort(&tid); return r; } - (*count)++; } - /* commit the transaction every 100 changes */ - if (*count && !(*count % 100)) { - quota_commit(tid); - *tid = NULL; - } + quota_commit(&tid); - return r; + return 0; } - /* * Fix all the quota roots */ -int fixquota(struct fix_rock *frock) +int fixquotas(char *domain, char **roots, int nroots) { - int i, r = 0; + int i, r; + char buf[MAX_MAILBOX_BUFFER], *tail; + size_t domainlen = 0; + + buf[0] = '\0'; + tail = buf; + if (domain) { + domainlen = snprintf(buf, sizeof(buf), "%s!", domain); + tail += domainlen; + } - while (!r && redofix) { - while (!r && firstquota < quota_num) { - r = fixquota_finish(firstquota++, frock->tid, &frock->change_count); - } - - redofix = 0; - firstquota = 0; - - /* - * Loop over all qr entries and recalculate the quota. - * We need the subfolders too! - */ - for (i = 0; !r && i < quota_num; i++) { - r = (*quota_namespace.mboxlist_findall)("a_namespace, - quota[i].quota.root, - 1, 0, 0, fixquota_mailbox, - frock); + /* basic case - everything (potentially limited by domain still) */ + if (!nroots) { + r = mboxlist_allmbox(buf, fixquota_mailbox, NULL); + if (r) { + errmsg("processing mbox list for '%s'", buf, IMAP_IOERROR); + } + } + + /* + * Walk through all given pattern(s) and add all the quota roots + * with the matching prefixes. + */ + for (i = 0; i < nroots; i++) { + strlcpy(tail, roots[i], sizeof(buf) - domainlen); + /* change the separator to internal namespace */ + mboxname_hiersep_tointernal("a_namespace, tail, 0); + + r = mboxlist_allmbox(buf, fixquota_mailbox, NULL); + if (r) { + errmsg("processing mbox list for '%s'", buf, IMAP_IOERROR); + break; } } while (!r && firstquota < quota_num) { - r = fixquota_finish(firstquota++, frock->tid, &frock->change_count); + r = fixquota_finish(firstquota); + firstquota++; } - if (!r && *(frock->tid)) quota_commit(frock->tid); - - return 0; + return r; } - + /* * Print out the quota report */ diff -Nru cyrus-imapd-2.4-2.4.9/imap/quota_db.c cyrus-imapd-2.4-2.4.12/imap/quota_db.c --- cyrus-imapd-2.4-2.4.9/imap/quota_db.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/quota_db.c 2011-10-04 19:53:03.000000000 +0000 @@ -71,6 +71,14 @@ static int quota_dbopen = 0; +static int quota_parseval(const char *data, struct quota *quota) +{ + if (sscanf(data, UQUOTA_T_FMT " %d", + "a->used, "a->limit) != 2) + return 0; + return 1; +} + /* * Read the quota entry 'quota' */ @@ -94,13 +102,11 @@ switch (r) { case CYRUSDB_OK: - if (!*data) - return IMAP_QUOTAROOT_NONEXISTENT; - else if (sscanf(data, UQUOTA_T_FMT " %d", - "a->used, "a->limit) != 2) { + if (!*data) return IMAP_QUOTAROOT_NONEXISTENT; + if (!quota_parseval(data, quota)) { syslog(LOG_ERR, "DBERROR: error fetching quota " - "root=<%s> value=<%s> error=<%s>", - quota->root, data, cyrusdb_strerror(r)); + "root=<%s> value=<%s>", + quota->root, data); return CYRUSDB_IOERROR; } break; @@ -123,6 +129,47 @@ return 0; } +struct quota_foreach_t { + quotaproc_t *proc; + void *rock; +}; + +static int do_onequota(void *rock, + const char *key, int keylen, + const char *data, int datalen) +{ + int r = 0; + struct quota quota; + struct quota_foreach_t *fd = (struct quota_foreach_t *)rock; + char *root = xstrndup(key, keylen); + + quota.root = root; + + /* XXX - error if not parsable? */ + if (datalen && quota_parseval(data, "a)) { + r = fd->proc("a, fd->rock); + } + + free(root); + + return r; +} + +int quota_foreach(const char *prefix, quotaproc_t *proc, void *rock) +{ + int r; + char *search = prefix ? (char *)prefix : ""; + struct quota_foreach_t foreach_d; + + foreach_d.proc = proc; + foreach_d.rock = rock; + + r = QDB->foreach(qdb, search, strlen(search), NULL, + do_onequota, &foreach_d, NULL); + + return r; +} + /* * Commit the outstanding quota transaction */ @@ -227,7 +274,6 @@ return (QDB->fetch(qdb, ret, strlen(ret), NULL, NULL, NULL) == 0); } - /* must be called after cyrus_init */ void quotadb_init(int myflags) { @@ -242,6 +288,7 @@ { int ret; char *tofree = NULL; + int flags = CYRUSDB_CREATE; if (!fname) fname = config_getstring(IMAPOPT_QUOTA_DB_PATH); @@ -252,7 +299,10 @@ fname = tofree; } - ret = (QDB->open)(fname, CYRUSDB_CREATE, &qdb); + if (config_getswitch(IMAPOPT_IMPROVED_MBOXLIST_SORT)) + flags |= CYRUSDB_MBOXSORT; + + ret = (QDB->open)(fname, flags, &qdb); if (ret != 0) { syslog(LOG_ERR, "DBERROR: opening %s: %s", fname, cyrusdb_strerror(ret)); diff -Nru cyrus-imapd-2.4-2.4.9/imap/quota.h cyrus-imapd-2.4-2.4.12/imap/quota.h --- cyrus-imapd-2.4-2.4.9/imap/quota.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/quota.h 2011-10-04 19:53:03.000000000 +0000 @@ -80,6 +80,8 @@ int limit; /* in QUOTA_UNITS */ }; +typedef int quotaproc_t(struct quota *quota, void *rock); + extern void quota_setroot(struct quota *quota, const char *root); extern int quota_read(struct quota *quota, struct txn **tid, int wrlock); @@ -94,6 +96,8 @@ extern int quota_findroot(char *ret, size_t retlen, const char *name); +extern int quota_foreach(const char *prefix, quotaproc_t *proc, void *rock); + extern void quota_free(struct quota *quota); /* open the quotas db */ diff -Nru cyrus-imapd-2.4-2.4.9/imap/sequence.c cyrus-imapd-2.4-2.4.12/imap/sequence.c --- cyrus-imapd-2.4-2.4.9/imap/sequence.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/sequence.c 2011-10-04 19:53:03.000000000 +0000 @@ -136,7 +136,6 @@ -#define MAX(x, y) (x > y ? x : y) /* Comparator function that sorts ranges by the low value, and coalesces intersecting ranges to have the same high value */ diff -Nru cyrus-imapd-2.4-2.4.9/imap/spool.c cyrus-imapd-2.4-2.4.12/imap/spool.c --- cyrus-imapd-2.4-2.4.9/imap/spool.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/spool.c 2011-10-04 19:53:03.000000000 +0000 @@ -197,7 +197,7 @@ skip && *skip && strcasecmp(name, *skip); skip++); if (!skip || !*skip) { /* write the header name to the output */ - fputs(name, fout); + if (fout) fputs(name, fout); skip = NULL; } s = (c == ':' ? BODY_START : COLON); @@ -220,7 +220,7 @@ } else if (c != ' ' && c != '\t') { /* i want to avoid confusing dot-stuffing later */ while (c == '.') { - if (!skip) fputc(c, fout); + if (fout && !skip) fputc(c, fout); c = prot_getc(fin); } r = IMAP_MESSAGE_BADHEADER; @@ -241,7 +241,7 @@ peek = prot_getc(fin); - if (!skip) { + if (fout && !skip) { fputc('\r', fout); fputc('\n', fout); } @@ -282,7 +282,7 @@ } /* copy this to the output */ - if (s != NAME && !skip) fputc(c, fout); + if (fout && s != NAME && !skip) fputc(c, fout); } /* if we fall off the end of the loop, we hit some sort of error diff -Nru cyrus-imapd-2.4-2.4.9/imap/squat_build.c cyrus-imapd-2.4-2.4.12/imap/squat_build.c --- cyrus-imapd-2.4-2.4.9/imap/squat_build.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/squat_build.c 2011-10-04 19:53:03.000000000 +0000 @@ -546,7 +546,7 @@ return SQUAT_OK; cleanup_fd: - close(b->fd); + close(fd); return SQUAT_ERR; } diff -Nru cyrus-imapd-2.4-2.4.9/imap/squat_internal.c cyrus-imapd-2.4-2.4.12/imap/squat_internal.c --- cyrus-imapd-2.4-2.4.9/imap/squat_internal.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/squat_internal.c 2011-10-04 19:53:03.000000000 +0000 @@ -72,12 +72,13 @@ return s + 4; } -SquatInt64 squat_decode_64(char const* s) { - unsigned char* v = (unsigned char*)s; - return ((SquatInt64)v[0] << 56) | ((SquatInt64)v[1] << 48) - | ((SquatInt64)v[2] << 40) | ((SquatInt64)v[3] << 32) - | (((SquatInt32)v[4] << 24) | ((SquatInt32)v[5] << 16) - | ((SquatInt32)v[6] << 8) | (SquatInt32)v[7]); +SquatInt64 squat_decode_64(char const *s) +{ + unsigned char* v = (unsigned char*)s; + return ((SquatInt64)v[0] << 56) | ((SquatInt64)v[1] << 48) | + ((SquatInt64)v[2] << 40) | ((SquatInt64)v[3] << 32) | + ((SquatInt64)v[4] << 24) | ((SquatInt64)v[5] << 16) | + ((SquatInt64)v[6] << 8) | (SquatInt64)v[7]; } char* squat_encode_64(char* s, SquatInt64 v) { diff -Nru cyrus-imapd-2.4-2.4.9/imap/sync_client.c cyrus-imapd-2.4-2.4.12/imap/sync_client.c --- cyrus-imapd-2.4-2.4.9/imap/sync_client.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/sync_client.c 2011-10-04 19:53:03.000000000 +0000 @@ -700,33 +700,37 @@ static int copy_local(struct mailbox *mailbox, unsigned long uid) { uint32_t recno; - struct index_record record; - char *oldfname, *newfname; + struct index_record oldrecord; int r; for (recno = 1; recno <= mailbox->i.num_records; recno++) { - r = mailbox_read_index_record(mailbox, recno, &record); + r = mailbox_read_index_record(mailbox, recno, &oldrecord); if (r) return r; - if (record.uid == uid) { - /* store the old record, expunged */ - record.system_flags |= FLAG_EXPUNGED; - r = mailbox_rewrite_index_record(mailbox, &record); - if (r) return r; - /* create the new record */ - record.system_flags &= ~FLAG_EXPUNGED; - record.uid = mailbox->i.last_uid + 1; + /* found the record, renumber it */ + if (oldrecord.uid == uid) { + char *oldfname, *newfname; + struct index_record newrecord; + + /* create the new record as a clone of the old record */ + newrecord = oldrecord; + newrecord.uid = mailbox->i.last_uid + 1; /* copy the file in to place */ - oldfname = xstrdup(mailbox_message_fname(mailbox, uid)); - newfname = xstrdup(mailbox_message_fname(mailbox, record.uid)); + oldfname = xstrdup(mailbox_message_fname(mailbox, oldrecord.uid)); + newfname = xstrdup(mailbox_message_fname(mailbox, newrecord.uid)); r = mailbox_copyfile(oldfname, newfname, 0); free(oldfname); free(newfname); if (r) return r; - /* and append the new record (a clone apart from the EXPUNGED flag) */ - r = mailbox_append_index_record(mailbox, &record); + /* append the new record */ + r = mailbox_append_index_record(mailbox, &newrecord); + if (r) return r; + + /* and expunge the old record */ + oldrecord.system_flags |= FLAG_EXPUNGED; + r = mailbox_rewrite_index_record(mailbox, &oldrecord); /* done - return */ return r; @@ -2599,39 +2603,43 @@ syslog(LOG_ERR, "unable to setsocketopt(TCP_NODELAY): %m"); } - /* turn on TCP keepalive if set */ - if (config_getswitch(IMAPOPT_TCP_KEEPALIVE)) { + /* turn on TCP keepalive if set */ + if (config_getswitch(IMAPOPT_TCP_KEEPALIVE)) { int r; - int optval = 1; - socklen_t optlen = sizeof(optval); - - r = setsockopt(sync_backend->sock, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen); - if (r < 0) { - syslog(LOG_ERR, "unable to setsocketopt(SO_KEEPALIVE): %m"); - } + int optval = 1; + socklen_t optlen = sizeof(optval); + struct protoent *proto = getprotobyname("TCP"); + + r = setsockopt(sync_backend->sock, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen); + if (r < 0) { + syslog(LOG_ERR, "unable to setsocketopt(SO_KEEPALIVE): %m"); + } #ifdef TCP_KEEPCNT - if (config_getint(IMAPOPT_TCP_KEEPALIVE_CNT)) { - r = setsockopt(sync_backend->sock, SOL_TCP, TCP_KEEPCNT, &optval, optlen); - if (r < 0) { - syslog(LOG_ERR, "unable to setsocketopt(TCP_KEEPCNT): %m"); - } - } + optval = config_getint(IMAPOPT_TCP_KEEPALIVE_CNT); + if (optval) { + r = setsockopt(sync_backend->sock, proto->p_proto, TCP_KEEPCNT, &optval, optlen); + if (r < 0) { + syslog(LOG_ERR, "unable to setsocketopt(TCP_KEEPCNT): %m"); + } + } #endif #ifdef TCP_KEEPIDLE - if (config_getint(IMAPOPT_TCP_KEEPALIVE_IDLE)) { - r = setsockopt(sync_backend->sock, SOL_TCP, TCP_KEEPIDLE, &optval, optlen); - if (r < 0) { - syslog(LOG_ERR, "unable to setsocketopt(TCP_KEEPIDLE): %m"); - } - } + optval = config_getint(IMAPOPT_TCP_KEEPALIVE_IDLE); + if (optval) { + r = setsockopt(sync_backend->sock, proto->p_proto, TCP_KEEPIDLE, &optval, optlen); + if (r < 0) { + syslog(LOG_ERR, "unable to setsocketopt(TCP_KEEPIDLE): %m"); + } + } #endif #ifdef TCP_KEEPINTVL - if (config_getint(IMAPOPT_TCP_KEEPALIVE_INTVL)) { - r = setsockopt(sync_backend->sock, SOL_TCP, TCP_KEEPINTVL, &optval, optlen); - if (r < 0) { - syslog(LOG_ERR, "unable to setsocketopt(TCP_KEEPINTVL): %m"); - } - } + optval = config_getint(IMAPOPT_TCP_KEEPALIVE_INTVL); + if (optval) { + r = setsockopt(sync_backend->sock, proto->p_proto, TCP_KEEPINTVL, &optval, optlen); + if (r < 0) { + syslog(LOG_ERR, "unable to setsocketopt(TCP_KEEPINTVL): %m"); + } + } #endif } } else { @@ -2658,6 +2666,11 @@ /* links to sockets */ sync_in = sync_backend->in; sync_out = sync_backend->out; + + /* Force use of LITERAL+ so we don't need two way communications */ + prot_setisclient(sync_in, 1); + prot_setisclient(sync_out, 1); + } static void replica_disconnect() diff -Nru cyrus-imapd-2.4-2.4.9/imap/sync_reset.c cyrus-imapd-2.4-2.4.12/imap/sync_reset.c --- cyrus-imapd-2.4-2.4.9/imap/sync_reset.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/sync_reset.c 2011-10-04 19:53:03.000000000 +0000 @@ -144,9 +144,7 @@ /* Nuke subscriptions */ list = sync_name_list_create(); - r = (sync_namespacep->mboxlist_findsub)(sync_namespacep, "*", 1, - (char *)userid, sync_authstate, - addmbox_sub, (void *)list, 1); + r = mboxlist_allsubs(userid, addmbox_sub, list); if (r) goto fail; /* ignore failures here - the subs file gets deleted soon anyway */ diff -Nru cyrus-imapd-2.4-2.4.9/imap/sync_server.c cyrus-imapd-2.4-2.4.12/imap/sync_server.c --- cyrus-imapd-2.4-2.4.9/imap/sync_server.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/sync_server.c 2011-10-04 19:53:03.000000000 +0000 @@ -349,6 +349,10 @@ sync_in = prot_new(0, 0); sync_out = prot_new(1, 1); + /* Force use of LITERAL+ so we don't need two way communications */ + prot_setisclient(sync_in, 1); + prot_setisclient(sync_out, 1); + /* Find out name of client host */ salen = sizeof(sync_remoteaddr); if (getpeername(0, (struct sockaddr *)&sync_remoteaddr, &salen) == 0 && diff -Nru cyrus-imapd-2.4-2.4.9/imap/sync_support.c cyrus-imapd-2.4-2.4.12/imap/sync_support.c --- cyrus-imapd-2.4-2.4.9/imap/sync_support.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/imap/sync_support.c 2011-10-04 19:53:03.000000000 +0000 @@ -1573,7 +1573,6 @@ } just_write: - record->silent = 1; return mailbox_append_index_record(mailbox, record); } diff -Nru cyrus-imapd-2.4-2.4.9/lib/cyrusdb_quotalegacy.c cyrus-imapd-2.4-2.4.12/lib/cyrusdb_quotalegacy.c --- cyrus-imapd-2.4-2.4.9/lib/cyrusdb_quotalegacy.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/lib/cyrusdb_quotalegacy.c 2011-10-04 19:53:03.000000000 +0000 @@ -75,6 +75,7 @@ #endif #include "assert.h" +#include "bsearch.h" #include "cyrusdb.h" #include "exitcodes.h" #include "hash.h" @@ -115,10 +116,32 @@ char *data; /* allocated buffer for fetched data */ struct txn txn; /* transaction associated with this db handle */ + + /* sorting function */ + int (*compar) (const void *s1, const void *s2); }; static int abort_txn(struct db *db __attribute__((unused)), struct txn *tid); +static int compar_qr(const void *v1, const void *v2); +static int compar_qr_mbox(const void *v1, const void *v2); + +/* hash the prefix - either with or without 'user.' part */ +static char name_to_hashchar(const char *name) +{ + int config_fulldirhash = libcyrus_config_getswitch(CYRUSOPT_FULLDIRHASH); + const char *idx; + + if (!*name) return '\0'; + + idx = strchr(name, '.'); /* skip past user. */ + if (idx == NULL) { + idx = name; + } else { + idx++; + } + return (char) dir_hash_c(idx, config_fulldirhash); +} /* simple hash so it's easy to find these things in the filesystem; our human time is worth more than efficiency */ @@ -126,7 +149,6 @@ { int config_virtdomains = libcyrus_config_getswitch(CYRUSOPT_VIRTDOMAINS); int config_fulldirhash = libcyrus_config_getswitch(CYRUSOPT_FULLDIRHASH); - const char *idx; char c, *p; unsigned len; @@ -158,13 +180,7 @@ } } - idx = strchr(qr, '.'); /* skip past user. */ - if (idx == NULL) { - idx = qr; - } else { - idx++; - } - c = (char) dir_hash_c(idx, config_fulldirhash); + c = name_to_hashchar(qr); if (snprintf(buf, size, "%s%c/%s", FNAME_QUOTADIR, c, qr) >= (int) size) { fatal("insufficient buffer size in hash_quota", EC_TEMPFAIL); @@ -333,6 +349,8 @@ return CYRUSDB_IOERROR; } + db->compar = (flags & CYRUSDB_MBOXSORT) ? compar_qr_mbox : compar_qr; + *ret = db; return 0; } @@ -497,6 +515,17 @@ return strcmp(qr1, qr2); } +static int compar_qr_mbox(const void *v1, const void *v2) +{ + const char *qr1, *qr2; + char qrbuf1[MAX_QUOTA_PATH+1], qrbuf2[MAX_QUOTA_PATH+1]; + + qr1 = path_to_qr(*((const char **) v1), qrbuf1); + qr2 = path_to_qr(*((const char **) v2), qrbuf2); + + return bsearch_compare(qr1, qr2); +} + #define PATH_ALLOC 100 struct qr_path { char **path; @@ -509,6 +538,7 @@ int config_fulldirhash = libcyrus_config_getswitch(CYRUSOPT_FULLDIRHASH); int config_virtdomains = libcyrus_config_getswitch(CYRUSOPT_VIRTDOMAINS); char *endp; + char onlyc = '\0'; int c, i; DIR *qrdir; struct dirent *next = NULL; @@ -517,8 +547,13 @@ endp = strstr(quota_path, FNAME_QUOTADIR) + strlen(FNAME_QUOTADIR); strcpy(endp, "?/"); + /* check for path restriction - if there's a prefix we only + * need to scan a single directory */ + onlyc = name_to_hashchar(prefix); + c = config_fulldirhash ? 'A' : 'a'; for (i = 0; i < 26; i++, c++) { + if (onlyc && c != onlyc) continue; *endp = c; qrdir = opendir(quota_path); @@ -601,15 +636,16 @@ DIR *qrdir; struct dirent *next = NULL; - n = snprintf(quota_path, sizeof(quota_path), "%s%s", + n = snprintf(quota_path, sizeof(quota_path)-3, "%s%s", db->path, FNAME_DOMAINDIR); endp = quota_path + n; - strcpy(endp, "?/"); c = config_fulldirhash ? 'A' : 'a'; for (i = 0; i < 26; i++, c++) { - *endp = c; + endp[0] = c; + endp[1] = '/'; + endp[2] = '\0'; qrdir = opendir(quota_path); @@ -633,7 +669,7 @@ if (tid && !*tid) *tid = &db->txn; /* sort the quotaroots (ignoring paths) */ - qsort(pathbuf.path, pathbuf.count, sizeof(char *), &compar_qr); + qsort(pathbuf.path, pathbuf.count, sizeof(char *), db->compar); for (i = 0; i < pathbuf.count; i++) { const char *data, *key; @@ -645,14 +681,14 @@ key = path_to_qr(pathbuf.path[i], quota_path); keylen = strlen(key); - free(pathbuf.path[i]); - if (!goodp || goodp(rock, key, keylen, data, datalen)) { /* make callback */ r = cb(rock, key, keylen, data, datalen); if (r) break; } } + for (i = 0; i < pathbuf.count; i++) + free(pathbuf.path[i]); free(pathbuf.path); diff -Nru cyrus-imapd-2.4-2.4.9/lib/cyrusdb_skiplist.c cyrus-imapd-2.4-2.4.12/lib/cyrusdb_skiplist.c --- cyrus-imapd-2.4-2.4.9/lib/cyrusdb_skiplist.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/lib/cyrusdb_skiplist.c 2011-10-04 19:53:03.000000000 +0000 @@ -1808,12 +1808,14 @@ db->fd = oldfd; unlink(fname); } + else { + struct stat sbuf; - /* release old write lock */ - close(oldfd); + /* remove content of old file so it doesn't sit around using disk */ + ftruncate(oldfd, 0); - { - struct stat sbuf; + /* release old write lock */ + close(oldfd); /* let's make sure we're up to date */ map_free(&db->map_base, &db->map_len); @@ -1938,7 +1940,7 @@ offset = FORWARD(ptr, i); if (offset > db->map_size) { - fprintf(stdout, + syslog(LOG_ERR, "skiplist inconsistent: %04X: ptr %d is %04X; " "eof is %04X\n", (unsigned int) (ptr - db->map_base), @@ -1954,7 +1956,7 @@ cmp = db->compar(KEY(ptr), KEYLEN(ptr), KEY(q), KEYLEN(q)); if (cmp >= 0) { - fprintf(stdout, + syslog(LOG_ERR, "skiplist inconsistent: %04X: ptr %d is %04X; " "db->compar() = %d\n", (unsigned int) (ptr - db->map_base), diff -Nru cyrus-imapd-2.4-2.4.9/lib/imapoptions cyrus-imapd-2.4-2.4.12/lib/imapoptions --- cyrus-imapd-2.4-2.4.9/lib/imapoptions 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/lib/imapoptions 2011-10-04 19:53:03.000000000 +0000 @@ -241,6 +241,12 @@ /* Maximum number of transactions to be supported in the berkeley environment. */ +{ "boundary_limit", 1000, INT } +/* messages are parsed recursively and a deep enough MIME structure + can cause a stack overflow. Do not parse deeper than this many + layers of MIME structure. The default of 1000 is much higher + than any sane message should have. */ + { "client_timeout", 10, INT } /* Number of seconds to wait before returning a timeout failure when performing a client connection (e.g., in a murder environment) */ @@ -294,6 +300,16 @@ grant the user the ability to delete a mailbox. If a user has this right, they will automatically be given the new 'x' right. */ +{ "disable_user_namespace", 0, SWITCH } +/* Preclude list command on user namespace. If set to 'yes', the + LIST response will never include any other user's mailbox. Admin + users will always see all mailboxes. The default is 'no' */ + +{ "disable_shared_namespace", 0, SWITCH } +/* Preclude list command on user namespace. If set to 'yes', the + LIST response will never include any non-user mailboxes. Admin + users will always see all mailboxes. The default is 'no' */ + { "disconnect_on_vanished_mailbox", 0, SWITCH } /* If enabled, IMAP/POP3/NNTP clients will be disconnected by the server if the currently selected mailbox is (re)moved by another @@ -597,10 +613,23 @@ will cause the user's mailbox to exceed its quota. By default, the failure won't occur until the mailbox is already over quota. */ +{ "lmtp_strict_rfc2821", 1, SWITCH } +/* By default, lmtpd will be strict (per RFC 2821) with regards to which + envelope addresses are allowed. If this option is set to false, 8bit + characters in the local-part of envelope addresses are changed to 'X' + instead. This is useful to avoid generating backscatter with + certain MTAs like Postfix or Exim which accept such messages. */ + { "lmtpsocket", "{configdirectory}/socket/lmtp", STRING } /* Unix domain socket that lmtpd listens on, used by deliver(8). This should match the path specified in cyrus.conf(5). */ +{ "lmtptxn_timeout", 300, INT } +/* Timeout (in seconds) used during a lmtp transaction to a remote backend + (e.g. in a murder environment). Can be used to prevent hung lmtpds + on proxy hosts when a backend server becomes unresponsive during a + lmtp transaction. The default is 300 - change to zero for infinite. */ + # xxx how does this tie into virtual domains? { "loginrealms", "", STRING } /* The list of remote realms whose users may authenticate using cross-realm @@ -656,7 +685,7 @@ { "mboxname_lockpath", NULL, STRING } /* Path to mailbox name lock files (default $conf/lock) */ -{ "metapartition_files", "", BITFIELD("header", "index", "cache", "expunge", "squat", "lock") } +{ "metapartition_files", "", BITFIELD("header", "index", "cache", "expunge", "squat") } /* Space-separated list of metadata files to be stored on a \fImetapartition\fR rather than in the mailbox directory on a spool partition. */ @@ -1171,9 +1200,9 @@ { "suppress_capabilities", NULL, STRING } /* Suppress the named capabilities from any capability response. Use the exact case as it appears in the response, e.g. - "suppress_capabilities: ESEARCH QRESYNC WITHIN XLIST" if you have - a murder with 2.3.x backends and don't want clients being confused - by new capabilities that some backends don't support. */ + "suppress_capabilities: ESEARCH QRESYNC WITHIN XLIST LIST-EXTENDED" + if you have a murder with 2.3.x backends and don't want clients being + confused by new capabilities that some backends don't support. */ { "statuscache", 0, SWITCH } /* Enable/disable the imap status cache. */ diff -Nru cyrus-imapd-2.4-2.4.9/lib/imapopts.c cyrus-imapd-2.4-2.4.12/lib/imapopts.c --- cyrus-imapd-2.4-2.4.9/lib/imapopts.c 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/lib/imapopts.c 2011-10-04 20:03:49.000000000 +0000 @@ -97,6 +97,9 @@ { IMAPOPT_BERKELEY_TXNS_MAX, "berkeley_txns_max", 0, OPT_INT, {(void*)100}, { { NULL, IMAP_ENUM_ZERO } } }, + { IMAPOPT_BOUNDARY_LIMIT, "boundary_limit", 0, OPT_INT, + {(void*)1000}, + { { NULL, IMAP_ENUM_ZERO } } }, { IMAPOPT_CLIENT_TIMEOUT, "client_timeout", 0, OPT_INT, {(void*)10}, { { NULL, IMAP_ENUM_ZERO } } }, @@ -132,6 +135,12 @@ { IMAPOPT_DELETERIGHT, "deleteright", 0, OPT_STRING, {(void *)("c")}, { { NULL, IMAP_ENUM_ZERO } } }, + { IMAPOPT_DISABLE_USER_NAMESPACE, "disable_user_namespace", 0, OPT_SWITCH, + {(void*)0}, + { { NULL, IMAP_ENUM_ZERO } } }, + { IMAPOPT_DISABLE_SHARED_NAMESPACE, "disable_shared_namespace", 0, OPT_SWITCH, + {(void*)0}, + { { NULL, IMAP_ENUM_ZERO } } }, { IMAPOPT_DISCONNECT_ON_VANISHED_MAILBOX, "disconnect_on_vanished_mailbox", 0, OPT_SWITCH, {(void*)0}, { { NULL, IMAP_ENUM_ZERO } } }, @@ -347,9 +356,15 @@ { IMAPOPT_LMTP_STRICT_QUOTA, "lmtp_strict_quota", 0, OPT_SWITCH, {(void*)0}, { { NULL, IMAP_ENUM_ZERO } } }, + { IMAPOPT_LMTP_STRICT_RFC2821, "lmtp_strict_rfc2821", 0, OPT_SWITCH, + {(void*)1}, + { { NULL, IMAP_ENUM_ZERO } } }, { IMAPOPT_LMTPSOCKET, "lmtpsocket", 0, OPT_STRING, {(void *)("{configdirectory}/socket/lmtp")}, { { NULL, IMAP_ENUM_ZERO } } }, + { IMAPOPT_LMTPTXN_TIMEOUT, "lmtptxn_timeout", 0, OPT_INT, + {(void*)300}, + { { NULL, IMAP_ENUM_ZERO } } }, { IMAPOPT_LOGINREALMS, "loginrealms", 0, OPT_STRING, {(void *)("")}, { { NULL, IMAP_ENUM_ZERO } } }, @@ -402,7 +417,6 @@ { "cache" , IMAP_ENUM_METAPARTITION_FILES_CACHE }, { "expunge" , IMAP_ENUM_METAPARTITION_FILES_EXPUNGE }, { "squat" , IMAP_ENUM_METAPARTITION_FILES_SQUAT }, - { "lock" , IMAP_ENUM_METAPARTITION_FILES_LOCK }, { NULL, IMAP_ENUM_ZERO } } }, { IMAPOPT_MUPDATE_AUTHNAME, "mupdate_authname", 0, OPT_STRING, {(void *)(NULL)}, diff -Nru cyrus-imapd-2.4-2.4.9/lib/imapopts.h cyrus-imapd-2.4-2.4.12/lib/imapopts.h --- cyrus-imapd-2.4-2.4.9/lib/imapopts.h 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/lib/imapopts.h 2011-10-04 20:03:49.000000000 +0000 @@ -37,6 +37,7 @@ IMAPOPT_BERKELEY_CACHESIZE, IMAPOPT_BERKELEY_LOCKS_MAX, IMAPOPT_BERKELEY_TXNS_MAX, + IMAPOPT_BOUNDARY_LIMIT, IMAPOPT_CLIENT_TIMEOUT, IMAPOPT_COMMANDMINTIMER, IMAPOPT_CONFIGDIRECTORY, @@ -48,6 +49,8 @@ IMAPOPT_DELETEDPREFIX, IMAPOPT_DELETE_MODE, IMAPOPT_DELETERIGHT, + IMAPOPT_DISABLE_USER_NAMESPACE, + IMAPOPT_DISABLE_SHARED_NAMESPACE, IMAPOPT_DISCONNECT_ON_VANISHED_MAILBOX, IMAPOPT_DUPLICATE_DB, IMAPOPT_DUPLICATE_DB_PATH, @@ -111,7 +114,9 @@ IMAPOPT_LMTP_FUZZY_MAILBOX_MATCH, IMAPOPT_LMTP_OVER_QUOTA_PERM_FAILURE, IMAPOPT_LMTP_STRICT_QUOTA, + IMAPOPT_LMTP_STRICT_RFC2821, IMAPOPT_LMTPSOCKET, + IMAPOPT_LMTPTXN_TIMEOUT, IMAPOPT_LOGINREALMS, IMAPOPT_LOGINUSEACL, IMAPOPT_LOGTIMESTAMPS, @@ -278,7 +283,6 @@ IMAP_ENUM_METAPARTITION_FILES_CACHE = (1<<2), IMAP_ENUM_METAPARTITION_FILES_EXPUNGE = (1<<3), IMAP_ENUM_METAPARTITION_FILES_SQUAT = (1<<4), - IMAP_ENUM_METAPARTITION_FILES_LOCK = (1<<5), IMAP_ENUM_MUPDATE_CONFIG_STANDARD = 0, IMAP_ENUM_MUPDATE_CONFIG_UNIFIED, IMAP_ENUM_MUPDATE_CONFIG_REPLICATED, diff -Nru cyrus-imapd-2.4-2.4.9/lib/Makefile.in cyrus-imapd-2.4-2.4.12/lib/Makefile.in --- cyrus-imapd-2.4-2.4.9/lib/Makefile.in 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/lib/Makefile.in 2011-10-04 19:53:03.000000000 +0000 @@ -102,9 +102,9 @@ LIBCYRM_HDRS = $(srcdir)/hash.h $(srcdir)/mpool.h $(srcdir)/xmalloc.h \ $(srcdir)/xstrlcat.h $(srcdir)/xstrlcpy.h $(srcdir)/util.h \ $(srcdir)/strhash.h $(srcdir)/libconfig.h $(srcdir)/assert.h \ - imapopts.h $(srcdir)/crc32.h + imapopts.h LIBCYRM_OBJS = libconfig.o imapopts.o hash.o mpool.o xmalloc.o strhash.o \ - xstrlcat.o xstrlcpy.o assert.o util.o signals.o crc32.o @IPV6_OBJS@ + xstrlcat.o xstrlcpy.o assert.o util.o signals.o @IPV6_OBJS@ all: $(BUILTSOURCES) libcyrus_min.a libcyrus.a diff -Nru cyrus-imapd-2.4-2.4.9/lib/parseaddr.c cyrus-imapd-2.4-2.4.12/lib/parseaddr.c --- cyrus-imapd-2.4-2.4.9/lib/parseaddr.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/lib/parseaddr.c 2011-10-04 19:53:03.000000000 +0000 @@ -106,6 +106,10 @@ case '@': tok = parseaddr_domain(&s, &domain, &comment); parseaddr_append(&addrp, comment, 0, phrase, domain, &freeme); + if (tok == ';') { + parseaddr_append(&addrp, 0, 0, 0, 0, &freeme); + ingroup = 0; + } continue; case '<': diff -Nru cyrus-imapd-2.4-2.4.9/lib/prot.c cyrus-imapd-2.4-2.4.12/lib/prot.c --- cyrus-imapd-2.4-2.4.9/lib/prot.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/lib/prot.c 2011-10-04 19:53:03.000000000 +0000 @@ -86,9 +86,7 @@ * Create a new protection stream for file descriptor 'fd'. Stream * will be used for writing iff 'write' is nonzero. */ -struct protstream *prot_new(fd, write) -int fd; -int write; +struct protstream *prot_new(int fd, int write) { struct protstream *newstream; @@ -105,9 +103,23 @@ if(write) newstream->cnt = PROT_BUFSIZE; - newstream->can_unget = 0; - newstream->bytes_in = 0; - newstream->bytes_out = 0; + return newstream; +} + +/* Create a protstream which is just an interface to a mapped piece of + * memory, allowing prot commands to be used to read from it */ +struct protstream *prot_readmap(const char *buf, uint32_t len) +{ + struct protstream *newstream; + + newstream = (struct protstream *) xzmalloc(sizeof(struct protstream)); + /* dodgy, but the alternative is two pointers */ + newstream->ptr = (unsigned char *)buf; + newstream->cnt = len; + newstream->fixedsize = 1; + newstream->fd = PROT_NO_FD; + newstream->logfd = PROT_NO_FD; + newstream->big_buffer = PROT_NO_FD; return newstream; } @@ -134,7 +146,7 @@ if (s->zbuf) free(s->zbuf); #endif - free((char*)s); + free(s); return 0; } @@ -264,6 +276,17 @@ return 0; } +/* + * Turn off SASL for this connection + */ + +void prot_unsetsasl(struct protstream *s) +{ + s->conn = NULL; + s->maxplain = PROT_BUFSIZE; + s->saslssf = 0; +} + #ifdef HAVE_ZLIB #define ZLARGE_DIFF_CHUNK (5120) /* 5K */ @@ -555,6 +578,7 @@ /* Zero errno just in case */ errno = 0; + if (s->fixedsize) s->eof = 1; if (s->eof || s->error) return EOF; do { @@ -1681,13 +1705,17 @@ { assert(!s->write); + if (c == EOF) return EOF; + if (!s->can_unget) fatal("Can't unwind any more", EC_SOFTWARE); s->cnt++; s->can_unget--; s->bytes_in--; - *--(s->ptr) = c; + s->ptr--; + if (*s->ptr != c) + fatal("Trying to unput wrong character", EC_SOFTWARE); return c; } diff -Nru cyrus-imapd-2.4-2.4.9/lib/prot.h cyrus-imapd-2.4-2.4.12/lib/prot.h --- cyrus-imapd-2.4-2.4.9/lib/prot.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/lib/prot.h 2011-10-04 19:53:03.000000000 +0000 @@ -113,6 +113,7 @@ /* Status Flags */ int eof; int boundary; /* Type of data is about to change */ + int fixedsize; char *error; /* Parameters */ @@ -182,6 +183,7 @@ /* Allocate/free the protstream structure */ extern struct protstream *prot_new(int fd, int write); +extern struct protstream *prot_readmap(const char *buf, uint32_t len); extern int prot_free(struct protstream *s); /* Set the telemetry logfile for a given protstream */ @@ -196,6 +198,7 @@ /* Set the SASL options for a protstream (requires authentication to * be complete for the given sasl_conn_t */ extern int prot_setsasl(struct protstream *s, sasl_conn_t *conn); +extern void prot_unsetsasl(struct protstream *s); #ifdef HAVE_SSL /* Set TLS options for a given protstream (requires a completed tls diff -Nru cyrus-imapd-2.4-2.4.9/lib/util.c cyrus-imapd-2.4-2.4.12/lib/util.c --- cyrus-imapd-2.4-2.4.9/lib/util.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/lib/util.c 2011-10-04 19:53:03.000000000 +0000 @@ -527,7 +527,7 @@ *len = buf->len; } -unsigned buf_len(struct buf *buf) +unsigned buf_len(const struct buf *buf) { return buf->len; } @@ -538,12 +538,24 @@ buf->flags &= ~BUF_CSTRING; } -void buf_setcstr(struct buf *buf, char *str) +void buf_truncate(struct buf *buf, unsigned int len) +{ + if (len > buf->alloc) { + /* grow the buffer and zero-fill the new bytes */ + unsigned int more = len - buf->len; + buf_ensure(buf, more); + memset(buf->s + buf->len, 0, more); + } + buf->len = len; + buf->flags &= ~BUF_CSTRING; +} + +void buf_setcstr(struct buf *buf, const char *str) { buf_setmap(buf, str, strlen(str)); } -void buf_setmap(struct buf *buf, char *base, int len) +void buf_setmap(struct buf *buf, const char *base, int len) { buf_reset(buf); if (len) { @@ -553,17 +565,17 @@ } } -void buf_copy(struct buf *dst, struct buf *src) +void buf_copy(struct buf *dst, const struct buf *src) { buf_setmap(dst, src->s, src->len); } -void buf_append(struct buf *dst, struct buf *src) +void buf_append(struct buf *dst, const struct buf *src) { buf_appendmap(dst, src->s, src->len); } -void buf_appendcstr(struct buf *buf, char *str) +void buf_appendcstr(struct buf *buf, const char *str) { buf_appendmap(buf, str, strlen(str)); } @@ -575,7 +587,7 @@ buf_appendmap(buf, item, 4); } -void buf_appendmap(struct buf *buf, char *base, int len) +void buf_appendmap(struct buf *buf, const char *base, int len) { if (len) { buf_ensure(buf, len); @@ -592,6 +604,118 @@ buf->flags &= ~BUF_CSTRING; } +void buf_printf(struct buf *buf, const char *fmt, ...) +{ + va_list args; + int room; + int n; + + /* Add some more room to the buffer. We just guess a + * size and rely on vsnprintf() to tell us if it + * needs to overrun the size. */ + buf_ensure(buf, 1024); + + room = buf->alloc - buf->len - 1; + va_start(args, fmt); + n = vsnprintf(buf->s + buf->len, room+1, fmt, args); + va_end(args); + + if (n > room) { + /* woops, we guessed wrong...retry */ + buf_ensure(buf, n-room); + va_start(args, fmt); + n = vsnprintf(buf->s + buf->len, n+1, fmt, args); + va_end(args); + } + + buf->len += n; + /* vsnprintf() gave us a trailing NUL, so we may as well remember + * that for later */ + buf->flags |= BUF_CSTRING; +} + +/** + * Replace all instances of the string literal @match in @buf + * with the string @replace, which may be NULL to just remove + * instances of @match. + * Returns: the number of substitutions made. + */ +unsigned int buf_replace_all(struct buf *buf, const char *match, + const char *replace) +{ + unsigned int n = 0; + int matchlen = strlen(match); + int replacelen = (replace ? strlen(replace) : 0); + char *p; + + /* we need buf to be a nul terminated string now please */ + buf_cstring(buf); + + p = buf->s; + while ((p = strstr(p, match))) { + if (replacelen > matchlen) { + /* string will need to expand */ + int dp = (p - buf->s); + buf_ensure(buf, replacelen - matchlen); + p = buf->s + dp; + } + if (matchlen != replacelen) { + memmove(p+replacelen, p+matchlen, + buf->len - (p - buf->s) - matchlen + replacelen + 1); + buf->len += (replacelen - matchlen); + } + if (replace) + memcpy(p, replace, replacelen); + n++; + p += replacelen; + } + + return n; +} + +/* + * Compare two struct bufs bytewise. Returns a number + * like strcmp(), suitable for sorting e.g. with qsort(), + */ +int buf_cmp(const struct buf *a, const struct buf *b) +{ + unsigned len = MIN(a->len, b->len); + int r = 0; + + if (len) + r = memcmp(a->s, b->s, len); + + if (!r) { + if (a->len < b->len) + r = -1; + else if (a->len > b->len) + r = 1; + } + + return r; +} + +void buf_init(struct buf *buf) +{ + buf->alloc = 0; + buf->len = 0; + buf->flags = 0; + buf->s = NULL; +} + +/* + * Initialise a struct buf to point to read-only data. The key here is + * setting buf->alloc=0 which indicates CoW is in effect, i.e. the data + * pointed to needs to be copied should it ever be modified. + */ +void buf_init_ro(struct buf *buf, const char *base, int len) +{ + buf->alloc = 0; + buf->len = len; + buf->flags = 0; + buf->s = (char *)base; +} + void buf_free(struct buf *buf) { if (buf->alloc) @@ -602,6 +726,14 @@ buf->flags = 0; } +void buf_move(struct buf *dst, struct buf *src) +{ + if (dst->alloc) + free(dst->s); + *dst = *src; + buf_init(src); +} + char *strconcat(const char *s1, ...) { int sz = 1; /* 1 byte for the trailing NUL */ diff -Nru cyrus-imapd-2.4-2.4.9/lib/util.h cyrus-imapd-2.4-2.4.12/lib/util.h --- cyrus-imapd-2.4-2.4.9/lib/util.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/lib/util.h 2011-10-04 19:53:03.000000000 +0000 @@ -92,6 +92,13 @@ #define TOUPPER(c) (convert_to_uppercase[(unsigned char)(c)]) #define TOLOWER(c) (convert_to_lowercase[(unsigned char)(c)]) +#ifndef MAX +#define MAX(x, y) ((x) > (y) ? (x) : (y)) +#endif +#ifndef MIN +#define MIN(x, y) ((x) < (y) ? (x) : (y)) +#endif + typedef struct keyvalue { char *key, *value; } keyvalue; @@ -173,20 +180,31 @@ unsigned alloc; int flags; }; +#define BUF_INITIALIZER { NULL, 0, 0, 0 } const char *buf_cstring(struct buf *buf); +void buf_ensure(struct buf *buf, int morebytes); void buf_getmap(struct buf *buf, const char **base, int *len); -unsigned buf_len(struct buf *buf); +unsigned buf_len(const struct buf *buf); void buf_reset(struct buf *buf); -void buf_setcstr(struct buf *buf, char *str); -void buf_setmap(struct buf *buf, char *base, int len); -void buf_copy(struct buf *dst, struct buf *src); -void buf_append(struct buf *dst, struct buf *src); -void buf_appendcstr(struct buf *buf, char *str); +void buf_truncate(struct buf *buf, unsigned int len); +void buf_setcstr(struct buf *buf, const char *str); +void buf_setmap(struct buf *buf, const char *base, int len); +void buf_copy(struct buf *dst, const struct buf *src); +void buf_append(struct buf *dst, const struct buf *src); +void buf_appendcstr(struct buf *buf, const char *str); void buf_appendbit32(struct buf *buf, bit32 num); -void buf_appendmap(struct buf *buf, char *base, int len); +void buf_appendmap(struct buf *buf, const char *base, int len); void buf_putc(struct buf *buf, char c); +void buf_printf(struct buf *buf, const char *fmt, ...) + __attribute__((format(printf,2,3))); +unsigned int buf_replace_all(struct buf *buf, const char *match, + const char *replace); +int buf_cmp(const struct buf *, const struct buf *); +void buf_init(struct buf *buf); +void buf_init_ro(struct buf *buf, const char *base, int len); void buf_free(struct buf *buf); +void buf_move(struct buf *dst, struct buf *src); /* use getpassphrase on machines which support it */ #ifdef HAVE_GETPASSPHRASE diff -Nru cyrus-imapd-2.4-2.4.9/Makefile.in cyrus-imapd-2.4-2.4.12/Makefile.in --- cyrus-imapd-2.4-2.4.9/Makefile.in 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/Makefile.in 2011-10-04 19:53:03.000000000 +0000 @@ -64,7 +64,7 @@ COMPILE_ET = @COMPILE_ET@ PACKAGE = cyrus-imapd -VERSION = 2.4.9 +VERSION = 2.4.12 GIT_VERSION = $(VERSION).git$(shell date +'%Y%m%d%H%M') all:: xversion diff -Nru cyrus-imapd-2.4-2.4.9/man/imapd.conf.5 cyrus-imapd-2.4-2.4.12/man/imapd.conf.5 --- cyrus-imapd-2.4-2.4.9/man/imapd.conf.5 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/man/imapd.conf.5 2011-10-04 20:03:49.000000000 +0000 @@ -221,6 +221,11 @@ .IP "\fBberkeley_txns_max:\fR 100" 5 Maximum number of transactions to be supported in the berkeley environment. +.IP "\fBboundary_limit:\fR 1000" 5 +messages are parsed recursively and a deep enough MIME structure +can cause a stack overflow. Do not parse deeper than this many +layers of MIME structure. The default of 1000 is much higher +than any sane message should have. .IP "\fBclient_timeout:\fR 10" 5 Number of seconds to wait before returning a timeout failure when performing a client connection (e.g., in a murder environment) @@ -265,6 +270,14 @@ installations. Lists the old RFC 2086 right which was used to grant the user the ability to delete a mailbox. If a user has this right, they will automatically be given the new 'x' right. +.IP "\fBdisable_user_namespace:\fR 0" 5 +Preclude list command on user namespace. If set to 'yes', the +LIST response will never include any other user's mailbox. Admin +users will always see all mailboxes. The default is 'no' +.IP "\fBdisable_shared_namespace:\fR 0" 5 +Preclude list command on user namespace. If set to 'yes', the +LIST response will never include any non-user mailboxes. Admin +users will always see all mailboxes. The default is 'no' .IP "\fBdisconnect_on_vanished_mailbox:\fR 0" 5 If enabled, IMAP/POP3/NNTP clients will be disconnected by the server if the currently selected mailbox is (re)moved by another @@ -512,9 +525,20 @@ If enabled, lmtpd returns a failure code when the incoming message will cause the user's mailbox to exceed its quota. By default, the failure won't occur until the mailbox is already over quota. +.IP "\fBlmtp_strict_rfc2821:\fR 1" 5 +By default, lmtpd will be strict (per RFC 2821) with regards to which +envelope addresses are allowed. If this option is set to false, 8bit +characters in the local-part of envelope addresses are changed to 'X' +instead. This is useful to avoid generating backscatter with +certain MTAs like Postfix or Exim which accept such messages. .IP "\fBlmtpsocket:\fR {configdirectory}/socket/lmtp" 5 Unix domain socket that lmtpd listens on, used by deliver(8). This should match the path specified in cyrus.conf(5). +.IP "\fBlmtptxn_timeout:\fR 300" 5 +Timeout (in seconds) used during a lmtp transaction to a remote backend +(e.g. in a murder environment). Can be used to prevent hung lmtpds +on proxy hosts when a backend server becomes unresponsive during a +lmtp transaction. The default is 300 - change to zero for infinite. .IP "\fBloginrealms:\fR " 5 The list of remote realms whose users may authenticate using cross-realm authentication identifiers. Separate each realm name by a space. (A @@ -565,7 +589,7 @@ \fImetapartition\fR rather than in the mailbox directory on a spool partition. -Allowed values: \fIheader\fR, \fIindex\fR, \fIcache\fR, \fIexpunge\fR, \fIsquat\fR, \fIlock\fR +Allowed values: \fIheader\fR, \fIindex\fR, \fIcache\fR, \fIexpunge\fR, \fIsquat\fR .IP "\fBmetapartition-name:\fR " 5 The pathname of the metadata partition \fIname\fR, corresponding to spool partition \fBpartition-name\fR. For any mailbox residing in @@ -993,9 +1017,9 @@ .IP "\fBsuppress_capabilities:\fR " 5 Suppress the named capabilities from any capability response. Use the exact case as it appears in the response, e.g. -"suppress_capabilities: ESEARCH QRESYNC WITHIN XLIST" if you have -a murder with 2.3.x backends and don't want clients being confused -by new capabilities that some backends don't support. +"suppress_capabilities: ESEARCH QRESYNC WITHIN XLIST LIST-EXTENDED" +if you have a murder with 2.3.x backends and don't want clients being +confused by new capabilities that some backends don't support. .IP "\fBstatuscache:\fR 0" 5 Enable/disable the imap status cache. .IP "\fBstatuscache_db:\fR skiplist" 5 diff -Nru cyrus-imapd-2.4-2.4.9/man/ipurge.8 cyrus-imapd-2.4-2.4.12/man/ipurge.8 --- cyrus-imapd-2.4-2.4.9/man/ipurge.8 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/man/ipurge.8 2011-10-04 19:53:03.000000000 +0000 @@ -64,6 +64,9 @@ [ .B \-s ] +[ +.B \-o +] .br [ .BI \-d " days" @@ -129,6 +132,9 @@ .TP .B \-s Skip over messages that have the \\Flagged flag set. +.TP +.B \-o +Only purge messages that have the \\Deleted flag set. .SH FILES .TP .B /etc/imapd.conf diff -Nru cyrus-imapd-2.4-2.4.9/man/sieveshell.1 cyrus-imapd-2.4-2.4.12/man/sieveshell.1 --- cyrus-imapd-2.4-2.4.9/man/sieveshell.1 2011-06-21 19:51:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/man/sieveshell.1 2011-10-04 20:03:53.000000000 +0000 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07) +.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "SIEVESHELL 1" -.TH SIEVESHELL 1 "2011-06-21" "perl v5.10.1" "User Contributed Perl Documentation" +.TH SIEVESHELL 1 "2011-10-04" "perl v5.12.4" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nru cyrus-imapd-2.4-2.4.9/master/master.c cyrus-imapd-2.4-2.4.12/master/master.c --- cyrus-imapd-2.4-2.4.9/master/master.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/master/master.c 2011-10-04 19:53:03.000000000 +0000 @@ -1483,7 +1483,6 @@ proto = NULL; /* avoid freeing it */ Services[i].exec = tokenize(cmd); - cmd = NULL; /* avoid freeing it */ if (!Services[i].exec) fatal("out of memory", EX_UNAVAILABLE); /* is this service actually there? */ @@ -1536,6 +1535,8 @@ Services[i].desired_workers, Services[i].max_workers, (int) Services[i].maxfds); + + cmd = NULL; /* avoid freeing it */ done: free(cmd); diff -Nru cyrus-imapd-2.4-2.4.9/master/service.c cyrus-imapd-2.4-2.4.12/master/service.c --- cyrus-imapd-2.4-2.4.9/master/service.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/master/service.c 2011-10-04 19:53:03.000000000 +0000 @@ -520,6 +520,7 @@ int r; int optval = 1; socklen_t optlen = sizeof(optval); + struct protoent *proto = getprotobyname("TCP"); r = setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen); if (r < 0) { @@ -528,7 +529,7 @@ #ifdef TCP_KEEPCNT optval = config_getint(IMAPOPT_TCP_KEEPALIVE_CNT); if (optval) { - r = setsockopt(fd, SOL_TCP, TCP_KEEPCNT, &optval, optlen); + r = setsockopt(fd, proto->p_proto, TCP_KEEPCNT, &optval, optlen); if (r < 0) { syslog(LOG_ERR, "unable to setsocketopt(TCP_KEEPCNT): %m"); } @@ -537,7 +538,7 @@ #ifdef TCP_KEEPIDLE optval = config_getint(IMAPOPT_TCP_KEEPALIVE_IDLE); if (optval) { - r = setsockopt(fd, SOL_TCP, TCP_KEEPIDLE, &optval, optlen); + r = setsockopt(fd, proto->p_proto, TCP_KEEPIDLE, &optval, optlen); if (r < 0) { syslog(LOG_ERR, "unable to setsocketopt(TCP_KEEPIDLE): %m"); } @@ -546,7 +547,7 @@ #ifdef TCP_KEEPINTVL optval = config_getint(IMAPOPT_TCP_KEEPALIVE_INTVL); if (optval) { - r = setsockopt(fd, SOL_TCP, TCP_KEEPINTVL, &optval, optlen); + r = setsockopt(fd, proto->p_proto, TCP_KEEPINTVL, &optval, optlen); if (r < 0) { syslog(LOG_ERR, "unable to setsocketopt(TCP_KEEPINTVL): %m"); } diff -Nru cyrus-imapd-2.4-2.4.9/perl/imap/IMAP/Shell.pm cyrus-imapd-2.4-2.4.12/perl/imap/IMAP/Shell.pm --- cyrus-imapd-2.4-2.4.9/perl/imap/IMAP/Shell.pm 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/perl/imap/IMAP/Shell.pm 2011-10-04 19:53:03.000000000 +0000 @@ -1177,6 +1177,18 @@ my $name = $mbx->[0]; my $flags = $mbx->[1]; next if($flags =~ /(\\noselect|\\nonexistent|\\placeholder)/i); + # If id of '*' is passed then delete all existing acls + if ($nargv[1] eq '*') { + my %acl = $$cyrref->listaclmailbox($name); + if (defined $$cyrref->error) { + print($$cyrref->error, "\n"); + next; + } + pop(@nargv); + foreach my $acl (keys %acl) { + push(@nargv, $acl, $acl{$acl}); + } + } print "Deleting acl on $name..."; $nargv[0] = $name; my $rc = $$cyrref->deleteacl(@nargv); @@ -1188,6 +1200,18 @@ } } } else { + # If id of '*' is passed then delete all existing acls + if ($nargv[1] eq '*') { + my %acl = $$cyrref->listaclmailbox($nargv[0]); + if (defined $$cyrref->error) { + print($$cyrref->error, "\n"); + next; + } + pop(@nargv); + foreach my $acl (keys %acl) { + push(@nargv, $acl, $acl{$acl}); + } + } $$cyrref->deleteacl(@nargv) || die "deleteaclmailbox: " . $$cyrref->error . "\n"; } diff -Nru cyrus-imapd-2.4-2.4.9/perl/sieve/lib/request.c cyrus-imapd-2.4-2.4.12/perl/sieve/lib/request.c --- cyrus-imapd-2.4-2.4.9/perl/sieve/lib/request.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/perl/sieve/lib/request.c 2011-10-04 19:53:03.000000000 +0000 @@ -547,9 +547,7 @@ char *scrname; - scrname=malloc(strlen(name)+10); - strcpy(scrname, name); - strcat(scrname, ".script"); + scrname = strconcat(name, ".script", (char *)NULL); stream=fopen(scrname,"w"); diff -Nru cyrus-imapd-2.4-2.4.9/ptclient/afskrb.c cyrus-imapd-2.4-2.4.12/ptclient/afskrb.c --- cyrus-imapd-2.4-2.4.9/ptclient/afskrb.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/ptclient/afskrb.c 2011-10-04 19:53:03.000000000 +0000 @@ -481,7 +481,7 @@ if ((rc = pr_ListMembers(canon_id_tmp, &groups))) { /* Failure may indicate that we need new tokens */ pr_End(); - rc = pr_Initialize (1L, AFSCONF_CLIENTNAME, 0); + rc = pr_Initialize (1L, AFSCONF_CLIENTNAME, config_getstring(IMAPOPT_AFSPTS_MYCELL)); if (rc) { syslog(LOG_DEBUG, "pr_Initialize failed: %d", rc); fatal("pr_Initialize failed", EC_TEMPFAIL); diff -Nru cyrus-imapd-2.4-2.4.9/sieve/addr.c cyrus-imapd-2.4-2.4.12/sieve/addr.c --- cyrus-imapd-2.4-2.4.9/sieve/addr.c 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/sieve/addr.c 2011-10-04 20:03:49.000000000 +0000 @@ -1,102 +1,83 @@ -#ifndef lint -static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; -#endif - -#define YYBYACC 1 -#define YYMAJOR 1 -#define YYMINOR 9 -#define YYPATCH 20100610 - -#define YYEMPTY (-1) -#define yyclearin (yychar = YYEMPTY) -#define yyerrok (yyerrflag = 0) -#define YYRECOVERING() (yyerrflag != 0) - - -#ifndef yyparse -#define yyparse addrparse -#endif /* yyparse */ - -#ifndef yylex -#define yylex addrlex -#endif /* yylex */ - -#ifndef yyerror -#define yyerror addrerror -#endif /* yyerror */ - -#ifndef yychar -#define yychar addrchar -#endif /* yychar */ - -#ifndef yyval -#define yyval addrval -#endif /* yyval */ -#ifndef yylval -#define yylval addrlval -#endif /* yylval */ +/* A Bison parser, made by GNU Bison 2.4.1. */ -#ifndef yydebug -#define yydebug addrdebug -#endif /* yydebug */ +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 -#ifndef yynerrs -#define yynerrs addrnerrs -#endif /* yynerrs */ +/* Bison version. */ +#define YYBISON_VERSION "2.4.1" -#ifndef yyerrflag -#define yyerrflag addrerrflag -#endif /* yyerrflag */ +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" -#ifndef yylhs -#define yylhs addrlhs -#endif /* yylhs */ - -#ifndef yylen -#define yylen addrlen -#endif /* yylen */ - -#ifndef yydefred -#define yydefred addrdefred -#endif /* yydefred */ - -#ifndef yydgoto -#define yydgoto addrdgoto -#endif /* yydgoto */ - -#ifndef yysindex -#define yysindex addrsindex -#endif /* yysindex */ +/* Pure parsers. */ +#define YYPURE 0 -#ifndef yyrindex -#define yyrindex addrrindex -#endif /* yyrindex */ +/* Push parsers. */ +#define YYPUSH 0 -#ifndef yygindex -#define yygindex addrgindex -#endif /* yygindex */ +/* Pull parsers. */ +#define YYPULL 1 -#ifndef yytable -#define yytable addrtable -#endif /* yytable */ +/* Using locations. */ +#define YYLSP_NEEDED 0 -#ifndef yycheck -#define yycheck addrcheck -#endif /* yycheck */ +/* Substitute the variable and function names. */ +#define yyparse addrparse +#define yylex addrlex +#define yyerror addrerror +#define yylval addrlval +#define yychar addrchar +#define yydebug addrdebug +#define yynerrs addrnerrs -#ifndef yyname -#define yyname addrname -#endif /* yyname */ -#ifndef yyrule -#define yyrule addrrule -#endif /* yyrule */ -#define YYPREFIX "addr" +/* Copy the first part of user declarations. */ -#define YYPURE 0 +/* Line 189 of yacc.c */ +#line 1 "addr.y" -#line 2 "addr.y" /* * addr.y -- RFC 822 address parser * Ken Murchison @@ -165,469 +146,1486 @@ /* byacc default is 500, bison default is 10000 - go with the larger to support big sieve scripts (see Bug #3461) */ #define YYSTACKSIZE 10000 -#line 168 "y.tab.c" -#ifndef YYSTYPE + +/* Line 189 of yacc.c */ +#line 153 "y.tab.c" + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + ATOM = 258, + QTEXT = 259, + DTEXT = 260 + }; +#endif +/* Tokens. */ +#define ATOM 258 +#define QTEXT 259 +#define DTEXT 260 + + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef int YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 #endif -/* compatibility with bison */ -#ifdef YYPARSE_PARAM -/* compatibility with FreeBSD */ -# ifdef YYPARSE_PARAM_TYPE -# define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM) + +/* Copy the second part of user declarations. */ + + +/* Line 264 of yacc.c */ +#line 205 "y.tab.c" + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t # else -# define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM) +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid # endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) #else -# define YYPARSE_DECL() yyparse(void) +# define YYUSE(e) /* empty */ #endif -/* Parameters sent to lex. */ -#ifdef YYLEX_PARAM -# define YYLEX_DECL() yylex(void *YYLEX_PARAM) -# define YYLEX yylex(YYLEX_PARAM) +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int yyi) #else -# define YYLEX_DECL() yylex(void) -# define YYLEX yylex() +static int +YYID (yyi) + int yyi; +#endif +{ + return yyi; +} #endif -extern int YYPARSE_DECL(); -extern int YYLEX_DECL(); - -#define ATOM 257 -#define QTEXT 258 -#define DTEXT 259 -#define YYERRCODE 256 -static const short addrlhs[] = { -1, - 0, 0, 1, 3, 3, 4, 4, 6, 6, 7, - 8, 2, 2, 5, 5, 9, -}; -static const short addrlen[] = { 2, - 1, 4, 3, 1, 3, 1, 3, 1, 1, 1, - 3, 1, 2, 1, 1, 3, -}; -static const short addrdefred[] = { 0, - 14, 0, 0, 1, 0, 0, 0, 15, 0, 0, - 0, 0, 13, 0, 16, 0, 0, 10, 0, 3, - 0, 8, 9, 5, 2, 0, 0, 11, 7, -}; -static const short addrdgoto[] = { 3, - 4, 13, 6, 20, 14, 21, 22, 23, 8, -}; -static const short addrsindex[] = { -33, - 0, -252, 0, 0, -53, -56, -34, 0, -24, -33, - -89, -33, 0, -33, 0, -51, -31, 0, -246, 0, - -29, 0, 0, 0, 0, -75, -89, 0, 0, -}; -static const short addrrindex[] = { 0, - 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, - 0, 0, 0, -41, 0, 0, -44, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, -}; -static const short addrgindex[] = { 0, - 11, 22, 12, -4, 4, 0, 0, 0, 0, -}; -#define YYTABLESIZE 224 -static const short addrtable[] = { 2, - 2, 19, 6, 7, 12, 9, 10, 11, 4, 15, - 25, 12, 26, 17, 12, 17, 27, 28, 12, 4, - 16, 5, 29, 24, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, -}; -static const short addrcheck[] = { 34, - 34, 91, 0, 0, 60, 258, 60, 64, 64, 34, - 62, 46, 259, 10, 46, 12, 46, 93, 60, 64, - 10, 0, 27, 12, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 257, 257, +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; }; -#define YYFINAL 3 -#ifndef YYDEBUG -#define YYDEBUG 0 + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + #endif -#define YYMAXTOKEN 259 + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 10 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 26 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 13 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 11 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 17 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 31 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 260 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint8 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, 2, 12, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 9, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 6, 2, 7, 2, 8, 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, 11, 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, 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, 2, 3, 4, + 5 +}; + #if YYDEBUG -static const char *yyname[] = { +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint8 yyprhs[] = +{ + 0, 0, 3, 5, 10, 14, 16, 20, 22, 26, + 28, 30, 32, 36, 38, 41, 43, 45 +}; -"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -"'\"'",0,0,0,0,0,0,0,0,0,0,0,"'.'",0,0,0,0,0,0,0,0,0,0,0,0,0,"'<'",0,"'>'",0, -"'@'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'['",0,"']'",0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -"ATOM","QTEXT","DTEXT", -}; -static const char *yyrule[] = { -"$accept : sieve_address", -"sieve_address : addrspec", -"sieve_address : phrase '<' addrspec '>'", -"addrspec : localpart '@' domain", -"localpart : word", -"localpart : word '.' localpart", -"domain : subdomain", -"domain : subdomain '.' domain", -"subdomain : domainref", -"subdomain : domainlit", -"domainref : ATOM", -"domainlit : '[' DTEXT ']'", -"phrase : word", -"phrase : word phrase", -"word : ATOM", -"word : qstring", -"qstring : '\"' QTEXT '\"'", - -}; -#endif -/* define the initial stack-sizes */ -#ifdef YYSTACKSIZE -#undef YYMAXDEPTH -#define YYMAXDEPTH YYSTACKSIZE -#else -#ifdef YYMAXDEPTH -#define YYSTACKSIZE YYMAXDEPTH -#else -#define YYSTACKSIZE 500 -#define YYMAXDEPTH 500 -#endif -#endif - -#define YYINITSTACKSIZE 500 - -int yydebug; -int yynerrs; - -typedef struct { - unsigned stacksize; - short *s_base; - short *s_mark; - short *s_last; - YYSTYPE *l_base; - YYSTYPE *l_mark; -} YYSTACKDATA; -int yyerrflag; -int yychar; -YYSTYPE yyval; -YYSTYPE yylval; - -/* variables for the parser stack */ -static YYSTACKDATA yystack; -#line 112 "addr.y" +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int8 yyrhs[] = +{ + 14, 0, -1, 15, -1, 21, 6, 15, 7, -1, + 16, 8, 17, -1, 22, -1, 22, 9, 16, -1, + 18, -1, 18, 9, 17, -1, 19, -1, 20, -1, + 3, -1, 10, 5, 11, -1, 22, -1, 22, 21, + -1, 3, -1, 23, -1, 12, 4, 12, -1 +}; -/* copy address error message into buffer provided by sieve parser */ -int yyerror(char *s) +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint8 yyrline[] = { - extern char addrerr[ADDRERR_SIZE]; - - strlcpy(addrerr, s, ADDRERR_SIZE); - return 0; -} -#line 363 "y.tab.c" + 0, 75, 75, 76, 79, 82, 83, 86, 87, 90, + 91, 94, 97, 100, 101, 104, 105, 108 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "ATOM", "QTEXT", "DTEXT", "'<'", "'>'", + "'@'", "'.'", "'['", "']'", "'\"'", "$accept", "sieve_address", + "addrspec", "localpart", "domain", "subdomain", "domainref", "domainlit", + "phrase", "word", "qstring", 0 +}; +#endif +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 60, 62, 64, 46, + 91, 93, 34 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 13, 14, 14, 15, 16, 16, 17, 17, 18, + 18, 19, 20, 21, 21, 22, 22, 23 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 4, 3, 1, 3, 1, 3, 1, + 1, 1, 3, 1, 2, 1, 1, 3 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 0, 15, 0, 0, 2, 0, 0, 5, 16, 0, + 1, 0, 0, 0, 14, 13, 17, 11, 0, 4, + 7, 9, 10, 0, 5, 6, 0, 0, 3, 12, + 8 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int8 yydefgoto[] = +{ + -1, 3, 4, 5, 19, 20, 21, 22, 14, 15, + 8 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -7 +static const yytype_int8 yypact[] = +{ + -1, -7, 1, 3, -7, 6, 10, -2, -7, -6, + -7, 5, -1, -1, -7, -1, -7, -7, 4, -7, + 8, -7, -7, 11, 12, -7, 9, 5, -7, -7, + -7 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int8 yypgoto[] = +{ + -7, -7, 7, 13, -5, -7, -7, -7, 23, 0, + -7 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -14 +static const yytype_int8 yytable[] = +{ + 7, 1, 1, 10, -13, 9, 16, 13, 17, 26, + 2, 2, 24, 24, 11, 18, 12, 27, 28, 23, + 29, 13, 30, 6, 0, 0, 25 +}; + +static const yytype_int8 yycheck[] = +{ + 0, 3, 3, 0, 6, 4, 12, 9, 3, 5, + 12, 12, 12, 13, 8, 10, 6, 9, 7, 12, + 11, 9, 27, 0, -1, -1, 13 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 3, 12, 14, 15, 16, 21, 22, 23, 4, + 0, 8, 6, 9, 21, 22, 12, 3, 10, 17, + 18, 19, 20, 15, 22, 16, 5, 9, 7, 11, + 17 +}; + +#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 yyerrorlab + + +/* 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); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) + + +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (YYLEX_PARAM) +#else +# define YYLEX yylex () +#endif + +/* Enable debugging if requested. */ #if YYDEBUG -#include /* needed for printf */ + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; #endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} -#include /* needed for malloc, etc */ -#include /* needed for memset */ -/* allocate initial stack or double stack size, up to YYMAXDEPTH */ -static int yygrowstack(YYSTACKDATA *data) +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif { - int i; - unsigned newsize; - short *newss; - YYSTYPE *newvs; - - if ((newsize = data->stacksize) == 0) - newsize = YYINITSTACKSIZE; - else if (newsize >= YYMAXDEPTH) - return -1; - else if ((newsize *= 2) > YYMAXDEPTH) - newsize = YYMAXDEPTH; - - i = data->s_mark - data->s_base; - newss = (data->s_base != 0) - ? (short *)realloc(data->s_base, newsize * sizeof(*newss)) - : (short *)malloc(newsize * sizeof(*newss)); - if (newss == 0) - return -1; - - data->s_base = newss; - data->s_mark = newss + i; - - newvs = (data->l_base != 0) - ? (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs)) - : (YYSTYPE *)malloc(newsize * sizeof(*newvs)); - if (newvs == 0) - return -1; + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); - data->l_base = newvs; - data->l_mark = newvs + i; + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} - data->stacksize = newsize; - data->s_last = data->s_base + newsize - 1; - return 0; +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +#else +static void +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); } -#if YYPURE || defined(YY_NO_LEAKS) -static void yyfreestack(YYSTACKDATA *data) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +#else +static void +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; + int yyrule; +#endif { - free(data->s_base); - free(data->l_base); - memset(data, 0, sizeof(*data)); + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + YYFPRINTF (stderr, "\n"); + } } + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) #else -#define yyfreestack(data) /* nothing */ +static YYSIZE_T +yystrlen (yystr) + const char *yystr; #endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif -#define YYABORT goto yyabort -#define YYREJECT goto yyabort -#define YYACCEPT goto yyaccept -#define YYERROR goto yyerrlab +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif +{ + char *yyd = yydest; + const char *yys = yysrc; -int -YYPARSE_DECL() + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) { - int yym, yyn, yystate; -#if YYDEBUG - const char *yys; + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } - if ((yys = getenv("YYDEBUG")) != 0) + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) +{ + int yyn = yypact[yystate]; + + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else { - yyn = *yys; - if (yyn >= '0' && yyn <= '9') - yydebug = yyn - '0'; + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; } +} +#endif /* YYERROR_VERBOSE */ + + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; #endif +{ + YYUSE (yyvaluep); + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { - yynerrs = 0; - yyerrflag = 0; - yychar = YYEMPTY; - yystate = 0; + default: + break; + } +} -#if YYPURE - memset(&yystack, 0, sizeof(yystack)); +/* Prevent warnings from -Wmissing-prototypes. */ +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); #endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ - if (yystack.s_base == NULL && yygrowstack(&yystack)) goto yyoverflow; - yystack.s_mark = yystack.s_base; - yystack.l_mark = yystack.l_base; - yystate = 0; - *yystack.s_mark = 0; -yyloop: - if ((yyn = yydefred[yystate]) != 0) goto yyreduce; - if (yychar < 0) - { - if ((yychar = YYLEX) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } +/* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; + + + +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void) +#else +int +yyparse () + #endif +#endif +{ + + + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + 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; + yyvsp = yyvs; + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* 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; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); } - if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) + else { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, shifting to state %d\n", - YYPREFIX, yystate, yytable[yyn]); -#endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) - { - goto yyoverflow; - } - yystate = yytable[yyn]; - *++yystack.s_mark = yytable[yyn]; - *++yystack.l_mark = yylval; - yychar = YYEMPTY; - if (yyerrflag > 0) --yyerrflag; - goto yyloop; - } - if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) { - yyn = yytable[yyn]; - goto yyreduce; + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; } - if (yyerrflag) goto yyinrecovery; - yyerror("syntax error"); + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + + yystate = yyn; + *++yyvsp = yylval; + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) goto yyerrlab; + goto yyreduce; -yyerrlab: - ++yynerrs; -yyinrecovery: - if (yyerrflag < 3) +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) { - yyerrflag = 3; - for (;;) - { - if ((yyn = yysindex[*yystack.s_mark]) && (yyn += YYERRCODE) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, error recovery shifting\ - to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]); -#endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) - { - goto yyoverflow; - } - yystate = yytable[yyn]; - *++yystack.s_mark = yytable[yyn]; - *++yystack.l_mark = yylval; - goto yyloop; - } - else - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: error recovery discarding state %d\n", - YYPREFIX, *yystack.s_mark); -#endif - if (yystack.s_mark <= yystack.s_base) goto yyabort; - --yystack.s_mark; - --yystack.l_mark; - } - } + + +/* Line 1455 of yacc.c */ +#line 1409 "y.tab.c" + default: break; } - else + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* 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 - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) { - if (yychar == 0) goto yyabort; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, error recovery discards token %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } + + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } #endif - yychar = YYEMPTY; - goto yyloop; } -yyreduce: -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, reducing by rule %d (%s)\n", - YYPREFIX, yystate, yyn, yyrule[yyn]); -#endif - yym = yylen[yyn]; - if (yym) - yyval = yystack.l_mark[1-yym]; - else - memset(&yyval, 0, sizeof yyval); - switch (yyn) - { - } - yystack.s_mark -= yym; - yystate = *yystack.s_mark; - yystack.l_mark -= yym; - yym = yylhs[yyn]; - if (yystate == 0 && yym == 0) + + + if (yyerrstatus == 3) { -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state 0 to\ - state %d\n", YYPREFIX, YYFINAL); -#endif - yystate = YYFINAL; - *++yystack.s_mark = YYFINAL; - *++yystack.l_mark = yyval; - if (yychar < 0) - { - if ((yychar = YYLEX) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, YYFINAL, yychar, yys); - } -#endif - } - if (yychar == 0) goto yyaccept; - goto yyloop; - } - if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yystate) - yystate = yytable[yyn]; - else - yystate = yydgoto[yym]; -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state %d \ -to state %d\n", YYPREFIX, *yystack.s_mark, yystate); -#endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + *++yyvsp = yylval; + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined(yyoverflow) || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) { - goto yyoverflow; + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); } - *++yystack.s_mark = (short) yystate; - *++yystack.l_mark = yyval; - goto yyloop; +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); +} + -yyoverflow: - yyerror("yacc stack overflow"); -yyabort: - yyfreestack(&yystack); - return (1); +/* Line 1675 of yacc.c */ +#line 111 "addr.y" -yyaccept: - yyfreestack(&yystack); - return (0); + +/* copy address error message into buffer provided by sieve parser */ +int yyerror(char *s) +{ + extern char addrerr[ADDRERR_SIZE]; + + strlcpy(addrerr, s, ADDRERR_SIZE); + return 0; } + diff -Nru cyrus-imapd-2.4-2.4.9/sieve/addr.h cyrus-imapd-2.4-2.4.12/sieve/addr.h --- cyrus-imapd-2.4-2.4.9/sieve/addr.h 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/sieve/addr.h 2011-10-04 20:03:49.000000000 +0000 @@ -1,3 +1,64 @@ -#define ATOM 257 -#define QTEXT 258 -#define DTEXT 259 + +/* A Bison parser, made by GNU Bison 2.4.1. */ + +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + ATOM = 258, + QTEXT = 259, + DTEXT = 260 + }; +#endif +/* Tokens. */ +#define ATOM 258 +#define QTEXT 259 +#define DTEXT 260 + + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef int YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +#endif + +extern YYSTYPE addrlval; + + diff -Nru cyrus-imapd-2.4-2.4.9/sieve/addr.y cyrus-imapd-2.4-2.4.12/sieve/addr.y --- cyrus-imapd-2.4-2.4.9/sieve/addr.y 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/sieve/addr.y 2011-10-04 19:53:03.000000000 +0000 @@ -70,7 +70,7 @@ %} %token ATOM QTEXT DTEXT - +%name-prefix "addr" %% sieve_address: addrspec /* simple address */ | phrase '<' addrspec '>' /* name & addr-spec */ diff -Nru cyrus-imapd-2.4-2.4.9/sieve/bc_eval.c cyrus-imapd-2.4-2.4.12/sieve/bc_eval.c --- cyrus-imapd-2.4-2.4.9/sieve/bc_eval.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/sieve/bc_eval.c 2011-10-04 19:53:03.000000000 +0000 @@ -1166,6 +1166,7 @@ { case B_LOW: priority="low"; + break; case B_NORMAL: priority="normal"; break; @@ -1215,6 +1216,7 @@ { case B_LOW: priority="low"; + break; case B_NORMAL: priority="normal"; break; diff -Nru cyrus-imapd-2.4-2.4.9/sieve/Makefile.in cyrus-imapd-2.4-2.4.12/sieve/Makefile.in --- cyrus-imapd-2.4-2.4.9/sieve/Makefile.in 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/sieve/Makefile.in 2011-10-04 19:53:03.000000000 +0000 @@ -106,7 +106,7 @@ # $(LEX) -t -Paddr $(srcdir)/addr-lex.l > $@ addr.c addr.h: addr.y - $(YACC) $(YFLAGS) -p addr $(srcdir)/addr.y + $(YACC) $(YFLAGS) $(srcdir)/addr.y mv -f y.tab.c addr.c mv -f y.tab.h addr.h diff -Nru cyrus-imapd-2.4-2.4.9/sieve/sieve.c cyrus-imapd-2.4-2.4.12/sieve/sieve.c --- cyrus-imapd-2.4-2.4.9/sieve/sieve.c 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/sieve/sieve.c 2011-10-04 20:03:49.000000000 +0000 @@ -1,22 +1,75 @@ -#ifndef lint -static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; -#endif -#define YYBYACC 1 -#define YYMAJOR 1 -#define YYMINOR 9 -#define YYPATCH 20100610 +/* A Bison parser, made by GNU Bison 2.4.1. */ -#define YYEMPTY (-1) -#define yyclearin (yychar = YYEMPTY) -#define yyerrok (yyerrflag = 0) -#define YYRECOVERING() (yyerrflag != 0) +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 -#define YYPREFIX "yy" +/* Bison version. */ +#define YYBISON_VERSION "2.4.1" +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ #define YYPURE 0 -#line 2 "sieve.y" +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + + + +/* Copy the first part of user declarations. */ + +/* Line 189 of yacc.c */ +#line 1 "sieve.y" + /* sieve.y -- sieve parser * Larry Greenfield * @@ -189,8 +242,196 @@ /* byacc default is 500, bison default is 10000 - go with the larger to support big sieve scripts (see Bug #3461) */ #define YYSTACKSIZE 10000 + + +/* Line 189 of yacc.c */ +#line 249 "y.tab.c" + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + NUMBER = 258, + STRING = 259, + IF = 260, + ELSIF = 261, + ELSE = 262, + REJCT = 263, + FILEINTO = 264, + REDIRECT = 265, + KEEP = 266, + STOP = 267, + DISCARD = 268, + VACATION = 269, + REQUIRE = 270, + SETFLAG = 271, + ADDFLAG = 272, + REMOVEFLAG = 273, + MARK = 274, + UNMARK = 275, + NOTIFY = 276, + DENOTIFY = 277, + ANYOF = 278, + ALLOF = 279, + EXISTS = 280, + SFALSE = 281, + STRUE = 282, + HEADER = 283, + NOT = 284, + SIZE = 285, + ADDRESS = 286, + ENVELOPE = 287, + BODY = 288, + COMPARATOR = 289, + IS = 290, + CONTAINS = 291, + MATCHES = 292, + REGEX = 293, + COUNT = 294, + VALUE = 295, + OVER = 296, + UNDER = 297, + GT = 298, + GE = 299, + LT = 300, + LE = 301, + EQ = 302, + NE = 303, + ALL = 304, + LOCALPART = 305, + DOMAIN = 306, + USER = 307, + DETAIL = 308, + RAW = 309, + TEXT = 310, + CONTENT = 311, + DAYS = 312, + ADDRESSES = 313, + SUBJECT = 314, + FROM = 315, + HANDLE = 316, + MIME = 317, + METHOD = 318, + ID = 319, + OPTIONS = 320, + LOW = 321, + NORMAL = 322, + HIGH = 323, + ANY = 324, + MESSAGE = 325, + INCLUDE = 326, + PERSONAL = 327, + GLOBAL = 328, + RETURN = 329, + COPY = 330 + }; +#endif +/* Tokens. */ +#define NUMBER 258 +#define STRING 259 +#define IF 260 +#define ELSIF 261 +#define ELSE 262 +#define REJCT 263 +#define FILEINTO 264 +#define REDIRECT 265 +#define KEEP 266 +#define STOP 267 +#define DISCARD 268 +#define VACATION 269 +#define REQUIRE 270 +#define SETFLAG 271 +#define ADDFLAG 272 +#define REMOVEFLAG 273 +#define MARK 274 +#define UNMARK 275 +#define NOTIFY 276 +#define DENOTIFY 277 +#define ANYOF 278 +#define ALLOF 279 +#define EXISTS 280 +#define SFALSE 281 +#define STRUE 282 +#define HEADER 283 +#define NOT 284 +#define SIZE 285 +#define ADDRESS 286 +#define ENVELOPE 287 +#define BODY 288 +#define COMPARATOR 289 +#define IS 290 +#define CONTAINS 291 +#define MATCHES 292 +#define REGEX 293 +#define COUNT 294 +#define VALUE 295 +#define OVER 296 +#define UNDER 297 +#define GT 298 +#define GE 299 +#define LT 300 +#define LE 301 +#define EQ 302 +#define NE 303 +#define ALL 304 +#define LOCALPART 305 +#define DOMAIN 306 +#define USER 307 +#define DETAIL 308 +#define RAW 309 +#define TEXT 310 +#define CONTENT 311 +#define DAYS 312 +#define ADDRESSES 313 +#define SUBJECT 314 +#define FROM 315 +#define HANDLE 316 +#define MIME 317 +#define METHOD 318 +#define ID 319 +#define OPTIONS 320 +#define LOW 321 +#define NORMAL 322 +#define HIGH 323 +#define ANY 324 +#define MESSAGE 325 +#define INCLUDE 326 +#define PERSONAL 327 +#define GLOBAL 328 +#define RETURN 329 +#define COPY 330 + + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +{ + +/* Line 214 of yacc.c */ #line 176 "sieve.y" -typedef union { + int nval; char *sval; stringlist_t *sl; @@ -203,2078 +444,3287 @@ struct btags *btag; struct ntags *ntag; struct dtags *dtag; + + + +/* Line 214 of yacc.c */ +#line 452 "y.tab.c" } YYSTYPE; -#line 207 "y.tab.c" -/* compatibility with bison */ -#ifdef YYPARSE_PARAM -/* compatibility with FreeBSD */ -# ifdef YYPARSE_PARAM_TYPE -# define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM) +# define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +#endif + + +/* Copy the second part of user declarations. */ + + +/* Line 264 of yacc.c */ +#line 464 "y.tab.c" + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t # else -# define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM) +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif # endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) #else -# define YYPARSE_DECL() yyparse(void) +# define YYUSE(e) /* empty */ #endif -/* Parameters sent to lex. */ -#ifdef YYLEX_PARAM -# define YYLEX_DECL() yylex(void *YYLEX_PARAM) -# define YYLEX yylex(YYLEX_PARAM) +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int yyi) #else -# define YYLEX_DECL() yylex(void) -# define YYLEX yylex() +static int +YYID (yyi) + int yyi; +#endif +{ + return yyi; +} #endif -extern int YYPARSE_DECL(); -extern int YYLEX_DECL(); - -#define NUMBER 257 -#define STRING 258 -#define IF 259 -#define ELSIF 260 -#define ELSE 261 -#define REJCT 262 -#define FILEINTO 263 -#define REDIRECT 264 -#define KEEP 265 -#define STOP 266 -#define DISCARD 267 -#define VACATION 268 -#define REQUIRE 269 -#define SETFLAG 270 -#define ADDFLAG 271 -#define REMOVEFLAG 272 -#define MARK 273 -#define UNMARK 274 -#define NOTIFY 275 -#define DENOTIFY 276 -#define ANYOF 277 -#define ALLOF 278 -#define EXISTS 279 -#define SFALSE 280 -#define STRUE 281 -#define HEADER 282 -#define NOT 283 -#define SIZE 284 -#define ADDRESS 285 -#define ENVELOPE 286 -#define BODY 287 -#define COMPARATOR 288 -#define IS 289 -#define CONTAINS 290 -#define MATCHES 291 -#define REGEX 292 -#define COUNT 293 -#define VALUE 294 -#define OVER 295 -#define UNDER 296 -#define GT 297 -#define GE 298 -#define LT 299 -#define LE 300 -#define EQ 301 -#define NE 302 -#define ALL 303 -#define LOCALPART 304 -#define DOMAIN 305 -#define USER 306 -#define DETAIL 307 -#define RAW 308 -#define TEXT 309 -#define CONTENT 310 -#define DAYS 311 -#define ADDRESSES 312 -#define SUBJECT 313 -#define FROM 314 -#define HANDLE 315 -#define MIME 316 -#define METHOD 317 -#define ID 318 -#define OPTIONS 319 -#define LOW 320 -#define NORMAL 321 -#define HIGH 322 -#define ANY 323 -#define MESSAGE 324 -#define INCLUDE 325 -#define PERSONAL 326 -#define GLOBAL 327 -#define RETURN 328 -#define COPY 329 -#define YYERRCODE 256 -static const short yylhs[] = { -1, - 0, 0, 25, 25, 26, 1, 1, 2, 2, 2, - 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 14, - 14, 14, 22, 22, 22, 22, 22, 22, 23, 23, - 23, 23, 24, 24, 24, 21, 21, 21, 21, 21, - 21, 21, 6, 6, 7, 7, 5, 5, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 13, - 13, 19, 19, 19, 19, 19, 18, 18, 18, 18, - 20, 20, 20, 20, 20, 20, 20, 12, 12, 12, - 12, 12, 9, 9, 9, 9, 10, 10, 11, 11, - 15, 15, 16, 17, 17, -}; -static const short yylen[] = { 2, - 1, 2, 0, 2, 3, 1, 2, 2, 4, 2, - 0, 4, 2, 2, 3, 3, 1, 1, 1, 3, - 2, 2, 2, 1, 1, 2, 2, 3, 1, 0, - 1, 1, 0, 3, 3, 3, 2, 3, 0, 2, - 3, 3, 1, 1, 1, 0, 3, 3, 3, 3, - 3, 2, 3, 1, 1, 3, 3, 2, 2, 2, - 2, 1, 1, 4, 4, 3, 2, 3, 1, 1, - 1, 0, 2, 2, 3, 3, 0, 2, 3, 3, - 0, 2, 2, 3, 2, 3, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 3, 1, 3, -}; -static const short yydefred[] = { 0, - 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, - 0, 0, 17, 18, 19, 46, 0, 0, 0, 24, - 25, 33, 39, 0, 29, 2, 0, 0, 4, 55, - 0, 5, 10, 69, 0, 0, 0, 62, 63, 77, - 0, 0, 70, 71, 81, 0, 72, 14, 102, 0, - 0, 0, 21, 22, 23, 0, 0, 31, 32, 0, - 7, 8, 53, 0, 0, 59, 60, 61, 0, 67, - 99, 100, 0, 0, 0, 0, 0, 15, 16, 20, - 0, 0, 0, 0, 0, 52, 0, 0, 0, 43, - 44, 45, 0, 37, 93, 94, 95, 96, 97, 98, - 0, 0, 40, 28, 56, 0, 0, 0, 0, 78, - 0, 68, 0, 82, 83, 0, 66, 85, 0, 58, - 0, 0, 0, 9, 0, 88, 89, 90, 91, 92, - 0, 74, 0, 73, 47, 48, 49, 50, 51, 35, - 34, 36, 38, 41, 42, 0, 103, 80, 64, 79, - 87, 84, 86, 57, 0, 13, 76, 65, 75, 105, - 0, 12, -}; -static const short yydgoto[] = { 2, - 26, 27, 28, 124, 76, 7, 31, 106, 101, 102, - 73, 134, 47, 60, 50, 66, 107, 69, 77, 74, - 52, 56, 57, 94, 3, 4, -}; -static const short yysindex[] = { -253, - -89, 0, -230, -253, 0, -235, -34, -32, -196, -228, - -298, -298, 0, 0, 0, 0, -89, -89, -89, 0, - 0, 0, 0, -313, 0, 0, -230, 4, 0, 0, - -35, 0, 0, 0, 26, 26, -89, 0, 0, 0, - -196, -276, 0, 0, 0, -56, 0, 0, 0, -190, - -181, -241, 0, 0, 0, -213, -242, 0, 0, -166, - 0, 0, 0, -165, -196, 0, 0, 0, -63, 0, - 0, 0, -163, -91, -113, -206, -83, 0, 0, 0, - -160, -89, -159, -158, -157, 0, -156, -148, -89, 0, - 0, 0, -146, 0, 0, 0, 0, 0, 0, 0, - -145, -144, 0, 0, 0, 71, 75, -141, -89, 0, - -139, 0, -137, 0, 0, -89, 0, 0, -136, 0, - -1, -196, -56, 0, -135, 0, 0, 0, 0, 0, - -89, 0, -133, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -196, 0, 0, 0, 0, - 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, - -206, 0, -}; -static const short yyrindex[] = { 22, - 0, 0, 127, 22, 0, 0, 0, 0, 0, 0, - -129, -129, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -235, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 72, 73, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, -}; -static const short yygindex[] = { 0, - -16, 0, 0, -28, -102, -13, 0, -2, -59, -12, - 0, 0, 0, 0, 122, 99, -10, 0, 0, 0, - 0, 0, 0, 80, 134, 0, -}; -#define YYTABLESIZE 350 -static const short yytable[] = { 6, - 11, 6, 6, 53, 54, 55, 46, 6, 64, 110, - 61, 120, 58, 59, 118, 1, 80, 132, 71, 72, - 156, 3, 30, 68, 32, 8, 33, 6, 9, 48, - 49, 10, 11, 12, 13, 14, 15, 16, 70, 17, - 18, 19, 20, 21, 22, 23, 95, 96, 97, 98, - 99, 100, 161, 122, 123, 109, 111, 63, 121, 34, - 117, 119, 62, 131, 133, 65, 75, 78, 136, 81, - 82, 83, 84, 85, 86, 142, 79, 90, 91, 92, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 104, 105, 112, 24, 149, 135, 25, 137, 138, - 139, 140, 152, 87, 88, 89, 90, 91, 92, 141, - 93, 143, 144, 145, 146, 147, 148, 158, 150, 155, - 151, 153, 157, 154, 159, 11, 1, 6, 101, 104, - 26, 27, 162, 51, 67, 160, 103, 29, 0, 0, - 0, 0, 8, 0, 0, 9, 0, 0, 10, 11, - 12, 13, 14, 15, 16, 0, 17, 18, 19, 20, - 21, 22, 23, 0, 0, 0, 5, 0, 5, 0, - 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 0, 113, 95, 96, 97, - 98, 99, 100, 0, 125, 95, 96, 97, 98, 99, - 100, 24, 0, 0, 25, 0, 114, 115, 116, 126, - 127, 128, 129, 130, 108, 95, 96, 97, 98, 99, - 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11, 0, 0, 11, - 0, 0, 11, 11, 11, 11, 11, 11, 11, 0, - 11, 11, 11, 11, 11, 11, 11, 3, 0, 0, - 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, - 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 11, 0, 0, 11, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, -}; -static const short yycheck[] = { 91, - 0, 91, 0, 17, 18, 19, 9, 91, 44, 69, - 27, 125, 326, 327, 74, 269, 258, 77, 295, 296, - 123, 0, 258, 37, 59, 256, 59, 91, 259, 258, - 329, 262, 263, 264, 265, 266, 267, 268, 41, 270, - 271, 272, 273, 274, 275, 276, 289, 290, 291, 292, - 293, 294, 155, 260, 261, 69, 69, 93, 75, 256, - 74, 74, 59, 77, 77, 40, 123, 258, 82, 311, - 312, 313, 314, 315, 316, 89, 258, 320, 321, 322, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 258, 258, 257, 325, 109, 257, 328, 258, 258, - 258, 258, 116, 317, 318, 319, 320, 321, 322, 258, - 324, 258, 258, 258, 44, 41, 258, 131, 258, 122, - 258, 258, 258, 125, 258, 125, 0, 125, 258, 41, - 59, 59, 161, 12, 36, 146, 57, 4, -1, -1, - -1, -1, 256, -1, -1, 259, -1, -1, 262, 263, - 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, - 274, 275, 276, -1, -1, -1, 258, -1, 258, -1, - -1, -1, -1, -1, 258, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 258, -1, 288, 289, 290, 291, - 292, 293, 294, -1, 288, 289, 290, 291, 292, 293, - 294, 325, -1, -1, 328, -1, 308, 309, 310, 303, - 304, 305, 306, 307, 288, 289, 290, 291, 292, 293, - 294, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 256, -1, -1, 259, - -1, -1, 262, 263, 264, 265, 266, 267, 268, -1, - 270, 271, 272, 273, 274, 275, 276, 256, -1, -1, - 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, - -1, 270, 271, 272, 273, 274, 275, 276, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 325, -1, -1, 328, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 325, -1, -1, 328, +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; }; -#define YYFINAL 2 -#ifndef YYDEBUG -#define YYDEBUG 0 -#endif -#define YYMAXTOKEN 329 + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 8 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 248 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 84 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 28 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 106 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 164 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 330 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint8 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, 2, 2, 2, 2, 2, 2, 2, + 82, 83, 2, 2, 79, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 76, + 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, 77, 2, 78, 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, 80, 2, 81, 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, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75 +}; + #if YYDEBUG -static const char *yyname[] = { +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 5, 8, 9, 12, 16, 18, 21, + 24, 29, 32, 33, 38, 41, 44, 48, 52, 54, + 56, 58, 62, 65, 68, 71, 73, 75, 78, 81, + 85, 87, 88, 90, 92, 93, 97, 101, 105, 108, + 112, 113, 116, 120, 124, 126, 128, 130, 131, 135, + 139, 143, 147, 151, 154, 158, 160, 162, 166, 170, + 173, 176, 179, 182, 184, 186, 191, 196, 200, 203, + 207, 209, 211, 213, 214, 217, 220, 224, 228, 229, + 232, 236, 240, 241, 244, 247, 251, 254, 258, 262, + 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, + 284, 286, 288, 289, 291, 295, 297 +}; -"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,"'('","')'",0,0,"','",0,0,0,0,0,0,0,0,0,0,0,0,0,0,"';'",0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'{'",0,"'}'",0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -"NUMBER","STRING","IF","ELSIF","ELSE","REJCT","FILEINTO","REDIRECT","KEEP", -"STOP","DISCARD","VACATION","REQUIRE","SETFLAG","ADDFLAG","REMOVEFLAG","MARK", -"UNMARK","NOTIFY","DENOTIFY","ANYOF","ALLOF","EXISTS","SFALSE","STRUE","HEADER", -"NOT","SIZE","ADDRESS","ENVELOPE","BODY","COMPARATOR","IS","CONTAINS","MATCHES", -"REGEX","COUNT","VALUE","OVER","UNDER","GT","GE","LT","LE","EQ","NE","ALL", -"LOCALPART","DOMAIN","USER","DETAIL","RAW","TEXT","CONTENT","DAYS","ADDRESSES", -"SUBJECT","FROM","HANDLE","MIME","METHOD","ID","OPTIONS","LOW","NORMAL","HIGH", -"ANY","MESSAGE","INCLUDE","PERSONAL","GLOBAL","RETURN","COPY", -}; -static const char *yyrule[] = { -"$accept : start", -"start : reqs", -"start : reqs commands", -"reqs :", -"reqs : require reqs", -"require : REQUIRE stringlist ';'", -"commands : command", -"commands : command commands", -"command : action ';'", -"command : IF test block elsif", -"command : error ';'", -"elsif :", -"elsif : ELSIF test block elsif", -"elsif : ELSE block", -"action : REJCT STRING", -"action : FILEINTO copy STRING", -"action : REDIRECT copy STRING", -"action : KEEP", -"action : STOP", -"action : DISCARD", -"action : VACATION vtags STRING", -"action : SETFLAG stringlist", -"action : ADDFLAG stringlist", -"action : REMOVEFLAG stringlist", -"action : MARK", -"action : UNMARK", -"action : NOTIFY ntags", -"action : DENOTIFY dtags", -"action : INCLUDE location STRING", -"action : RETURN", -"location :", -"location : PERSONAL", -"location : GLOBAL", -"ntags :", -"ntags : ntags ID STRING", -"ntags : ntags METHOD STRING", -"ntags : ntags OPTIONS stringlist", -"ntags : ntags priority", -"ntags : ntags MESSAGE STRING", -"dtags :", -"dtags : dtags priority", -"dtags : dtags comptag STRING", -"dtags : dtags relcomp STRING", -"priority : LOW", -"priority : NORMAL", -"priority : HIGH", -"vtags :", -"vtags : vtags DAYS NUMBER", -"vtags : vtags ADDRESSES stringlist", -"vtags : vtags SUBJECT STRING", -"vtags : vtags FROM STRING", -"vtags : vtags HANDLE STRING", -"vtags : vtags MIME", -"stringlist : '[' strings ']'", -"stringlist : STRING", -"strings : STRING", -"strings : strings ',' STRING", -"block : '{' commands '}'", -"block : '{' '}'", -"test : ANYOF testlist", -"test : ALLOF testlist", -"test : EXISTS stringlist", -"test : SFALSE", -"test : STRUE", -"test : HEADER htags stringlist stringlist", -"test : addrorenv aetags stringlist stringlist", -"test : BODY btags stringlist", -"test : NOT test", -"test : SIZE sizetag NUMBER", -"test : error", -"addrorenv : ADDRESS", -"addrorenv : ENVELOPE", -"aetags :", -"aetags : aetags addrparttag", -"aetags : aetags comptag", -"aetags : aetags relcomp STRING", -"aetags : aetags COMPARATOR STRING", -"htags :", -"htags : htags comptag", -"htags : htags relcomp STRING", -"htags : htags COMPARATOR STRING", -"btags :", -"btags : btags RAW", -"btags : btags TEXT", -"btags : btags CONTENT stringlist", -"btags : btags comptag", -"btags : btags relcomp STRING", -"btags : btags COMPARATOR STRING", -"addrparttag : ALL", -"addrparttag : LOCALPART", -"addrparttag : DOMAIN", -"addrparttag : USER", -"addrparttag : DETAIL", -"comptag : IS", -"comptag : CONTAINS", -"comptag : MATCHES", -"comptag : REGEX", -"relcomp : COUNT", -"relcomp : VALUE", -"sizetag : OVER", -"sizetag : UNDER", -"copy :", -"copy : COPY", -"testlist : '(' tests ')'", -"tests : test", -"tests : test ',' tests", - -}; -#endif -/* define the initial stack-sizes */ -#ifdef YYSTACKSIZE -#undef YYMAXDEPTH -#define YYMAXDEPTH YYSTACKSIZE -#else -#ifdef YYMAXDEPTH -#define YYSTACKSIZE YYMAXDEPTH -#else -#define YYSTACKSIZE 500 -#define YYMAXDEPTH 500 -#endif -#endif - -#define YYINITSTACKSIZE 500 - -int yydebug; -int yynerrs; - -typedef struct { - unsigned stacksize; - short *s_base; - short *s_mark; - short *s_last; - YYSTYPE *l_base; - YYSTYPE *l_mark; -} YYSTACKDATA; -int yyerrflag; -int yychar; -YYSTYPE yyval; -YYSTYPE yylval; - -/* variables for the parser stack */ -static YYSTACKDATA yystack; -#line 701 "sieve.y" -commandlist_t *sieve_parse(sieve_script_t *script, FILE *f) +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int8 yyrhs[] = { - commandlist_t *t; + 85, 0, -1, 86, -1, 86, 88, -1, -1, 87, + 86, -1, 15, 97, 76, -1, 89, -1, 89, 88, + -1, 91, 76, -1, 5, 100, 99, 90, -1, 1, + 76, -1, -1, 6, 100, 99, 90, -1, 7, 99, + -1, 8, 4, -1, 9, 109, 4, -1, 10, 109, + 4, -1, 11, -1, 12, -1, 13, -1, 14, 96, + 4, -1, 16, 97, -1, 17, 97, -1, 18, 97, + -1, 19, -1, 20, -1, 21, 93, -1, 22, 94, + -1, 71, 92, 4, -1, 74, -1, -1, 72, -1, + 73, -1, -1, 93, 64, 4, -1, 93, 63, 4, + -1, 93, 65, 97, -1, 93, 95, -1, 93, 70, + 4, -1, -1, 94, 95, -1, 94, 106, 4, -1, + 94, 107, 4, -1, 66, -1, 67, -1, 68, -1, + -1, 96, 57, 3, -1, 96, 58, 97, -1, 96, + 59, 4, -1, 96, 60, 4, -1, 96, 61, 4, + -1, 96, 62, -1, 77, 98, 78, -1, 4, -1, + 4, -1, 98, 79, 4, -1, 80, 88, 81, -1, + 80, 81, -1, 23, 110, -1, 24, 110, -1, 25, + 97, -1, 26, -1, 27, -1, 28, 103, 97, 97, + -1, 101, 102, 97, 97, -1, 33, 104, 97, -1, + 29, 100, -1, 30, 108, 3, -1, 1, -1, 31, + -1, 32, -1, -1, 102, 105, -1, 102, 106, -1, + 102, 107, 4, -1, 102, 34, 4, -1, -1, 103, + 106, -1, 103, 107, 4, -1, 103, 34, 4, -1, + -1, 104, 54, -1, 104, 55, -1, 104, 56, 97, + -1, 104, 106, -1, 104, 107, 4, -1, 104, 34, + 4, -1, 49, -1, 50, -1, 51, -1, 52, -1, + 53, -1, 35, -1, 36, -1, 37, -1, 38, -1, + 39, -1, 40, -1, 41, -1, 42, -1, -1, 75, + -1, 82, 111, 83, -1, 100, -1, 100, 79, 111, + -1 +}; - parse_script = script; - yyrestart(f); - if (yyparse()) { - t = NULL; - } else { - t = ret; - } - ret = NULL; - return t; -} +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 222, 222, 223, 226, 227, 230, 238, 239, 242, + 243, 244, 247, 248, 249, 252, 261, 269, 273, 274, + 275, 276, 285, 294, 303, 312, 317, 323, 331, 341, + 348, 355, 356, 357, 360, 361, 364, 367, 370, 373, + 378, 379, 382, 397, 407, 408, 409, 412, 413, 416, + 424, 430, 436, 442, 448, 449, 452, 453, 456, 457, + 460, 461, 462, 463, 464, 465, 489, 511, 537, 538, + 540, 543, 544, 551, 552, 557, 561, 569, 579, 580, + 584, 592, 602, 603, 608, 613, 621, 625, 633, 644, + 645, 646, 647, 652, 658, 659, 660, 661, 668, 673, + 681, 682, 685, 686, 693, 696, 697 +}; +#endif -int yyerror(char *msg) +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "NUMBER", "STRING", "IF", "ELSIF", + "ELSE", "REJCT", "FILEINTO", "REDIRECT", "KEEP", "STOP", "DISCARD", + "VACATION", "REQUIRE", "SETFLAG", "ADDFLAG", "REMOVEFLAG", "MARK", + "UNMARK", "NOTIFY", "DENOTIFY", "ANYOF", "ALLOF", "EXISTS", "SFALSE", + "STRUE", "HEADER", "NOT", "SIZE", "ADDRESS", "ENVELOPE", "BODY", + "COMPARATOR", "IS", "CONTAINS", "MATCHES", "REGEX", "COUNT", "VALUE", + "OVER", "UNDER", "GT", "GE", "LT", "LE", "EQ", "NE", "ALL", "LOCALPART", + "DOMAIN", "USER", "DETAIL", "RAW", "TEXT", "CONTENT", "DAYS", + "ADDRESSES", "SUBJECT", "FROM", "HANDLE", "MIME", "METHOD", "ID", + "OPTIONS", "LOW", "NORMAL", "HIGH", "ANY", "MESSAGE", "INCLUDE", + "PERSONAL", "GLOBAL", "RETURN", "COPY", "';'", "'['", "']'", "','", + "'{'", "'}'", "'('", "')'", "$accept", "start", "reqs", "require", + "commands", "command", "elsif", "action", "location", "ntags", "dtags", + "priority", "vtags", "stringlist", "strings", "block", "test", + "addrorenv", "aetags", "htags", "btags", "addrparttag", "comptag", + "relcomp", "sizetag", "copy", "testlist", "tests", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 59, 91, 93, 44, + 123, 125, 40, 41 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = { - extern int yylineno; - int ret; + 0, 84, 85, 85, 86, 86, 87, 88, 88, 89, + 89, 89, 90, 90, 90, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 92, 92, 92, 93, 93, 93, 93, 93, 93, + 94, 94, 94, 94, 95, 95, 95, 96, 96, 96, + 96, 96, 96, 96, 97, 97, 98, 98, 99, 99, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 101, 101, 102, 102, 102, 102, 102, 103, 103, + 103, 103, 104, 104, 104, 104, 104, 104, 104, 105, + 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, + 108, 108, 109, 109, 110, 111, 111 +}; - parse_script->err++; - if (parse_script->interp.err) { - ret = parse_script->interp.err(yylineno, msg, - parse_script->interp.interp_context, - parse_script->script_context); - } +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 2, 0, 2, 3, 1, 2, 2, + 4, 2, 0, 4, 2, 2, 3, 3, 1, 1, + 1, 3, 2, 2, 2, 1, 1, 2, 2, 3, + 1, 0, 1, 1, 0, 3, 3, 3, 2, 3, + 0, 2, 3, 3, 1, 1, 1, 0, 3, 3, + 3, 3, 3, 2, 3, 1, 1, 3, 3, 2, + 2, 2, 2, 1, 1, 4, 4, 3, 2, 3, + 1, 1, 1, 0, 2, 2, 3, 3, 0, 2, + 3, 3, 0, 2, 2, 3, 2, 3, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 1, 3, 1, 3 +}; - return 0; -} +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 4, 0, 0, 0, 4, 55, 0, 0, 1, 0, + 0, 0, 102, 102, 18, 19, 20, 47, 0, 0, + 0, 25, 26, 34, 40, 31, 30, 3, 0, 0, + 5, 56, 0, 6, 11, 70, 0, 0, 0, 63, + 64, 78, 0, 0, 71, 72, 82, 0, 73, 15, + 103, 0, 0, 0, 22, 23, 24, 27, 28, 32, + 33, 0, 8, 9, 54, 0, 0, 60, 61, 62, + 0, 68, 100, 101, 0, 0, 0, 12, 0, 16, + 17, 21, 0, 0, 0, 0, 0, 53, 0, 0, + 0, 44, 45, 46, 0, 38, 94, 95, 96, 97, + 98, 99, 41, 0, 0, 29, 57, 105, 0, 0, + 0, 79, 0, 69, 0, 83, 84, 0, 67, 86, + 0, 59, 0, 0, 0, 10, 0, 89, 90, 91, + 92, 93, 0, 74, 75, 0, 48, 49, 50, 51, + 52, 36, 35, 37, 39, 42, 43, 0, 104, 81, + 65, 80, 88, 85, 87, 58, 0, 14, 77, 66, + 76, 106, 12, 13 +}; -static char *check_reqs(stringlist_t *sl) +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = { - stringlist_t *s; - char *err = NULL, *p, sep = ':'; - size_t alloc = 0; - - while (sl != NULL) { - s = sl; - sl = sl->next; + -1, 2, 3, 4, 27, 28, 125, 29, 61, 57, + 58, 95, 53, 7, 32, 77, 107, 48, 78, 70, + 75, 133, 103, 104, 74, 51, 67, 108 +}; - if (!script_require(parse_script, s->s)) { - if (!err) { - alloc = 100; - p = err = xmalloc(alloc); - p += sprintf(p, "Unsupported feature(s) in \"require\""); - } - else if ((size_t) (p - err + strlen(s->s) + 5) > alloc) { - alloc += 100; - err = xrealloc(err, alloc); - p = err + strlen(err); - } +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -113 +static const yytype_int16 yypact[] = +{ + -4, 0, 54, 112, -4, -113, 25, -20, -113, -12, + 215, 55, 6, 6, -113, -113, -113, -113, 0, 0, + 0, -113, -113, -113, -113, -64, -113, -113, 5, 2, + -113, -113, -47, -113, -113, -113, -2, -2, 0, -113, + -113, -113, 215, 21, -113, -113, -113, 4, -113, -113, + -113, 78, 79, 85, -113, -113, -113, 3, 135, -113, + -113, 81, -113, -113, -113, 83, 215, -113, -113, -113, + 160, -113, -113, -113, 87, 153, 29, 68, 101, -113, + -113, -113, 88, 0, 84, 89, 90, -113, 91, 92, + 0, -113, -113, -113, 93, -113, -113, -113, -113, -113, + -113, -113, -113, 94, 97, -113, -113, 23, 24, 100, + 0, -113, 102, -113, 104, -113, -113, 0, -113, -113, + 105, -113, 30, 215, 4, -113, 111, -113, -113, -113, + -113, -113, 0, -113, -113, 114, -113, -113, -113, -113, + -113, -113, -113, -113, -113, -113, -113, 215, -113, -113, + -113, -113, -113, -113, -113, -113, 4, -113, -113, -113, + -113, -113, 68, -113 +}; - p += sprintf(p, "%c \"%s\"", sep, s->s); - sep = ','; - } +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -113, -113, 115, -113, -21, -113, -35, -113, -113, -113, + -113, 98, -113, -18, -113, -112, -7, -113, -113, -113, + -113, -113, -42, -17, -113, 136, 118, 1 +}; - free(s->s); - free(s); - } - return err; -} +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -8 +static const yytype_int16 yytable[] = +{ + 54, 55, 56, 47, 5, -7, 9, 62, 59, 60, + 10, 1, 157, 11, 12, 13, 14, 15, 16, 17, + 69, 18, 19, 20, 21, 22, 23, 24, 111, 31, + 9, 64, 65, 119, 10, 71, 134, 11, 12, 13, + 14, 15, 16, 17, 162, 18, 19, 20, 21, 22, + 23, 24, 110, 112, 8, 122, 33, 118, 120, 49, + 132, 135, 72, 73, 34, 137, 88, 89, 90, 91, + 92, 93, 143, 94, 123, 124, 25, 6, 63, 26, + 66, 50, 79, 80, 76, 105, -7, 106, 138, 81, + 113, 136, 150, 139, 140, 141, 142, 144, 145, 153, + 25, 146, 147, 26, 149, 5, 151, 148, 152, 154, + 121, 155, -2, 9, 159, 158, 156, 10, 160, 30, + 11, 12, 13, 14, 15, 16, 17, 163, 18, 19, + 20, 21, 22, 23, 24, 126, 96, 97, 98, 99, + 100, 101, 82, 83, 84, 85, 86, 87, 161, 52, + 127, 128, 129, 130, 131, 68, 102, 5, 0, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, + 96, 97, 98, 99, 100, 101, 0, 0, 6, 0, + 0, 0, 0, 25, 0, 0, 26, 114, 96, 97, + 98, 99, 100, 101, 109, 96, 97, 98, 99, 100, + 101, 91, 92, 93, 0, 0, 0, 115, 116, 117, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 6, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46 +}; -static test_t *build_address(int t, struct aetags *ae, - stringlist_t *sl, stringlist_t *pl) +static const yytype_int16 yycheck[] = { - test_t *ret = new_test(t); /* can be either ADDRESS or ENVELOPE */ + 18, 19, 20, 10, 4, 0, 1, 28, 72, 73, + 5, 15, 124, 8, 9, 10, 11, 12, 13, 14, + 38, 16, 17, 18, 19, 20, 21, 22, 70, 4, + 1, 78, 79, 75, 5, 42, 78, 8, 9, 10, + 11, 12, 13, 14, 156, 16, 17, 18, 19, 20, + 21, 22, 70, 70, 0, 76, 76, 75, 75, 4, + 78, 78, 41, 42, 76, 83, 63, 64, 65, 66, + 67, 68, 90, 70, 6, 7, 71, 77, 76, 74, + 82, 75, 4, 4, 80, 4, 81, 4, 4, 4, + 3, 3, 110, 4, 4, 4, 4, 4, 4, 117, + 71, 4, 79, 74, 4, 4, 4, 83, 4, 4, + 81, 81, 0, 1, 132, 4, 123, 5, 4, 4, + 8, 9, 10, 11, 12, 13, 14, 162, 16, 17, + 18, 19, 20, 21, 22, 34, 35, 36, 37, 38, + 39, 40, 57, 58, 59, 60, 61, 62, 147, 13, + 49, 50, 51, 52, 53, 37, 58, 4, -1, -1, + -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, + 35, 36, 37, 38, 39, 40, -1, -1, 77, -1, + -1, -1, -1, 71, -1, -1, 74, 34, 35, 36, + 37, 38, 39, 40, 34, 35, 36, 37, 38, 39, + 40, 66, 67, 68, -1, -1, -1, 54, 55, 56, + -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 77, -1, -1, -1, -1, -1, -1, 77, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33 +}; - assert((t == ADDRESS) || (t == ENVELOPE)); +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 15, 85, 86, 87, 4, 77, 97, 0, 1, + 5, 8, 9, 10, 11, 12, 13, 14, 16, 17, + 18, 19, 20, 21, 22, 71, 74, 88, 89, 91, + 86, 4, 98, 76, 76, 1, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 100, 101, 4, + 75, 109, 109, 96, 97, 97, 97, 93, 94, 72, + 73, 92, 88, 76, 78, 79, 82, 110, 110, 97, + 103, 100, 41, 42, 108, 104, 80, 99, 102, 4, + 4, 4, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 70, 95, 35, 36, 37, 38, + 39, 40, 95, 106, 107, 4, 4, 100, 111, 34, + 97, 106, 107, 3, 34, 54, 55, 56, 97, 106, + 107, 81, 88, 6, 7, 90, 34, 49, 50, 51, + 52, 53, 97, 105, 106, 107, 3, 97, 4, 4, + 4, 4, 4, 97, 4, 4, 4, 79, 83, 4, + 97, 4, 4, 97, 4, 81, 100, 99, 4, 97, + 4, 111, 99, 90 +}; - if (ret) { - ret->u.ae.comptag = ae->comptag; - ret->u.ae.relation=ae->relation; - ret->u.ae.comparator=xstrdup(ae->comparator); - ret->u.ae.sl = sl; - ret->u.ae.pl = pl; - ret->u.ae.addrpart = ae->addrtag; - free_aetags(ae); +#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 yyerrorlab + + +/* 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); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) + + +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif - } - return ret; -} -static test_t *build_header(int t, struct htags *h, - stringlist_t *sl, stringlist_t *pl) -{ - test_t *ret = new_test(t); /* can be HEADER */ +/* YYLEX -- calling `yylex' with the right arguments. */ - assert(t == HEADER); +#ifdef YYLEX_PARAM +# define YYLEX yylex (YYLEX_PARAM) +#else +# define YYLEX yylex () +#endif - if (ret) { - ret->u.h.comptag = h->comptag; - ret->u.h.relation=h->relation; - ret->u.h.comparator=xstrdup(h->comparator); - ret->u.h.sl = sl; - ret->u.h.pl = pl; - free_htags(h); +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; } - return ret; } -static test_t *build_body(int t, struct btags *b, stringlist_t *pl) -{ - test_t *ret = new_test(t); /* can be BODY */ - assert(t == BODY); +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ - if (ret) { - ret->u.b.comptag = b->comptag; - ret->u.b.relation = b->relation; - ret->u.b.comparator = xstrdup(b->comparator); - ret->u.b.transform = b->transform; - ret->u.b.offset = b->offset; - ret->u.b.content_types = b->content_types; b->content_types = NULL; - ret->u.b.pl = pl; - free_btags(b); +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +#else +static void +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); } - return ret; + YYFPRINTF (stderr, "\n"); } -static commandlist_t *build_vacation(int t, struct vtags *v, char *reason) -{ - commandlist_t *ret = new_command(t); +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) - assert(t == VACATION); - if (ret) { - ret->u.v.subject = v->subject; v->subject = NULL; - ret->u.v.from = v->from; v->from = NULL; - ret->u.v.handle = v->handle; v->handle = NULL; - ret->u.v.days = v->days; - ret->u.v.mime = v->mime; - ret->u.v.addresses = v->addresses; v->addresses = NULL; - free_vtags(v); - ret->u.v.message = reason; - } - return ret; -} +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ -static commandlist_t *build_notify(int t, struct ntags *n) +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +#else +static void +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; + int yyrule; +#endif { - commandlist_t *ret = new_command(t); - - assert(t == NOTIFY); - if (ret) { - ret->u.n.method = n->method; n->method = NULL; - ret->u.n.id = n->id; n->id = NULL; - ret->u.n.options = n->options; n->options = NULL; - ret->u.n.priority = n->priority; - ret->u.n.message = n->message; n->message = NULL; - free_ntags(n); + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + YYFPRINTF (stderr, "\n"); } - return ret; } -static commandlist_t *build_denotify(int t, struct dtags *d) -{ - commandlist_t *ret = new_command(t); +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) - assert(t == DENOTIFY); +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ - if (ret) { - ret->u.d.comptag = d->comptag; - ret->u.d.relation=d->relation; - ret->u.d.pattern = d->pattern; d->pattern = NULL; - ret->u.d.priority = d->priority; - free_dtags(d); - } - return ret; -} -static commandlist_t *build_fileinto(int t, int copy, char *folder) -{ - commandlist_t *ret = new_command(t); +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif - assert(t == FILEINTO); +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). - if (ret) { - ret->u.f.copy = copy; - if (config_getswitch(IMAPOPT_SIEVE_UTF8FILEINTO)) { - ret->u.f.folder = xmalloc(5 * strlen(folder) + 1); - UTF8_to_mUTF7(ret->u.f.folder, folder); - free(folder); - } - else { - ret->u.f.folder = folder; - } - } - return ret; -} + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ -static commandlist_t *build_redirect(int t, int copy, char *address) -{ - commandlist_t *ret = new_command(t); +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif - assert(t == REDIRECT); + - if (ret) { - ret->u.r.copy = copy; - ret->u.r.address = address; - } - return ret; +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; } +# endif +# endif -static struct aetags *new_aetags(void) +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif { - struct aetags *r = (struct aetags *) xmalloc(sizeof(struct aetags)); + char *yyd = yydest; + const char *yys = yysrc; - r->addrtag = r->comptag = r->relation=-1; - r->comparator=NULL; + while ((*yyd++ = *yys++) != '\0') + continue; - return r; + return yyd - 1; } +# endif +# endif -static struct aetags *canon_aetags(struct aetags *ae) +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) { - if (ae->addrtag == -1) { ae->addrtag = ALL; } - if (ae->comparator == NULL) { - ae->comparator = xstrdup("i;ascii-casemap"); + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; } - if (ae->comptag == -1) { ae->comptag = IS; } - return ae; -} -static void free_aetags(struct aetags *ae) -{ - free(ae->comparator); - free(ae); + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; } +# endif -static struct htags *new_htags(void) +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) { - struct htags *r = (struct htags *) xmalloc(sizeof(struct htags)); + int yyn = yypact[yystate]; - r->comptag = r->relation= -1; - - r->comparator = NULL; + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; - return r; -} + if (yysize_overflow) + return YYSIZE_MAXIMUM; -static struct htags *canon_htags(struct htags *h) -{ - if (h->comparator == NULL) { - h->comparator = xstrdup("i;ascii-casemap"); + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; } - if (h->comptag == -1) { h->comptag = IS; } - return h; } +#endif /* YYERROR_VERBOSE */ + -static void free_htags(struct htags *h) -{ - free(h->comparator); - free(h); -} +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ -static struct btags *new_btags(void) +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; +#endif { - struct btags *r = (struct btags *) xmalloc(sizeof(struct btags)); + YYUSE (yyvaluep); - r->transform = r->offset = r->comptag = r->relation = -1; - r->content_types = NULL; - r->comparator = NULL; + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - return r; -} + switch (yytype) + { -static struct btags *canon_btags(struct btags *b) -{ - if (b->transform == -1) { b->transform = TEXT; } - if (b->content_types == NULL) { - if (b->transform == RAW) { - b->content_types = new_sl(xstrdup(""), NULL); - } else { - b->content_types = new_sl(xstrdup("text"), NULL); - } + default: + break; } - if (b->offset == -1) { b->offset = 0; } - if (b->comparator == NULL) { b->comparator = xstrdup("i;ascii-casemap"); } - if (b->comptag == -1) { b->comptag = IS; } - return b; } -static void free_btags(struct btags *b) -{ - if (b->content_types) { free_sl(b->content_types); } - free(b->comparator); - free(b); -} +/* Prevent warnings from -Wmissing-prototypes. */ +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ -static struct vtags *new_vtags(void) -{ - struct vtags *r = (struct vtags *) xmalloc(sizeof(struct vtags)); - r->days = -1; - r->addresses = NULL; - r->subject = NULL; - r->from = NULL; - r->handle = NULL; - r->mime = -1; +/* The lookahead symbol. */ +int yychar; - return r; -} +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; -static struct vtags *canon_vtags(struct vtags *v) -{ - assert(parse_script->interp.vacation != NULL); +/* Number of syntax errors so far. */ +int yynerrs; - if (v->days == -1) { v->days = 7; } - if (v->days < parse_script->interp.vacation->min_response) - { v->days = parse_script->interp.vacation->min_response; } - if (v->days > parse_script->interp.vacation->max_response) - { v->days = parse_script->interp.vacation->max_response; } - if (v->mime == -1) { v->mime = 0; } - return v; -} -static void free_vtags(struct vtags *v) -{ - if (v->addresses) { free_sl(v->addresses); } - if (v->subject) { free(v->subject); } - if (v->from) { free(v->from); } - if (v->handle) { free(v->handle); } - free(v); -} +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ -static struct ntags *new_ntags(void) +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void) +#else +int +yyparse () + +#endif +#endif { - struct ntags *r = (struct ntags *) xmalloc(sizeof(struct ntags)); - r->method = NULL; - r->id = NULL; - r->options = NULL; - r->priority = -1; - r->message = NULL; - return r; -} + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; -static struct ntags *canon_ntags(struct ntags *n) -{ - if (n->priority == -1) { n->priority = NORMAL; } - if (n->message == NULL) { n->message = xstrdup("$from$: $subject$"); } - if (n->method == NULL) { n->method = xstrdup("default"); } - return n; -} -static struct dtags *canon_dtags(struct dtags *d) -{ - if (d->priority == -1) { d->priority = ANY; } - if (d->comptag == -1) { d->comptag = ANY; } - return d; -} + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. -static void free_ntags(struct ntags *n) -{ - if (n->method) { free(n->method); } - if (n->id) { free(n->id); } - if (n->options) { free_sl(n->options); } - if (n->message) { free(n->message); } - free(n); -} + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ -static struct dtags *new_dtags(void) -{ - struct dtags *r = (struct dtags *) xmalloc(sizeof(struct dtags)); + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; - r->comptag = r->priority= r->relation = -1; - r->pattern = NULL; + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; - return r; -} + YYSIZE_T yystacksize; -static void free_dtags(struct dtags *d) -{ - if (d->pattern) free(d->pattern); - free(d); -} + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; -static int verify_stringlist(stringlist_t *sl, int (*verify)(char *)) -{ - for (; sl != NULL && verify(sl->s); sl = sl->next) ; - return (sl == NULL); -} +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif -char *addrptr; /* pointer to address string for address lexer */ -char addrerr[500]; /* buffer for address parser error messages */ +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) -static int verify_address(char *s) -{ - addrptr = s; - addrerr[0] = '\0'; /* paranoia */ - if (addrparse()) { - snprintf(errbuf, ERR_BUF_SIZE, - "address '%s': %s", s, addrerr); - yyerror(errbuf); - return 0; - } - return 1; -} + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; -static int verify_mailbox(char *s) -{ - if (!verify_utf8(s)) return 0; + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; - /* xxx if not a mailbox, call yyerror */ - return 1; -} + YYDPRINTF ((stderr, "Starting parse\n")); -static int verify_header(char *hdr) -{ - char *h = hdr; + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ - while (*h) { - /* field-name = 1*ftext - ftext = %d33-57 / %d59-126 - ; Any character except - ; controls, SP, and - ; ":". */ - if (!((*h >= 33 && *h <= 57) || (*h >= 59 && *h <= 126))) { - snprintf(errbuf, ERR_BUF_SIZE, - "header '%s': not a valid header", hdr); - yyerror(errbuf); - return 0; - } - h++; + /* 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; + yyvsp = yyvs; + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* 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; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; } - return 1; -} - -static int verify_addrheader(char *hdr) -{ - const char **h, *hdrs[] = { - "from", "sender", "reply-to", /* RFC2822 originator fields */ - "to", "cc", "bcc", /* RFC2822 destination fields */ - "resent-from", "resent-sender", /* RFC2822 resent fields */ - "resent-to", "resent-cc", "resent-bcc", - "return-path", /* RFC2822 trace fields */ - "disposition-notification-to", /* RFC2298 MDN request fields */ - "delivered-to", /* non-standard (loop detection) */ - "approved", /* RFC1036 moderator/control fields */ - NULL - }; - - if (!config_getswitch(IMAPOPT_RFC3028_STRICT)) - return verify_header(hdr); - - for (lcase(hdr), h = hdrs; *h; h++) { - if (!strcmp(*h, hdr)) return 1; - } - - snprintf(errbuf, ERR_BUF_SIZE, - "header '%s': not a valid header for an address test", hdr); - yyerror(errbuf); - return 0; -} - -static int verify_envelope(char *env) -{ - lcase(env); - if (!config_getswitch(IMAPOPT_RFC3028_STRICT) || - !strcmp(env, "from") || !strcmp(env, "to") || !strcmp(env, "auth")) { - return 1; - } - - snprintf(errbuf, ERR_BUF_SIZE, - "env-part '%s': not a valid part for an envelope test", env); - yyerror(errbuf); - return 0; -} - -static int verify_relat(char *r) -{/* this really should have been a token to begin with.*/ - lcase(r); - if (!strcmp(r, "gt")) {return GT;} - else if (!strcmp(r, "ge")) {return GE;} - else if (!strcmp(r, "lt")) {return LT;} - else if (!strcmp(r, "le")) {return LE;} - else if (!strcmp(r, "ne")) {return NE;} - else if (!strcmp(r, "eq")) {return EQ;} - else{ - snprintf(errbuf, ERR_BUF_SIZE, - "flag '%s': not a valid relational operation", r); - yyerror(errbuf); - return -1; - } - -} + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; -static int verify_flag(char *f) -{ - if (f[0] == '\\') { - lcase(f); - if (strcmp(f, "\\seen") && strcmp(f, "\\answered") && - strcmp(f, "\\flagged") && strcmp(f, "\\draft") && - strcmp(f, "\\deleted")) { - snprintf(errbuf, ERR_BUF_SIZE, - "flag '%s': not a system flag", f); - yyerror(errbuf); - return 0; - } - return 1; - } - if (!imparse_isatom(f)) { - snprintf(errbuf, ERR_BUF_SIZE, - "flag '%s': not a valid keyword", f); - yyerror(errbuf); - return 0; - } - return 1; -} - -#ifdef ENABLE_REGEX -static int verify_regex(char *s, int cflags) -{ - int ret; - regex_t *reg = (regex_t *) xmalloc(sizeof(regex_t)); +/*-----------. +| yybackup. | +`-----------*/ +yybackup: -#ifdef HAVE_PCREPOSIX_H - /* support UTF8 comparisons */ - cflags |= REG_UTF8; -#endif + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ - if ((ret = regcomp(reg, s, cflags)) != 0) { - (void) regerror(ret, reg, errbuf, ERR_BUF_SIZE); - yyerror(errbuf); - free(reg); - return 0; - } - free(reg); - return 1; -} + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; -static int verify_regexs(stringlist_t *sl, char *comp) -{ - stringlist_t *sl2; - int cflags = REG_EXTENDED | REG_NOSUB; - + /* Not known => get a lookahead token if don't already have one. */ - if (!strcmp(comp, "i;ascii-casemap")) { - cflags |= REG_ICASE; + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; } - for (sl2 = sl; sl2 != NULL; sl2 = sl2->next) { - if ((verify_regex(sl2->s, cflags)) == 0) { - break; - } - } - if (sl2 == NULL) { - return 1; + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); } - return 0; -} -#endif - -/* - * Valid UTF-8 check (from RFC 2640 Annex B.1) - * - * The following routine checks if a byte sequence is valid UTF-8. This - * is done by checking for the proper tagging of the first and following - * bytes to make sure they conform to the UTF-8 format. It then checks - * to assure that the data part of the UTF-8 sequence conforms to the - * proper range allowed by the encoding. Note: This routine will not - * detect characters that have not been assigned and therefore do not - * exist. - */ -static int verify_utf8(char *s) -{ - const char *buf = s; - const char *endbuf = s + strlen(s); - unsigned char byte2mask = 0x00, c; - int trailing = 0; /* trailing (continuation) bytes to follow */ - - while (buf != endbuf) { - c = *buf++; - if (trailing) { - if ((c & 0xC0) == 0x80) { /* Does trailing byte - follow UTF-8 format? */ - if (byte2mask) { /* Need to check 2nd byte - for proper range? */ - if (c & byte2mask) /* Are appropriate bits set? */ - byte2mask = 0x00; - else - break; - } - trailing--; - } - else - break; - } - else { - if ((c & 0x80) == 0x00) /* valid 1 byte UTF-8 */ - continue; - else if ((c & 0xE0) == 0xC0) /* valid 2 byte UTF-8 */ - if (c & 0x1E) { /* Is UTF-8 byte - in proper range? */ - trailing = 1; - } - else - break; - else if ((c & 0xF0) == 0xE0) { /* valid 3 byte UTF-8 */ - if (!(c & 0x0F)) { /* Is UTF-8 byte - in proper range? */ - byte2mask = 0x20; /* If not, set mask - to check next byte */ - } - trailing = 2; - } - else if ((c & 0xF8) == 0xF0) { /* valid 4 byte UTF-8 */ - if (!(c & 0x07)) { /* Is UTF-8 byte - in proper range? */ - byte2mask = 0x30; /* If not, set mask - to check next byte */ - } - trailing = 3; - } - else if ((c & 0xFC) == 0xF8) { /* valid 5 byte UTF-8 */ - if (!(c & 0x03)) { /* Is UTF-8 byte - in proper range? */ - byte2mask = 0x38; /* If not, set mask - to check next byte */ - } - trailing = 4; - } - else if ((c & 0xFE) == 0xFC) { /* valid 6 byte UTF-8 */ - if (!(c & 0x01)) { /* Is UTF-8 byte - in proper range? */ - byte2mask = 0x3C; /* If not, set mask - to check next byte */ - } - trailing = 5; - } - else - break; - } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } - if ((buf != endbuf) || trailing) { - snprintf(errbuf, ERR_BUF_SIZE, - "string '%s': not valid utf8", s); - yyerror(errbuf); - return 0; + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; } - return 1; -} -#line 1290 "y.tab.c" - -#if YYDEBUG -#include /* needed for printf */ -#endif + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; -#include /* needed for malloc, etc */ -#include /* needed for memset */ + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); -/* allocate initial stack or double stack size, up to YYMAXDEPTH */ -static int yygrowstack(YYSTACKDATA *data) -{ - int i; - unsigned newsize; - short *newss; - YYSTYPE *newvs; - - if ((newsize = data->stacksize) == 0) - newsize = YYINITSTACKSIZE; - else if (newsize >= YYMAXDEPTH) - return -1; - else if ((newsize *= 2) > YYMAXDEPTH) - newsize = YYMAXDEPTH; - - i = data->s_mark - data->s_base; - newss = (data->s_base != 0) - ? (short *)realloc(data->s_base, newsize * sizeof(*newss)) - : (short *)malloc(newsize * sizeof(*newss)); - if (newss == 0) - return -1; - - data->s_base = newss; - data->s_mark = newss + i; - - newvs = (data->l_base != 0) - ? (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs)) - : (YYSTYPE *)malloc(newsize * sizeof(*newvs)); - if (newvs == 0) - return -1; + /* Discard the shifted token. */ + yychar = YYEMPTY; - data->l_base = newvs; - data->l_mark = newvs + i; + yystate = yyn; + *++yyvsp = yylval; - data->stacksize = newsize; - data->s_last = data->s_base + newsize - 1; - return 0; -} + goto yynewstate; -#if YYPURE || defined(YY_NO_LEAKS) -static void yyfreestack(YYSTACKDATA *data) -{ - free(data->s_base); - free(data->l_base); - memset(data, 0, sizeof(*data)); -} -#else -#define yyfreestack(data) /* nothing */ -#endif -#define YYABORT goto yyabort -#define YYREJECT goto yyabort -#define YYACCEPT goto yyaccept -#define YYERROR goto yyerrlab +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; -int -YYPARSE_DECL() -{ - int yym, yyn, yystate; -#if YYDEBUG - const char *yys; - if ((yys = getenv("YYDEBUG")) != 0) - { - yyn = *yys; - if (yyn >= '0' && yyn <= '9') - yydebug = yyn - '0'; - } -#endif +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; - yynerrs = 0; - yyerrflag = 0; - yychar = YYEMPTY; - yystate = 0; + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. -#if YYPURE - memset(&yystack, 0, sizeof(yystack)); -#endif + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; - if (yystack.s_base == NULL && yygrowstack(&yystack)) goto yyoverflow; - yystack.s_mark = yystack.s_base; - yystack.l_mark = yystack.l_base; - yystate = 0; - *yystack.s_mark = 0; -yyloop: - if ((yyn = yydefred[yystate]) != 0) goto yyreduce; - if (yychar < 0) - { - if ((yychar = YYLEX) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } -#endif - } - if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, shifting to state %d\n", - YYPREFIX, yystate, yytable[yyn]); -#endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) - { - goto yyoverflow; - } - yystate = yytable[yyn]; - *++yystack.s_mark = yytable[yyn]; - *++yystack.l_mark = yylval; - yychar = YYEMPTY; - if (yyerrflag > 0) --yyerrflag; - goto yyloop; - } - if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) + YY_REDUCE_PRINT (yyn); + switch (yyn) { - yyn = yytable[yyn]; - goto yyreduce; - } - if (yyerrflag) goto yyinrecovery; + case 2: - yyerror("syntax error"); +/* Line 1455 of yacc.c */ +#line 222 "sieve.y" + { ret = NULL; } + break; - goto yyerrlab; + case 3: -yyerrlab: - ++yynerrs; +/* Line 1455 of yacc.c */ +#line 223 "sieve.y" + { ret = (yyvsp[(2) - (2)].cl); } + break; -yyinrecovery: - if (yyerrflag < 3) - { - yyerrflag = 3; - for (;;) - { - if ((yyn = yysindex[*yystack.s_mark]) && (yyn += YYERRCODE) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, error recovery shifting\ - to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]); -#endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) - { - goto yyoverflow; - } - yystate = yytable[yyn]; - *++yystack.s_mark = yytable[yyn]; - *++yystack.l_mark = yylval; - goto yyloop; - } - else - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: error recovery discarding state %d\n", - YYPREFIX, *yystack.s_mark); -#endif - if (yystack.s_mark <= yystack.s_base) goto yyabort; - --yystack.s_mark; - --yystack.l_mark; - } - } - } - else - { - if (yychar == 0) goto yyabort; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, error recovery discards token %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } -#endif - yychar = YYEMPTY; - goto yyloop; - } + case 6: -yyreduce: -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, reducing by rule %d (%s)\n", - YYPREFIX, yystate, yyn, yyrule[yyn]); -#endif - yym = yylen[yyn]; - if (yym) - yyval = yystack.l_mark[1-yym]; - else - memset(&yyval, 0, sizeof yyval); - switch (yyn) - { -case 1: -#line 222 "sieve.y" - { ret = NULL; } -break; -case 2: -#line 223 "sieve.y" - { ret = yystack.l_mark[0].cl; } -break; -case 5: +/* Line 1455 of yacc.c */ #line 230 "sieve.y" - { char *err = check_reqs(yystack.l_mark[-1].sl); + { char *err = check_reqs((yyvsp[(2) - (3)].sl)); if (err) { yyerror(err); free(err); YYERROR; } } -break; -case 6: + break; + + case 7: + +/* Line 1455 of yacc.c */ #line 238 "sieve.y" - { yyval.cl = yystack.l_mark[0].cl; } -break; -case 7: + { (yyval.cl) = (yyvsp[(1) - (1)].cl); } + break; + + case 8: + +/* Line 1455 of yacc.c */ #line 239 "sieve.y" - { yystack.l_mark[-1].cl->next = yystack.l_mark[0].cl; yyval.cl = yystack.l_mark[-1].cl; } -break; -case 8: + { (yyvsp[(1) - (2)].cl)->next = (yyvsp[(2) - (2)].cl); (yyval.cl) = (yyvsp[(1) - (2)].cl); } + break; + + case 9: + +/* Line 1455 of yacc.c */ #line 242 "sieve.y" - { yyval.cl = yystack.l_mark[-1].cl; } -break; -case 9: + { (yyval.cl) = (yyvsp[(1) - (2)].cl); } + break; + + case 10: + +/* Line 1455 of yacc.c */ #line 243 "sieve.y" - { yyval.cl = new_if(yystack.l_mark[-2].test, yystack.l_mark[-1].cl, yystack.l_mark[0].cl); } -break; -case 10: + { (yyval.cl) = new_if((yyvsp[(2) - (4)].test), (yyvsp[(3) - (4)].cl), (yyvsp[(4) - (4)].cl)); } + break; + + case 11: + +/* Line 1455 of yacc.c */ #line 244 "sieve.y" - { yyval.cl = new_command(STOP); } -break; -case 11: + { (yyval.cl) = new_command(STOP); } + break; + + case 12: + +/* Line 1455 of yacc.c */ #line 247 "sieve.y" - { yyval.cl = NULL; } -break; -case 12: + { (yyval.cl) = NULL; } + break; + + case 13: + +/* Line 1455 of yacc.c */ #line 248 "sieve.y" - { yyval.cl = new_if(yystack.l_mark[-2].test, yystack.l_mark[-1].cl, yystack.l_mark[0].cl); } -break; -case 13: + { (yyval.cl) = new_if((yyvsp[(2) - (4)].test), (yyvsp[(3) - (4)].cl), (yyvsp[(4) - (4)].cl)); } + break; + + case 14: + +/* Line 1455 of yacc.c */ #line 249 "sieve.y" - { yyval.cl = yystack.l_mark[0].cl; } -break; -case 14: + { (yyval.cl) = (yyvsp[(2) - (2)].cl); } + break; + + case 15: + +/* Line 1455 of yacc.c */ #line 252 "sieve.y" - { if (!parse_script->support.reject) { + { if (!parse_script->support.reject) { yyerror("reject MUST be enabled with \"require\""); YYERROR; } - if (!verify_utf8(yystack.l_mark[0].sval)) { + if (!verify_utf8((yyvsp[(2) - (2)].sval))) { YYERROR; /* vu should call yyerror() */ } - yyval.cl = new_command(REJCT); - yyval.cl->u.str = yystack.l_mark[0].sval; } -break; -case 15: + (yyval.cl) = new_command(REJCT); + (yyval.cl)->u.str = (yyvsp[(2) - (2)].sval); } + break; + + case 16: + +/* Line 1455 of yacc.c */ #line 261 "sieve.y" - { if (!parse_script->support.fileinto) { + { if (!parse_script->support.fileinto) { yyerror("fileinto MUST be enabled with \"require\""); YYERROR; } - if (!verify_mailbox(yystack.l_mark[0].sval)) { + if (!verify_mailbox((yyvsp[(3) - (3)].sval))) { YYERROR; /* vm should call yyerror() */ } - yyval.cl = build_fileinto(FILEINTO, yystack.l_mark[-1].nval, yystack.l_mark[0].sval); } -break; -case 16: + (yyval.cl) = build_fileinto(FILEINTO, (yyvsp[(2) - (3)].nval), (yyvsp[(3) - (3)].sval)); } + break; + + case 17: + +/* Line 1455 of yacc.c */ #line 269 "sieve.y" - { if (!verify_address(yystack.l_mark[0].sval)) { + { if (!verify_address((yyvsp[(3) - (3)].sval))) { YYERROR; /* va should call yyerror() */ } - yyval.cl = build_redirect(REDIRECT, yystack.l_mark[-1].nval, yystack.l_mark[0].sval); } -break; -case 17: + (yyval.cl) = build_redirect(REDIRECT, (yyvsp[(2) - (3)].nval), (yyvsp[(3) - (3)].sval)); } + break; + + case 18: + +/* Line 1455 of yacc.c */ #line 273 "sieve.y" - { yyval.cl = new_command(KEEP); } -break; -case 18: + { (yyval.cl) = new_command(KEEP); } + break; + + case 19: + +/* Line 1455 of yacc.c */ #line 274 "sieve.y" - { yyval.cl = new_command(STOP); } -break; -case 19: + { (yyval.cl) = new_command(STOP); } + break; + + case 20: + +/* Line 1455 of yacc.c */ #line 275 "sieve.y" - { yyval.cl = new_command(DISCARD); } -break; -case 20: + { (yyval.cl) = new_command(DISCARD); } + break; + + case 21: + +/* Line 1455 of yacc.c */ #line 276 "sieve.y" - { if (!parse_script->support.vacation) { + { if (!parse_script->support.vacation) { yyerror("vacation MUST be enabled with \"require\""); YYERROR; } - if ((yystack.l_mark[-1].vtag->mime == -1) && !verify_utf8(yystack.l_mark[0].sval)) { + if (((yyvsp[(2) - (3)].vtag)->mime == -1) && !verify_utf8((yyvsp[(3) - (3)].sval))) { YYERROR; /* vu should call yyerror() */ } - yyval.cl = build_vacation(VACATION, - canon_vtags(yystack.l_mark[-1].vtag), yystack.l_mark[0].sval); } -break; -case 21: + (yyval.cl) = build_vacation(VACATION, + canon_vtags((yyvsp[(2) - (3)].vtag)), (yyvsp[(3) - (3)].sval)); } + break; + + case 22: + +/* Line 1455 of yacc.c */ #line 285 "sieve.y" - { if (!parse_script->support.imapflags) { + { if (!parse_script->support.imapflags) { yyerror("imapflags MUST be enabled with \"require\""); YYERROR; } - if (!verify_stringlist(yystack.l_mark[0].sl, verify_flag)) { + if (!verify_stringlist((yyvsp[(2) - (2)].sl), verify_flag)) { YYERROR; /* vf should call yyerror() */ } - yyval.cl = new_command(SETFLAG); - yyval.cl->u.sl = yystack.l_mark[0].sl; } -break; -case 22: + (yyval.cl) = new_command(SETFLAG); + (yyval.cl)->u.sl = (yyvsp[(2) - (2)].sl); } + break; + + case 23: + +/* Line 1455 of yacc.c */ #line 294 "sieve.y" - { if (!parse_script->support.imapflags) { + { if (!parse_script->support.imapflags) { yyerror("imapflags MUST be enabled with \"require\""); YYERROR; } - if (!verify_stringlist(yystack.l_mark[0].sl, verify_flag)) { + if (!verify_stringlist((yyvsp[(2) - (2)].sl), verify_flag)) { YYERROR; /* vf should call yyerror() */ } - yyval.cl = new_command(ADDFLAG); - yyval.cl->u.sl = yystack.l_mark[0].sl; } -break; -case 23: + (yyval.cl) = new_command(ADDFLAG); + (yyval.cl)->u.sl = (yyvsp[(2) - (2)].sl); } + break; + + case 24: + +/* Line 1455 of yacc.c */ #line 303 "sieve.y" - { if (!parse_script->support.imapflags) { + { if (!parse_script->support.imapflags) { yyerror("imapflags MUST be enabled with \"require\""); YYERROR; } - if (!verify_stringlist(yystack.l_mark[0].sl, verify_flag)) { + if (!verify_stringlist((yyvsp[(2) - (2)].sl), verify_flag)) { YYERROR; /* vf should call yyerror() */ } - yyval.cl = new_command(REMOVEFLAG); - yyval.cl->u.sl = yystack.l_mark[0].sl; } -break; -case 24: + (yyval.cl) = new_command(REMOVEFLAG); + (yyval.cl)->u.sl = (yyvsp[(2) - (2)].sl); } + break; + + case 25: + +/* Line 1455 of yacc.c */ #line 312 "sieve.y" - { if (!parse_script->support.imapflags) { + { if (!parse_script->support.imapflags) { yyerror("imapflags MUST be enabled with \"require\""); YYERROR; } - yyval.cl = new_command(MARK); } -break; -case 25: + (yyval.cl) = new_command(MARK); } + break; + + case 26: + +/* Line 1455 of yacc.c */ #line 317 "sieve.y" - { if (!parse_script->support.imapflags) { + { if (!parse_script->support.imapflags) { yyerror("imapflags MUST be enabled with \"require\""); YYERROR; } - yyval.cl = new_command(UNMARK); } -break; -case 26: + (yyval.cl) = new_command(UNMARK); } + break; + + case 27: + +/* Line 1455 of yacc.c */ #line 323 "sieve.y" - { if (!parse_script->support.notify) { + { if (!parse_script->support.notify) { yyerror("notify MUST be enabled with \"require\""); - yyval.cl = new_command(NOTIFY); + (yyval.cl) = new_command(NOTIFY); YYERROR; } else { - yyval.cl = build_notify(NOTIFY, - canon_ntags(yystack.l_mark[0].ntag)); + (yyval.cl) = build_notify(NOTIFY, + canon_ntags((yyvsp[(2) - (2)].ntag))); } } -break; -case 27: + break; + + case 28: + +/* Line 1455 of yacc.c */ #line 331 "sieve.y" - { if (!parse_script->support.notify) { + { if (!parse_script->support.notify) { yyerror("notify MUST be enabled with \"require\""); - yyval.cl = new_command(DENOTIFY); + (yyval.cl) = new_command(DENOTIFY); YYERROR; } else { - yyval.cl = build_denotify(DENOTIFY, canon_dtags(yystack.l_mark[0].dtag)); - if (yyval.cl == NULL) { + (yyval.cl) = build_denotify(DENOTIFY, canon_dtags((yyvsp[(2) - (2)].dtag))); + if ((yyval.cl) == NULL) { yyerror("unable to find a compatible comparator"); YYERROR; } } } -break; -case 28: + break; + + case 29: + +/* Line 1455 of yacc.c */ #line 341 "sieve.y" - { if (!parse_script->support.include) { + { if (!parse_script->support.include) { yyerror("include MUST be enabled with \"require\""); YYERROR; } - yyval.cl = new_command(INCLUDE); - yyval.cl->u.inc.location = yystack.l_mark[-1].nval; - yyval.cl->u.inc.script = yystack.l_mark[0].sval; } -break; -case 29: + (yyval.cl) = new_command(INCLUDE); + (yyval.cl)->u.inc.location = (yyvsp[(2) - (3)].nval); + (yyval.cl)->u.inc.script = (yyvsp[(3) - (3)].sval); } + break; + + case 30: + +/* Line 1455 of yacc.c */ #line 348 "sieve.y" - { if (!parse_script->support.include) { + { if (!parse_script->support.include) { yyerror("include MUST be enabled with \"require\""); YYERROR; } - yyval.cl = new_command(RETURN); } -break; -case 30: + (yyval.cl) = new_command(RETURN); } + break; + + case 31: + +/* Line 1455 of yacc.c */ #line 355 "sieve.y" - { yyval.nval = PERSONAL; } -break; -case 31: + { (yyval.nval) = PERSONAL; } + break; + + case 32: + +/* Line 1455 of yacc.c */ #line 356 "sieve.y" - { yyval.nval = PERSONAL; } -break; -case 32: + { (yyval.nval) = PERSONAL; } + break; + + case 33: + +/* Line 1455 of yacc.c */ #line 357 "sieve.y" - { yyval.nval = GLOBAL; } -break; -case 33: + { (yyval.nval) = GLOBAL; } + break; + + case 34: + +/* Line 1455 of yacc.c */ #line 360 "sieve.y" - { yyval.ntag = new_ntags(); } -break; -case 34: + { (yyval.ntag) = new_ntags(); } + break; + + case 35: + +/* Line 1455 of yacc.c */ #line 361 "sieve.y" - { if (yyval.ntag->id != NULL) { + { if ((yyval.ntag)->id != NULL) { yyerror("duplicate :method"); YYERROR; } - else { yyval.ntag->id = yystack.l_mark[0].sval; } } -break; -case 35: + else { (yyval.ntag)->id = (yyvsp[(3) - (3)].sval); } } + break; + + case 36: + +/* Line 1455 of yacc.c */ #line 364 "sieve.y" - { if (yyval.ntag->method != NULL) { + { if ((yyval.ntag)->method != NULL) { yyerror("duplicate :method"); YYERROR; } - else { yyval.ntag->method = yystack.l_mark[0].sval; } } -break; -case 36: + else { (yyval.ntag)->method = (yyvsp[(3) - (3)].sval); } } + break; + + case 37: + +/* Line 1455 of yacc.c */ #line 367 "sieve.y" - { if (yyval.ntag->options != NULL) { + { if ((yyval.ntag)->options != NULL) { yyerror("duplicate :options"); YYERROR; } - else { yyval.ntag->options = yystack.l_mark[0].sl; } } -break; -case 37: + else { (yyval.ntag)->options = (yyvsp[(3) - (3)].sl); } } + break; + + case 38: + +/* Line 1455 of yacc.c */ #line 370 "sieve.y" - { if (yyval.ntag->priority != -1) { + { if ((yyval.ntag)->priority != -1) { yyerror("duplicate :priority"); YYERROR; } - else { yyval.ntag->priority = yystack.l_mark[0].nval; } } -break; -case 38: + else { (yyval.ntag)->priority = (yyvsp[(2) - (2)].nval); } } + break; + + case 39: + +/* Line 1455 of yacc.c */ #line 373 "sieve.y" - { if (yyval.ntag->message != NULL) { + { if ((yyval.ntag)->message != NULL) { yyerror("duplicate :message"); YYERROR; } - else { yyval.ntag->message = yystack.l_mark[0].sval; } } -break; -case 39: + else { (yyval.ntag)->message = (yyvsp[(3) - (3)].sval); } } + break; + + case 40: + +/* Line 1455 of yacc.c */ #line 378 "sieve.y" - { yyval.dtag = new_dtags(); } -break; -case 40: + { (yyval.dtag) = new_dtags(); } + break; + + case 41: + +/* Line 1455 of yacc.c */ #line 379 "sieve.y" - { if (yyval.dtag->priority != -1) { + { if ((yyval.dtag)->priority != -1) { yyerror("duplicate priority level"); YYERROR; } - else { yyval.dtag->priority = yystack.l_mark[0].nval; } } -break; -case 41: + else { (yyval.dtag)->priority = (yyvsp[(2) - (2)].nval); } } + break; + + case 42: + +/* Line 1455 of yacc.c */ #line 382 "sieve.y" - { if (yyval.dtag->comptag != -1) + { if ((yyval.dtag)->comptag != -1) { yyerror("duplicate comparator type tag"); YYERROR; } - yyval.dtag->comptag = yystack.l_mark[-1].nval; + (yyval.dtag)->comptag = (yyvsp[(2) - (3)].nval); #ifdef ENABLE_REGEX - if (yyval.dtag->comptag == REGEX) + if ((yyval.dtag)->comptag == REGEX) { int cflags = REG_EXTENDED | REG_NOSUB | REG_ICASE; - if (!verify_regex(yystack.l_mark[0].sval, cflags)) { YYERROR; } + if (!verify_regex((yyvsp[(3) - (3)].sval), cflags)) { YYERROR; } } #endif - yyval.dtag->pattern = yystack.l_mark[0].sval; + (yyval.dtag)->pattern = (yyvsp[(3) - (3)].sval); } -break; -case 42: + break; + + case 43: + +/* Line 1455 of yacc.c */ #line 397 "sieve.y" - { yyval.dtag = yystack.l_mark[-2].dtag; - if (yyval.dtag->comptag != -1) { + { (yyval.dtag) = (yyvsp[(1) - (3)].dtag); + if ((yyval.dtag)->comptag != -1) { yyerror("duplicate comparator type tag"); YYERROR; } - else { yyval.dtag->comptag = yystack.l_mark[-1].nval; - yyval.dtag->relation = verify_relat(yystack.l_mark[0].sval); - if (yyval.dtag->relation==-1) + else { (yyval.dtag)->comptag = (yyvsp[(2) - (3)].nval); + (yyval.dtag)->relation = verify_relat((yyvsp[(3) - (3)].sval)); + if ((yyval.dtag)->relation==-1) {YYERROR; /*vr called yyerror()*/ } } } -break; -case 43: + break; + + case 44: + +/* Line 1455 of yacc.c */ #line 407 "sieve.y" - { yyval.nval = LOW; } -break; -case 44: + { (yyval.nval) = LOW; } + break; + + case 45: + +/* Line 1455 of yacc.c */ #line 408 "sieve.y" - { yyval.nval = NORMAL; } -break; -case 45: + { (yyval.nval) = NORMAL; } + break; + + case 46: + +/* Line 1455 of yacc.c */ #line 409 "sieve.y" - { yyval.nval = HIGH; } -break; -case 46: + { (yyval.nval) = HIGH; } + break; + + case 47: + +/* Line 1455 of yacc.c */ #line 412 "sieve.y" - { yyval.vtag = new_vtags(); } -break; -case 47: + { (yyval.vtag) = new_vtags(); } + break; + + case 48: + +/* Line 1455 of yacc.c */ #line 413 "sieve.y" - { if (yyval.vtag->days != -1) { + { if ((yyval.vtag)->days != -1) { yyerror("duplicate :days"); YYERROR; } - else { yyval.vtag->days = yystack.l_mark[0].nval; } } -break; -case 48: + else { (yyval.vtag)->days = (yyvsp[(3) - (3)].nval); } } + break; + + case 49: + +/* Line 1455 of yacc.c */ #line 416 "sieve.y" - { if (yyval.vtag->addresses != NULL) { + { if ((yyval.vtag)->addresses != NULL) { yyerror("duplicate :addresses"); YYERROR; - } else if (!verify_stringlist(yystack.l_mark[0].sl, + } else if (!verify_stringlist((yyvsp[(3) - (3)].sl), verify_address)) { YYERROR; } else { - yyval.vtag->addresses = yystack.l_mark[0].sl; } } -break; -case 49: + (yyval.vtag)->addresses = (yyvsp[(3) - (3)].sl); } } + break; + + case 50: + +/* Line 1455 of yacc.c */ #line 424 "sieve.y" - { if (yyval.vtag->subject != NULL) { + { if ((yyval.vtag)->subject != NULL) { yyerror("duplicate :subject"); YYERROR; - } else if (!verify_utf8(yystack.l_mark[0].sval)) { + } else if (!verify_utf8((yyvsp[(3) - (3)].sval))) { YYERROR; /* vu should call yyerror() */ - } else { yyval.vtag->subject = yystack.l_mark[0].sval; } } -break; -case 50: + } else { (yyval.vtag)->subject = (yyvsp[(3) - (3)].sval); } } + break; + + case 51: + +/* Line 1455 of yacc.c */ #line 430 "sieve.y" - { if (yyval.vtag->from != NULL) { + { if ((yyval.vtag)->from != NULL) { yyerror("duplicate :from"); YYERROR; - } else if (!verify_address(yystack.l_mark[0].sval)) { + } else if (!verify_address((yyvsp[(3) - (3)].sval))) { YYERROR; /* vu should call yyerror() */ - } else { yyval.vtag->from = yystack.l_mark[0].sval; } } -break; -case 51: + } else { (yyval.vtag)->from = (yyvsp[(3) - (3)].sval); } } + break; + + case 52: + +/* Line 1455 of yacc.c */ #line 436 "sieve.y" - { if (yyval.vtag->handle != NULL) { + { if ((yyval.vtag)->handle != NULL) { yyerror("duplicate :handle"); YYERROR; - } else if (!verify_utf8(yystack.l_mark[0].sval)) { + } else if (!verify_utf8((yyvsp[(3) - (3)].sval))) { YYERROR; /* vu should call yyerror() */ - } else { yyval.vtag->handle = yystack.l_mark[0].sval; } } -break; -case 52: + } else { (yyval.vtag)->handle = (yyvsp[(3) - (3)].sval); } } + break; + + case 53: + +/* Line 1455 of yacc.c */ #line 442 "sieve.y" - { if (yyval.vtag->mime != -1) { + { if ((yyval.vtag)->mime != -1) { yyerror("duplicate :mime"); YYERROR; } - else { yyval.vtag->mime = MIME; } } -break; -case 53: + else { (yyval.vtag)->mime = MIME; } } + break; + + case 54: + +/* Line 1455 of yacc.c */ #line 448 "sieve.y" - { yyval.sl = sl_reverse(yystack.l_mark[-1].sl); } -break; -case 54: + { (yyval.sl) = sl_reverse((yyvsp[(2) - (3)].sl)); } + break; + + case 55: + +/* Line 1455 of yacc.c */ #line 449 "sieve.y" - { yyval.sl = new_sl(yystack.l_mark[0].sval, NULL); } -break; -case 55: + { (yyval.sl) = new_sl((yyvsp[(1) - (1)].sval), NULL); } + break; + + case 56: + +/* Line 1455 of yacc.c */ #line 452 "sieve.y" - { yyval.sl = new_sl(yystack.l_mark[0].sval, NULL); } -break; -case 56: + { (yyval.sl) = new_sl((yyvsp[(1) - (1)].sval), NULL); } + break; + + case 57: + +/* Line 1455 of yacc.c */ #line 453 "sieve.y" - { yyval.sl = new_sl(yystack.l_mark[0].sval, yystack.l_mark[-2].sl); } -break; -case 57: + { (yyval.sl) = new_sl((yyvsp[(3) - (3)].sval), (yyvsp[(1) - (3)].sl)); } + break; + + case 58: + +/* Line 1455 of yacc.c */ #line 456 "sieve.y" - { yyval.cl = yystack.l_mark[-1].cl; } -break; -case 58: + { (yyval.cl) = (yyvsp[(2) - (3)].cl); } + break; + + case 59: + +/* Line 1455 of yacc.c */ #line 457 "sieve.y" - { yyval.cl = NULL; } -break; -case 59: + { (yyval.cl) = NULL; } + break; + + case 60: + +/* Line 1455 of yacc.c */ #line 460 "sieve.y" - { yyval.test = new_test(ANYOF); yyval.test->u.tl = yystack.l_mark[0].testl; } -break; -case 60: + { (yyval.test) = new_test(ANYOF); (yyval.test)->u.tl = (yyvsp[(2) - (2)].testl); } + break; + + case 61: + +/* Line 1455 of yacc.c */ #line 461 "sieve.y" - { yyval.test = new_test(ALLOF); yyval.test->u.tl = yystack.l_mark[0].testl; } -break; -case 61: + { (yyval.test) = new_test(ALLOF); (yyval.test)->u.tl = (yyvsp[(2) - (2)].testl); } + break; + + case 62: + +/* Line 1455 of yacc.c */ #line 462 "sieve.y" - { yyval.test = new_test(EXISTS); yyval.test->u.sl = yystack.l_mark[0].sl; } -break; -case 62: + { (yyval.test) = new_test(EXISTS); (yyval.test)->u.sl = (yyvsp[(2) - (2)].sl); } + break; + + case 63: + +/* Line 1455 of yacc.c */ #line 463 "sieve.y" - { yyval.test = new_test(SFALSE); } -break; -case 63: + { (yyval.test) = new_test(SFALSE); } + break; + + case 64: + +/* Line 1455 of yacc.c */ #line 464 "sieve.y" - { yyval.test = new_test(STRUE); } -break; -case 64: + { (yyval.test) = new_test(STRUE); } + break; + + case 65: + +/* Line 1455 of yacc.c */ #line 466 "sieve.y" - { - if (!verify_stringlist(yystack.l_mark[-1].sl, verify_header)) { + { + if (!verify_stringlist((yyvsp[(3) - (4)].sl), verify_header)) { YYERROR; /* vh should call yyerror() */ } - if (!verify_stringlist(yystack.l_mark[0].sl, verify_utf8)) { + if (!verify_stringlist((yyvsp[(4) - (4)].sl), verify_utf8)) { YYERROR; /* vu should call yyerror() */ } - yystack.l_mark[-2].htag = canon_htags(yystack.l_mark[-2].htag); + (yyvsp[(2) - (4)].htag) = canon_htags((yyvsp[(2) - (4)].htag)); #ifdef ENABLE_REGEX - if (yystack.l_mark[-2].htag->comptag == REGEX) + if ((yyvsp[(2) - (4)].htag)->comptag == REGEX) { - if (!(verify_regexs(yystack.l_mark[0].sl, yystack.l_mark[-2].htag->comparator))) + if (!(verify_regexs((yyvsp[(4) - (4)].sl), (yyvsp[(2) - (4)].htag)->comparator))) { YYERROR; } } #endif - yyval.test = build_header(HEADER, yystack.l_mark[-2].htag, yystack.l_mark[-1].sl, yystack.l_mark[0].sl); - if (yyval.test == NULL) { + (yyval.test) = build_header(HEADER, (yyvsp[(2) - (4)].htag), (yyvsp[(3) - (4)].sl), (yyvsp[(4) - (4)].sl)); + if ((yyval.test) == NULL) { yyerror("unable to find a compatible comparator"); YYERROR; } } -break; -case 65: + break; + + case 66: + +/* Line 1455 of yacc.c */ #line 490 "sieve.y" - { - if ((yystack.l_mark[-3].nval == ADDRESS) && - !verify_stringlist(yystack.l_mark[-1].sl, verify_addrheader)) + { + if (((yyvsp[(1) - (4)].nval) == ADDRESS) && + !verify_stringlist((yyvsp[(3) - (4)].sl), verify_addrheader)) { YYERROR; } - else if ((yystack.l_mark[-3].nval == ENVELOPE) && - !verify_stringlist(yystack.l_mark[-1].sl, verify_envelope)) + else if (((yyvsp[(1) - (4)].nval) == ENVELOPE) && + !verify_stringlist((yyvsp[(3) - (4)].sl), verify_envelope)) { YYERROR; } - yystack.l_mark[-2].aetag = canon_aetags(yystack.l_mark[-2].aetag); + (yyvsp[(2) - (4)].aetag) = canon_aetags((yyvsp[(2) - (4)].aetag)); #ifdef ENABLE_REGEX - if (yystack.l_mark[-2].aetag->comptag == REGEX) + if ((yyvsp[(2) - (4)].aetag)->comptag == REGEX) { - if (!( verify_regexs(yystack.l_mark[0].sl, yystack.l_mark[-2].aetag->comparator))) + if (!( verify_regexs((yyvsp[(4) - (4)].sl), (yyvsp[(2) - (4)].aetag)->comparator))) { YYERROR; } } #endif - yyval.test = build_address(yystack.l_mark[-3].nval, yystack.l_mark[-2].aetag, yystack.l_mark[-1].sl, yystack.l_mark[0].sl); - if (yyval.test == NULL) { + (yyval.test) = build_address((yyvsp[(1) - (4)].nval), (yyvsp[(2) - (4)].aetag), (yyvsp[(3) - (4)].sl), (yyvsp[(4) - (4)].sl)); + if ((yyval.test) == NULL) { yyerror("unable to find a compatible comparator"); YYERROR; } } -break; -case 66: + break; + + case 67: + +/* Line 1455 of yacc.c */ #line 512 "sieve.y" - { + { if (!parse_script->support.body) { yyerror("body MUST be enabled with \"require\""); YYERROR; } - if (!verify_stringlist(yystack.l_mark[0].sl, verify_utf8)) { + if (!verify_stringlist((yyvsp[(3) - (3)].sl), verify_utf8)) { YYERROR; /* vu should call yyerror() */ } - yystack.l_mark[-1].btag = canon_btags(yystack.l_mark[-1].btag); + (yyvsp[(2) - (3)].btag) = canon_btags((yyvsp[(2) - (3)].btag)); #ifdef ENABLE_REGEX - if (yystack.l_mark[-1].btag->comptag == REGEX) + if ((yyvsp[(2) - (3)].btag)->comptag == REGEX) { - if (!(verify_regexs(yystack.l_mark[0].sl, yystack.l_mark[-1].btag->comparator))) + if (!(verify_regexs((yyvsp[(3) - (3)].sl), (yyvsp[(2) - (3)].btag)->comparator))) { YYERROR; } } #endif - yyval.test = build_body(BODY, yystack.l_mark[-1].btag, yystack.l_mark[0].sl); - if (yyval.test == NULL) { + (yyval.test) = build_body(BODY, (yyvsp[(2) - (3)].btag), (yyvsp[(3) - (3)].sl)); + if ((yyval.test) == NULL) { yyerror("unable to find a compatible comparator"); YYERROR; } } -break; -case 67: + break; + + case 68: + +/* Line 1455 of yacc.c */ #line 537 "sieve.y" - { yyval.test = new_test(NOT); yyval.test->u.t = yystack.l_mark[0].test; } -break; -case 68: + { (yyval.test) = new_test(NOT); (yyval.test)->u.t = (yyvsp[(2) - (2)].test); } + break; + + case 69: + +/* Line 1455 of yacc.c */ #line 538 "sieve.y" - { yyval.test = new_test(SIZE); yyval.test->u.sz.t = yystack.l_mark[-1].nval; - yyval.test->u.sz.n = yystack.l_mark[0].nval; } -break; -case 69: + { (yyval.test) = new_test(SIZE); (yyval.test)->u.sz.t = (yyvsp[(2) - (3)].nval); + (yyval.test)->u.sz.n = (yyvsp[(3) - (3)].nval); } + break; + + case 70: + +/* Line 1455 of yacc.c */ #line 540 "sieve.y" - { yyval.test = NULL; } -break; -case 70: + { (yyval.test) = NULL; } + break; + + case 71: + +/* Line 1455 of yacc.c */ #line 543 "sieve.y" - { yyval.nval = ADDRESS; } -break; -case 71: + { (yyval.nval) = ADDRESS; } + break; + + case 72: + +/* Line 1455 of yacc.c */ #line 544 "sieve.y" - {if (!parse_script->support.envelope) + {if (!parse_script->support.envelope) {yyerror("envelope MUST be enabled with \"require\""); YYERROR;} - else{yyval.nval = ENVELOPE; } + else{(yyval.nval) = ENVELOPE; } } -break; -case 72: + break; + + case 73: + +/* Line 1455 of yacc.c */ #line 551 "sieve.y" - { yyval.aetag = new_aetags(); } -break; -case 73: + { (yyval.aetag) = new_aetags(); } + break; + + case 74: + +/* Line 1455 of yacc.c */ #line 552 "sieve.y" - { yyval.aetag = yystack.l_mark[-1].aetag; - if (yyval.aetag->addrtag != -1) { + { (yyval.aetag) = (yyvsp[(1) - (2)].aetag); + if ((yyval.aetag)->addrtag != -1) { yyerror("duplicate or conflicting address part tag"); YYERROR; } - else { yyval.aetag->addrtag = yystack.l_mark[0].nval; } } -break; -case 74: + else { (yyval.aetag)->addrtag = (yyvsp[(2) - (2)].nval); } } + break; + + case 75: + +/* Line 1455 of yacc.c */ #line 557 "sieve.y" - { yyval.aetag = yystack.l_mark[-1].aetag; - if (yyval.aetag->comptag != -1) { + { (yyval.aetag) = (yyvsp[(1) - (2)].aetag); + if ((yyval.aetag)->comptag != -1) { yyerror("duplicate comparator type tag"); YYERROR; } - else { yyval.aetag->comptag = yystack.l_mark[0].nval; } } -break; -case 75: + else { (yyval.aetag)->comptag = (yyvsp[(2) - (2)].nval); } } + break; + + case 76: + +/* Line 1455 of yacc.c */ #line 561 "sieve.y" - { yyval.aetag = yystack.l_mark[-2].aetag; - if (yyval.aetag->comptag != -1) { + { (yyval.aetag) = (yyvsp[(1) - (3)].aetag); + if ((yyval.aetag)->comptag != -1) { yyerror("duplicate comparator type tag"); YYERROR; } - else { yyval.aetag->comptag = yystack.l_mark[-1].nval; - yyval.aetag->relation = verify_relat(yystack.l_mark[0].sval); - if (yyval.aetag->relation==-1) + else { (yyval.aetag)->comptag = (yyvsp[(2) - (3)].nval); + (yyval.aetag)->relation = verify_relat((yyvsp[(3) - (3)].sval)); + if ((yyval.aetag)->relation==-1) {YYERROR; /*vr called yyerror()*/ } } } -break; -case 76: + break; + + case 77: + +/* Line 1455 of yacc.c */ #line 569 "sieve.y" - { yyval.aetag = yystack.l_mark[-2].aetag; - if (yyval.aetag->comparator != NULL) { + { (yyval.aetag) = (yyvsp[(1) - (3)].aetag); + if ((yyval.aetag)->comparator != NULL) { yyerror("duplicate comparator tag"); YYERROR; } - else if (!strcmp(yystack.l_mark[0].sval, "i;ascii-numeric") && + else if (!strcmp((yyvsp[(3) - (3)].sval), "i;ascii-numeric") && !parse_script->support.i_ascii_numeric) { yyerror("comparator-i;ascii-numeric MUST be enabled with \"require\""); YYERROR; } - else { yyval.aetag->comparator = yystack.l_mark[0].sval; } } -break; -case 77: + else { (yyval.aetag)->comparator = (yyvsp[(3) - (3)].sval); } } + break; + + case 78: + +/* Line 1455 of yacc.c */ #line 579 "sieve.y" - { yyval.htag = new_htags(); } -break; -case 78: + { (yyval.htag) = new_htags(); } + break; + + case 79: + +/* Line 1455 of yacc.c */ #line 580 "sieve.y" - { yyval.htag = yystack.l_mark[-1].htag; - if (yyval.htag->comptag != -1) { + { (yyval.htag) = (yyvsp[(1) - (2)].htag); + if ((yyval.htag)->comptag != -1) { yyerror("duplicate comparator type tag"); YYERROR; } - else { yyval.htag->comptag = yystack.l_mark[0].nval; } } -break; -case 79: + else { (yyval.htag)->comptag = (yyvsp[(2) - (2)].nval); } } + break; + + case 80: + +/* Line 1455 of yacc.c */ #line 584 "sieve.y" - { yyval.htag = yystack.l_mark[-2].htag; - if (yyval.htag->comptag != -1) { + { (yyval.htag) = (yyvsp[(1) - (3)].htag); + if ((yyval.htag)->comptag != -1) { yyerror("duplicate comparator type tag"); YYERROR; } - else { yyval.htag->comptag = yystack.l_mark[-1].nval; - yyval.htag->relation = verify_relat(yystack.l_mark[0].sval); - if (yyval.htag->relation==-1) + else { (yyval.htag)->comptag = (yyvsp[(2) - (3)].nval); + (yyval.htag)->relation = verify_relat((yyvsp[(3) - (3)].sval)); + if ((yyval.htag)->relation==-1) {YYERROR; /*vr called yyerror()*/ } } } -break; -case 80: + break; + + case 81: + +/* Line 1455 of yacc.c */ #line 592 "sieve.y" - { yyval.htag = yystack.l_mark[-2].htag; - if (yyval.htag->comparator != NULL) { + { (yyval.htag) = (yyvsp[(1) - (3)].htag); + if ((yyval.htag)->comparator != NULL) { yyerror("duplicate comparator tag"); YYERROR; } - else if (!strcmp(yystack.l_mark[0].sval, "i;ascii-numeric") && + else if (!strcmp((yyvsp[(3) - (3)].sval), "i;ascii-numeric") && !parse_script->support.i_ascii_numeric) { yyerror("comparator-i;ascii-numeric MUST be enabled with \"require\""); YYERROR; } else { - yyval.htag->comparator = yystack.l_mark[0].sval; } } -break; -case 81: + (yyval.htag)->comparator = (yyvsp[(3) - (3)].sval); } } + break; + + case 82: + +/* Line 1455 of yacc.c */ #line 602 "sieve.y" - { yyval.btag = new_btags(); } -break; -case 82: + { (yyval.btag) = new_btags(); } + break; + + case 83: + +/* Line 1455 of yacc.c */ #line 603 "sieve.y" - { yyval.btag = yystack.l_mark[-1].btag; - if (yyval.btag->transform != -1) { + { (yyval.btag) = (yyvsp[(1) - (2)].btag); + if ((yyval.btag)->transform != -1) { yyerror("duplicate or conflicting transform tag"); YYERROR; } - else { yyval.btag->transform = RAW; } } -break; -case 83: + else { (yyval.btag)->transform = RAW; } } + break; + + case 84: + +/* Line 1455 of yacc.c */ #line 608 "sieve.y" - { yyval.btag = yystack.l_mark[-1].btag; - if (yyval.btag->transform != -1) { + { (yyval.btag) = (yyvsp[(1) - (2)].btag); + if ((yyval.btag)->transform != -1) { yyerror("duplicate or conflicting transform tag"); YYERROR; } - else { yyval.btag->transform = TEXT; } } -break; -case 84: + else { (yyval.btag)->transform = TEXT; } } + break; + + case 85: + +/* Line 1455 of yacc.c */ #line 613 "sieve.y" - { yyval.btag = yystack.l_mark[-2].btag; - if (yyval.btag->transform != -1) { + { (yyval.btag) = (yyvsp[(1) - (3)].btag); + if ((yyval.btag)->transform != -1) { yyerror("duplicate or conflicting transform tag"); YYERROR; } else { - yyval.btag->transform = CONTENT; - yyval.btag->content_types = yystack.l_mark[0].sl; + (yyval.btag)->transform = CONTENT; + (yyval.btag)->content_types = (yyvsp[(3) - (3)].sl); } } -break; -case 85: + break; + + case 86: + +/* Line 1455 of yacc.c */ #line 621 "sieve.y" - { yyval.btag = yystack.l_mark[-1].btag; - if (yyval.btag->comptag != -1) { + { (yyval.btag) = (yyvsp[(1) - (2)].btag); + if ((yyval.btag)->comptag != -1) { yyerror("duplicate comparator type tag"); YYERROR; } - else { yyval.btag->comptag = yystack.l_mark[0].nval; } } -break; -case 86: + else { (yyval.btag)->comptag = (yyvsp[(2) - (2)].nval); } } + break; + + case 87: + +/* Line 1455 of yacc.c */ #line 625 "sieve.y" - { yyval.btag = yystack.l_mark[-2].btag; - if (yyval.btag->comptag != -1) { + { (yyval.btag) = (yyvsp[(1) - (3)].btag); + if ((yyval.btag)->comptag != -1) { yyerror("duplicate comparator type tag"); YYERROR; } - else { yyval.btag->comptag = yystack.l_mark[-1].nval; - yyval.btag->relation = verify_relat(yystack.l_mark[0].sval); - if (yyval.btag->relation==-1) + else { (yyval.btag)->comptag = (yyvsp[(2) - (3)].nval); + (yyval.btag)->relation = verify_relat((yyvsp[(3) - (3)].sval)); + if ((yyval.btag)->relation==-1) {YYERROR; /*vr called yyerror()*/ } } } -break; -case 87: + break; + + case 88: + +/* Line 1455 of yacc.c */ #line 633 "sieve.y" - { yyval.btag = yystack.l_mark[-2].btag; - if (yyval.btag->comparator != NULL) { + { (yyval.btag) = (yyvsp[(1) - (3)].btag); + if ((yyval.btag)->comparator != NULL) { yyerror("duplicate comparator tag"); YYERROR; } - else if (!strcmp(yystack.l_mark[0].sval, "i;ascii-numeric") && + else if (!strcmp((yyvsp[(3) - (3)].sval), "i;ascii-numeric") && !parse_script->support.i_ascii_numeric) { yyerror("comparator-i;ascii-numeric MUST be enabled with \"require\""); YYERROR; } else { - yyval.btag->comparator = yystack.l_mark[0].sval; } } -break; -case 88: + (yyval.btag)->comparator = (yyvsp[(3) - (3)].sval); } } + break; + + case 89: + +/* Line 1455 of yacc.c */ #line 644 "sieve.y" - { yyval.nval = ALL; } -break; -case 89: + { (yyval.nval) = ALL; } + break; + + case 90: + +/* Line 1455 of yacc.c */ #line 645 "sieve.y" - { yyval.nval = LOCALPART; } -break; -case 90: + { (yyval.nval) = LOCALPART; } + break; + + case 91: + +/* Line 1455 of yacc.c */ #line 646 "sieve.y" - { yyval.nval = DOMAIN; } -break; -case 91: + { (yyval.nval) = DOMAIN; } + break; + + case 92: + +/* Line 1455 of yacc.c */ #line 647 "sieve.y" - { if (!parse_script->support.subaddress) { + { if (!parse_script->support.subaddress) { yyerror("subaddress MUST be enabled with \"require\""); YYERROR; } - yyval.nval = USER; } -break; -case 92: + (yyval.nval) = USER; } + break; + + case 93: + +/* Line 1455 of yacc.c */ #line 652 "sieve.y" - { if (!parse_script->support.subaddress) { + { if (!parse_script->support.subaddress) { yyerror("subaddress MUST be enabled with \"require\""); YYERROR; } - yyval.nval = DETAIL; } -break; -case 93: + (yyval.nval) = DETAIL; } + break; + + case 94: + +/* Line 1455 of yacc.c */ #line 658 "sieve.y" - { yyval.nval = IS; } -break; -case 94: + { (yyval.nval) = IS; } + break; + + case 95: + +/* Line 1455 of yacc.c */ #line 659 "sieve.y" - { yyval.nval = CONTAINS; } -break; -case 95: + { (yyval.nval) = CONTAINS; } + break; + + case 96: + +/* Line 1455 of yacc.c */ #line 660 "sieve.y" - { yyval.nval = MATCHES; } -break; -case 96: + { (yyval.nval) = MATCHES; } + break; + + case 97: + +/* Line 1455 of yacc.c */ #line 661 "sieve.y" - { if (!parse_script->support.regex) { + { if (!parse_script->support.regex) { yyerror("regex MUST be enabled with \"require\""); YYERROR; } - yyval.nval = REGEX; } -break; -case 97: + (yyval.nval) = REGEX; } + break; + + case 98: + +/* Line 1455 of yacc.c */ #line 668 "sieve.y" - { if (!parse_script->support.relational) { + { if (!parse_script->support.relational) { yyerror("relational MUST be enabled with \"require\""); YYERROR; } - yyval.nval = COUNT; } -break; -case 98: + (yyval.nval) = COUNT; } + break; + + case 99: + +/* Line 1455 of yacc.c */ #line 673 "sieve.y" - { if (!parse_script->support.relational) { + { if (!parse_script->support.relational) { yyerror("relational MUST be enabled with \"require\""); YYERROR; } - yyval.nval = VALUE; } -break; -case 99: + (yyval.nval) = VALUE; } + break; + + case 100: + +/* Line 1455 of yacc.c */ #line 681 "sieve.y" - { yyval.nval = OVER; } -break; -case 100: + { (yyval.nval) = OVER; } + break; + + case 101: + +/* Line 1455 of yacc.c */ #line 682 "sieve.y" - { yyval.nval = UNDER; } -break; -case 101: + { (yyval.nval) = UNDER; } + break; + + case 102: + +/* Line 1455 of yacc.c */ #line 685 "sieve.y" - { yyval.nval = 0; } -break; -case 102: + { (yyval.nval) = 0; } + break; + + case 103: + +/* Line 1455 of yacc.c */ #line 686 "sieve.y" - { if (!parse_script->support.copy) { + { if (!parse_script->support.copy) { yyerror("copy MUST be enabled with \"require\""); YYERROR; } - yyval.nval = COPY; } -break; -case 103: + (yyval.nval) = COPY; } + break; + + case 104: + +/* Line 1455 of yacc.c */ #line 693 "sieve.y" - { yyval.testl = yystack.l_mark[-1].testl; } -break; -case 104: + { (yyval.testl) = (yyvsp[(2) - (3)].testl); } + break; + + case 105: + +/* Line 1455 of yacc.c */ #line 696 "sieve.y" - { yyval.testl = new_testlist(yystack.l_mark[0].test, NULL); } -break; -case 105: + { (yyval.testl) = new_testlist((yyvsp[(1) - (1)].test), NULL); } + break; + + case 106: + +/* Line 1455 of yacc.c */ #line 697 "sieve.y" - { yyval.testl = new_testlist(yystack.l_mark[-2].test, yystack.l_mark[0].testl); } -break; -#line 2219 "y.tab.c" - } - yystack.s_mark -= yym; - yystate = *yystack.s_mark; - yystack.l_mark -= yym; - yym = yylhs[yyn]; - if (yystate == 0 && yym == 0) + { (yyval.testl) = new_testlist((yyvsp[(1) - (3)].test), (yyvsp[(3) - (3)].testl)); } + break; + + + +/* Line 1455 of yacc.c */ +#line 2869 "y.tab.c" + default: break; + } + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* 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 - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) { -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state 0 to\ - state %d\n", YYPREFIX, YYFINAL); -#endif - yystate = YYFINAL; - *++yystack.s_mark = YYFINAL; - *++yystack.l_mark = yyval; - if (yychar < 0) - { - if ((yychar = YYLEX) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, YYFINAL, yychar, yys); - } -#endif - } - if (yychar == 0) goto yyaccept; - goto yyloop; - } - if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yystate) - yystate = yytable[yyn]; - else - yystate = yydgoto[yym]; -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state %d \ -to state %d\n", YYPREFIX, *yystack.s_mark, yystate); + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } + + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } #endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) + } + + + + if (yyerrstatus == 3) { - goto yyoverflow; + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + *++yyvsp = yylval; + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined(yyoverflow) || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); } - *++yystack.s_mark = (short) yystate; - *++yystack.l_mark = yyval; - goto yyloop; - -yyoverflow: - yyerror("yacc stack overflow"); - -yyabort: - yyfreestack(&yystack); - return (1); - -yyaccept: - yyfreestack(&yystack); - return (0); +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); } + + + +/* Line 1675 of yacc.c */ +#line 700 "sieve.y" + +commandlist_t *sieve_parse(sieve_script_t *script, FILE *f) +{ + commandlist_t *t; + + parse_script = script; + yyrestart(f); + if (yyparse()) { + t = NULL; + } else { + t = ret; + } + ret = NULL; + return t; +} + +int yyerror(char *msg) +{ + extern int yylineno; + int ret; + + parse_script->err++; + if (parse_script->interp.err) { + ret = parse_script->interp.err(yylineno, msg, + parse_script->interp.interp_context, + parse_script->script_context); + } + + return 0; +} + +static char *check_reqs(stringlist_t *sl) +{ + stringlist_t *s; + char *err = NULL, *p, sep = ':'; + size_t alloc = 0; + + while (sl != NULL) { + s = sl; + sl = sl->next; + + if (!script_require(parse_script, s->s)) { + if (!err) { + alloc = 100; + p = err = xmalloc(alloc); + p += sprintf(p, "Unsupported feature(s) in \"require\""); + } + else if ((size_t) (p - err + strlen(s->s) + 5) > alloc) { + alloc += 100; + err = xrealloc(err, alloc); + p = err + strlen(err); + } + + p += sprintf(p, "%c \"%s\"", sep, s->s); + sep = ','; + } + + free(s->s); + free(s); + } + return err; +} + +static test_t *build_address(int t, struct aetags *ae, + stringlist_t *sl, stringlist_t *pl) +{ + test_t *ret = new_test(t); /* can be either ADDRESS or ENVELOPE */ + + assert((t == ADDRESS) || (t == ENVELOPE)); + + if (ret) { + ret->u.ae.comptag = ae->comptag; + ret->u.ae.relation=ae->relation; + ret->u.ae.comparator=xstrdup(ae->comparator); + ret->u.ae.sl = sl; + ret->u.ae.pl = pl; + ret->u.ae.addrpart = ae->addrtag; + free_aetags(ae); + + } + return ret; +} + +static test_t *build_header(int t, struct htags *h, + stringlist_t *sl, stringlist_t *pl) +{ + test_t *ret = new_test(t); /* can be HEADER */ + + assert(t == HEADER); + + if (ret) { + ret->u.h.comptag = h->comptag; + ret->u.h.relation=h->relation; + ret->u.h.comparator=xstrdup(h->comparator); + ret->u.h.sl = sl; + ret->u.h.pl = pl; + free_htags(h); + } + return ret; +} + +static test_t *build_body(int t, struct btags *b, stringlist_t *pl) +{ + test_t *ret = new_test(t); /* can be BODY */ + + assert(t == BODY); + + if (ret) { + ret->u.b.comptag = b->comptag; + ret->u.b.relation = b->relation; + ret->u.b.comparator = xstrdup(b->comparator); + ret->u.b.transform = b->transform; + ret->u.b.offset = b->offset; + ret->u.b.content_types = b->content_types; b->content_types = NULL; + ret->u.b.pl = pl; + free_btags(b); + } + return ret; +} + +static commandlist_t *build_vacation(int t, struct vtags *v, char *reason) +{ + commandlist_t *ret = new_command(t); + + assert(t == VACATION); + + if (ret) { + ret->u.v.subject = v->subject; v->subject = NULL; + ret->u.v.from = v->from; v->from = NULL; + ret->u.v.handle = v->handle; v->handle = NULL; + ret->u.v.days = v->days; + ret->u.v.mime = v->mime; + ret->u.v.addresses = v->addresses; v->addresses = NULL; + free_vtags(v); + ret->u.v.message = reason; + } + return ret; +} + +static commandlist_t *build_notify(int t, struct ntags *n) +{ + commandlist_t *ret = new_command(t); + + assert(t == NOTIFY); + if (ret) { + ret->u.n.method = n->method; n->method = NULL; + ret->u.n.id = n->id; n->id = NULL; + ret->u.n.options = n->options; n->options = NULL; + ret->u.n.priority = n->priority; + ret->u.n.message = n->message; n->message = NULL; + free_ntags(n); + } + return ret; +} + +static commandlist_t *build_denotify(int t, struct dtags *d) +{ + commandlist_t *ret = new_command(t); + + assert(t == DENOTIFY); + + if (ret) { + ret->u.d.comptag = d->comptag; + ret->u.d.relation=d->relation; + ret->u.d.pattern = d->pattern; d->pattern = NULL; + ret->u.d.priority = d->priority; + free_dtags(d); + } + return ret; +} + +static commandlist_t *build_fileinto(int t, int copy, char *folder) +{ + commandlist_t *ret = new_command(t); + + assert(t == FILEINTO); + + if (ret) { + ret->u.f.copy = copy; + if (config_getswitch(IMAPOPT_SIEVE_UTF8FILEINTO)) { + ret->u.f.folder = xmalloc(5 * strlen(folder) + 1); + UTF8_to_mUTF7(ret->u.f.folder, folder); + free(folder); + } + else { + ret->u.f.folder = folder; + } + } + return ret; +} + +static commandlist_t *build_redirect(int t, int copy, char *address) +{ + commandlist_t *ret = new_command(t); + + assert(t == REDIRECT); + + if (ret) { + ret->u.r.copy = copy; + ret->u.r.address = address; + } + return ret; +} + +static struct aetags *new_aetags(void) +{ + struct aetags *r = (struct aetags *) xmalloc(sizeof(struct aetags)); + + r->addrtag = r->comptag = r->relation=-1; + r->comparator=NULL; + + return r; +} + +static struct aetags *canon_aetags(struct aetags *ae) +{ + if (ae->addrtag == -1) { ae->addrtag = ALL; } + if (ae->comparator == NULL) { + ae->comparator = xstrdup("i;ascii-casemap"); + } + if (ae->comptag == -1) { ae->comptag = IS; } + return ae; +} + +static void free_aetags(struct aetags *ae) +{ + free(ae->comparator); + free(ae); +} + +static struct htags *new_htags(void) +{ + struct htags *r = (struct htags *) xmalloc(sizeof(struct htags)); + + r->comptag = r->relation= -1; + + r->comparator = NULL; + + return r; +} + +static struct htags *canon_htags(struct htags *h) +{ + if (h->comparator == NULL) { + h->comparator = xstrdup("i;ascii-casemap"); + } + if (h->comptag == -1) { h->comptag = IS; } + return h; +} + +static void free_htags(struct htags *h) +{ + free(h->comparator); + free(h); +} + +static struct btags *new_btags(void) +{ + struct btags *r = (struct btags *) xmalloc(sizeof(struct btags)); + + r->transform = r->offset = r->comptag = r->relation = -1; + r->content_types = NULL; + r->comparator = NULL; + + return r; +} + +static struct btags *canon_btags(struct btags *b) +{ + if (b->transform == -1) { b->transform = TEXT; } + if (b->content_types == NULL) { + if (b->transform == RAW) { + b->content_types = new_sl(xstrdup(""), NULL); + } else { + b->content_types = new_sl(xstrdup("text"), NULL); + } + } + if (b->offset == -1) { b->offset = 0; } + if (b->comparator == NULL) { b->comparator = xstrdup("i;ascii-casemap"); } + if (b->comptag == -1) { b->comptag = IS; } + return b; +} + +static void free_btags(struct btags *b) +{ + if (b->content_types) { free_sl(b->content_types); } + free(b->comparator); + free(b); +} + +static struct vtags *new_vtags(void) +{ + struct vtags *r = (struct vtags *) xmalloc(sizeof(struct vtags)); + + r->days = -1; + r->addresses = NULL; + r->subject = NULL; + r->from = NULL; + r->handle = NULL; + r->mime = -1; + + return r; +} + +static struct vtags *canon_vtags(struct vtags *v) +{ + assert(parse_script->interp.vacation != NULL); + + if (v->days == -1) { v->days = 7; } + if (v->days < parse_script->interp.vacation->min_response) + { v->days = parse_script->interp.vacation->min_response; } + if (v->days > parse_script->interp.vacation->max_response) + { v->days = parse_script->interp.vacation->max_response; } + if (v->mime == -1) { v->mime = 0; } + + return v; +} + +static void free_vtags(struct vtags *v) +{ + if (v->addresses) { free_sl(v->addresses); } + if (v->subject) { free(v->subject); } + if (v->from) { free(v->from); } + if (v->handle) { free(v->handle); } + free(v); +} + +static struct ntags *new_ntags(void) +{ + struct ntags *r = (struct ntags *) xmalloc(sizeof(struct ntags)); + + r->method = NULL; + r->id = NULL; + r->options = NULL; + r->priority = -1; + r->message = NULL; + + return r; +} + +static struct ntags *canon_ntags(struct ntags *n) +{ + if (n->priority == -1) { n->priority = NORMAL; } + if (n->message == NULL) { n->message = xstrdup("$from$: $subject$"); } + if (n->method == NULL) { n->method = xstrdup("default"); } + return n; +} +static struct dtags *canon_dtags(struct dtags *d) +{ + if (d->priority == -1) { d->priority = ANY; } + if (d->comptag == -1) { d->comptag = ANY; } + return d; +} + +static void free_ntags(struct ntags *n) +{ + if (n->method) { free(n->method); } + if (n->id) { free(n->id); } + if (n->options) { free_sl(n->options); } + if (n->message) { free(n->message); } + free(n); +} + +static struct dtags *new_dtags(void) +{ + struct dtags *r = (struct dtags *) xmalloc(sizeof(struct dtags)); + + r->comptag = r->priority= r->relation = -1; + r->pattern = NULL; + + return r; +} + +static void free_dtags(struct dtags *d) +{ + if (d->pattern) free(d->pattern); + free(d); +} + +static int verify_stringlist(stringlist_t *sl, int (*verify)(char *)) +{ + for (; sl != NULL && verify(sl->s); sl = sl->next) ; + return (sl == NULL); +} + +char *addrptr; /* pointer to address string for address lexer */ +char addrerr[500]; /* buffer for address parser error messages */ + +static int verify_address(char *s) +{ + addrptr = s; + addrerr[0] = '\0'; /* paranoia */ + if (addrparse()) { + snprintf(errbuf, ERR_BUF_SIZE, + "address '%s': %s", s, addrerr); + yyerror(errbuf); + return 0; + } + return 1; +} + +static int verify_mailbox(char *s) +{ + if (!verify_utf8(s)) return 0; + + /* xxx if not a mailbox, call yyerror */ + return 1; +} + +static int verify_header(char *hdr) +{ + char *h = hdr; + + while (*h) { + /* field-name = 1*ftext + ftext = %d33-57 / %d59-126 + ; Any character except + ; controls, SP, and + ; ":". */ + if (!((*h >= 33 && *h <= 57) || (*h >= 59 && *h <= 126))) { + snprintf(errbuf, ERR_BUF_SIZE, + "header '%s': not a valid header", hdr); + yyerror(errbuf); + return 0; + } + h++; + } + return 1; +} + +static int verify_addrheader(char *hdr) +{ + const char **h, *hdrs[] = { + "from", "sender", "reply-to", /* RFC2822 originator fields */ + "to", "cc", "bcc", /* RFC2822 destination fields */ + "resent-from", "resent-sender", /* RFC2822 resent fields */ + "resent-to", "resent-cc", "resent-bcc", + "return-path", /* RFC2822 trace fields */ + "disposition-notification-to", /* RFC2298 MDN request fields */ + "delivered-to", /* non-standard (loop detection) */ + "approved", /* RFC1036 moderator/control fields */ + NULL + }; + + if (!config_getswitch(IMAPOPT_RFC3028_STRICT)) + return verify_header(hdr); + + for (lcase(hdr), h = hdrs; *h; h++) { + if (!strcmp(*h, hdr)) return 1; + } + + snprintf(errbuf, ERR_BUF_SIZE, + "header '%s': not a valid header for an address test", hdr); + yyerror(errbuf); + return 0; +} + +static int verify_envelope(char *env) +{ + lcase(env); + if (!config_getswitch(IMAPOPT_RFC3028_STRICT) || + !strcmp(env, "from") || !strcmp(env, "to") || !strcmp(env, "auth")) { + return 1; + } + + snprintf(errbuf, ERR_BUF_SIZE, + "env-part '%s': not a valid part for an envelope test", env); + yyerror(errbuf); + return 0; +} + +static int verify_relat(char *r) +{/* this really should have been a token to begin with.*/ + lcase(r); + if (!strcmp(r, "gt")) {return GT;} + else if (!strcmp(r, "ge")) {return GE;} + else if (!strcmp(r, "lt")) {return LT;} + else if (!strcmp(r, "le")) {return LE;} + else if (!strcmp(r, "ne")) {return NE;} + else if (!strcmp(r, "eq")) {return EQ;} + else{ + snprintf(errbuf, ERR_BUF_SIZE, + "flag '%s': not a valid relational operation", r); + yyerror(errbuf); + return -1; + } + +} + + + + +static int verify_flag(char *f) +{ + if (f[0] == '\\') { + lcase(f); + if (strcmp(f, "\\seen") && strcmp(f, "\\answered") && + strcmp(f, "\\flagged") && strcmp(f, "\\draft") && + strcmp(f, "\\deleted")) { + snprintf(errbuf, ERR_BUF_SIZE, + "flag '%s': not a system flag", f); + yyerror(errbuf); + return 0; + } + return 1; + } + if (!imparse_isatom(f)) { + snprintf(errbuf, ERR_BUF_SIZE, + "flag '%s': not a valid keyword", f); + yyerror(errbuf); + return 0; + } + return 1; +} + +#ifdef ENABLE_REGEX +static int verify_regex(char *s, int cflags) +{ + int ret; + regex_t *reg = (regex_t *) xmalloc(sizeof(regex_t)); + +#ifdef HAVE_PCREPOSIX_H + /* support UTF8 comparisons */ + cflags |= REG_UTF8; +#endif + + if ((ret = regcomp(reg, s, cflags)) != 0) { + (void) regerror(ret, reg, errbuf, ERR_BUF_SIZE); + yyerror(errbuf); + free(reg); + return 0; + } + free(reg); + return 1; +} + +static int verify_regexs(stringlist_t *sl, char *comp) +{ + stringlist_t *sl2; + int cflags = REG_EXTENDED | REG_NOSUB; + + + if (!strcmp(comp, "i;ascii-casemap")) { + cflags |= REG_ICASE; + } + + for (sl2 = sl; sl2 != NULL; sl2 = sl2->next) { + if ((verify_regex(sl2->s, cflags)) == 0) { + break; + } + } + if (sl2 == NULL) { + return 1; + } + return 0; +} +#endif + +/* + * Valid UTF-8 check (from RFC 2640 Annex B.1) + * + * The following routine checks if a byte sequence is valid UTF-8. This + * is done by checking for the proper tagging of the first and following + * bytes to make sure they conform to the UTF-8 format. It then checks + * to assure that the data part of the UTF-8 sequence conforms to the + * proper range allowed by the encoding. Note: This routine will not + * detect characters that have not been assigned and therefore do not + * exist. + */ +static int verify_utf8(char *s) +{ + const char *buf = s; + const char *endbuf = s + strlen(s); + unsigned char byte2mask = 0x00, c; + int trailing = 0; /* trailing (continuation) bytes to follow */ + + while (buf != endbuf) { + c = *buf++; + if (trailing) { + if ((c & 0xC0) == 0x80) { /* Does trailing byte + follow UTF-8 format? */ + if (byte2mask) { /* Need to check 2nd byte + for proper range? */ + if (c & byte2mask) /* Are appropriate bits set? */ + byte2mask = 0x00; + else + break; + } + trailing--; + } + else + break; + } + else { + if ((c & 0x80) == 0x00) /* valid 1 byte UTF-8 */ + continue; + else if ((c & 0xE0) == 0xC0) /* valid 2 byte UTF-8 */ + if (c & 0x1E) { /* Is UTF-8 byte + in proper range? */ + trailing = 1; + } + else + break; + else if ((c & 0xF0) == 0xE0) { /* valid 3 byte UTF-8 */ + if (!(c & 0x0F)) { /* Is UTF-8 byte + in proper range? */ + byte2mask = 0x20; /* If not, set mask + to check next byte */ + } + trailing = 2; + } + else if ((c & 0xF8) == 0xF0) { /* valid 4 byte UTF-8 */ + if (!(c & 0x07)) { /* Is UTF-8 byte + in proper range? */ + byte2mask = 0x30; /* If not, set mask + to check next byte */ + } + trailing = 3; + } + else if ((c & 0xFC) == 0xF8) { /* valid 5 byte UTF-8 */ + if (!(c & 0x03)) { /* Is UTF-8 byte + in proper range? */ + byte2mask = 0x38; /* If not, set mask + to check next byte */ + } + trailing = 4; + } + else if ((c & 0xFE) == 0xFC) { /* valid 6 byte UTF-8 */ + if (!(c & 0x01)) { /* Is UTF-8 byte + in proper range? */ + byte2mask = 0x3C; /* If not, set mask + to check next byte */ + } + trailing = 5; + } + else + break; + } + } + + if ((buf != endbuf) || trailing) { + snprintf(errbuf, ERR_BUF_SIZE, + "string '%s': not valid utf8", s); + yyerror(errbuf); + return 0; + } + + return 1; +} + diff -Nru cyrus-imapd-2.4-2.4.9/sieve/sieve.h cyrus-imapd-2.4-2.4.12/sieve/sieve.h --- cyrus-imapd-2.4-2.4.9/sieve/sieve.h 2011-06-21 19:51:34.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/sieve/sieve.h 2011-10-04 20:03:49.000000000 +0000 @@ -1,77 +1,204 @@ -#define NUMBER 257 -#define STRING 258 -#define IF 259 -#define ELSIF 260 -#define ELSE 261 -#define REJCT 262 -#define FILEINTO 263 -#define REDIRECT 264 -#define KEEP 265 -#define STOP 266 -#define DISCARD 267 -#define VACATION 268 -#define REQUIRE 269 -#define SETFLAG 270 -#define ADDFLAG 271 -#define REMOVEFLAG 272 -#define MARK 273 -#define UNMARK 274 -#define NOTIFY 275 -#define DENOTIFY 276 -#define ANYOF 277 -#define ALLOF 278 -#define EXISTS 279 -#define SFALSE 280 -#define STRUE 281 -#define HEADER 282 -#define NOT 283 -#define SIZE 284 -#define ADDRESS 285 -#define ENVELOPE 286 -#define BODY 287 -#define COMPARATOR 288 -#define IS 289 -#define CONTAINS 290 -#define MATCHES 291 -#define REGEX 292 -#define COUNT 293 -#define VALUE 294 -#define OVER 295 -#define UNDER 296 -#define GT 297 -#define GE 298 -#define LT 299 -#define LE 300 -#define EQ 301 -#define NE 302 -#define ALL 303 -#define LOCALPART 304 -#define DOMAIN 305 -#define USER 306 -#define DETAIL 307 -#define RAW 308 -#define TEXT 309 -#define CONTENT 310 -#define DAYS 311 -#define ADDRESSES 312 -#define SUBJECT 313 -#define FROM 314 -#define HANDLE 315 -#define MIME 316 -#define METHOD 317 -#define ID 318 -#define OPTIONS 319 -#define LOW 320 -#define NORMAL 321 -#define HIGH 322 -#define ANY 323 -#define MESSAGE 324 -#define INCLUDE 325 -#define PERSONAL 326 -#define GLOBAL 327 -#define RETURN 328 -#define COPY 329 -typedef union { + +/* A Bison parser, made by GNU Bison 2.4.1. */ + +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + NUMBER = 258, + STRING = 259, + IF = 260, + ELSIF = 261, + ELSE = 262, + REJCT = 263, + FILEINTO = 264, + REDIRECT = 265, + KEEP = 266, + STOP = 267, + DISCARD = 268, + VACATION = 269, + REQUIRE = 270, + SETFLAG = 271, + ADDFLAG = 272, + REMOVEFLAG = 273, + MARK = 274, + UNMARK = 275, + NOTIFY = 276, + DENOTIFY = 277, + ANYOF = 278, + ALLOF = 279, + EXISTS = 280, + SFALSE = 281, + STRUE = 282, + HEADER = 283, + NOT = 284, + SIZE = 285, + ADDRESS = 286, + ENVELOPE = 287, + BODY = 288, + COMPARATOR = 289, + IS = 290, + CONTAINS = 291, + MATCHES = 292, + REGEX = 293, + COUNT = 294, + VALUE = 295, + OVER = 296, + UNDER = 297, + GT = 298, + GE = 299, + LT = 300, + LE = 301, + EQ = 302, + NE = 303, + ALL = 304, + LOCALPART = 305, + DOMAIN = 306, + USER = 307, + DETAIL = 308, + RAW = 309, + TEXT = 310, + CONTENT = 311, + DAYS = 312, + ADDRESSES = 313, + SUBJECT = 314, + FROM = 315, + HANDLE = 316, + MIME = 317, + METHOD = 318, + ID = 319, + OPTIONS = 320, + LOW = 321, + NORMAL = 322, + HIGH = 323, + ANY = 324, + MESSAGE = 325, + INCLUDE = 326, + PERSONAL = 327, + GLOBAL = 328, + RETURN = 329, + COPY = 330 + }; +#endif +/* Tokens. */ +#define NUMBER 258 +#define STRING 259 +#define IF 260 +#define ELSIF 261 +#define ELSE 262 +#define REJCT 263 +#define FILEINTO 264 +#define REDIRECT 265 +#define KEEP 266 +#define STOP 267 +#define DISCARD 268 +#define VACATION 269 +#define REQUIRE 270 +#define SETFLAG 271 +#define ADDFLAG 272 +#define REMOVEFLAG 273 +#define MARK 274 +#define UNMARK 275 +#define NOTIFY 276 +#define DENOTIFY 277 +#define ANYOF 278 +#define ALLOF 279 +#define EXISTS 280 +#define SFALSE 281 +#define STRUE 282 +#define HEADER 283 +#define NOT 284 +#define SIZE 285 +#define ADDRESS 286 +#define ENVELOPE 287 +#define BODY 288 +#define COMPARATOR 289 +#define IS 290 +#define CONTAINS 291 +#define MATCHES 292 +#define REGEX 293 +#define COUNT 294 +#define VALUE 295 +#define OVER 296 +#define UNDER 297 +#define GT 298 +#define GE 299 +#define LT 300 +#define LE 301 +#define EQ 302 +#define NE 303 +#define ALL 304 +#define LOCALPART 305 +#define DOMAIN 306 +#define USER 307 +#define DETAIL 308 +#define RAW 309 +#define TEXT 310 +#define CONTENT 311 +#define DAYS 312 +#define ADDRESSES 313 +#define SUBJECT 314 +#define FROM 315 +#define HANDLE 316 +#define MIME 317 +#define METHOD 318 +#define ID 319 +#define OPTIONS 320 +#define LOW 321 +#define NORMAL 322 +#define HIGH 323 +#define ANY 324 +#define MESSAGE 325 +#define INCLUDE 326 +#define PERSONAL 327 +#define GLOBAL 328 +#define RETURN 329 +#define COPY 330 + + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +{ + +/* Line 1676 of yacc.c */ +#line 176 "sieve.y" + int nval; char *sval; stringlist_t *sl; @@ -84,5 +211,17 @@ struct btags *btag; struct ntags *ntag; struct dtags *dtag; + + + +/* Line 1676 of yacc.c */ +#line 219 "y.tab.h" } YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +#endif + extern YYSTYPE yylval; + + diff -Nru cyrus-imapd-2.4-2.4.9/timsieved/actions.c cyrus-imapd-2.4-2.4.12/timsieved/actions.c --- cyrus-imapd-2.4-2.4.9/timsieved/actions.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/timsieved/actions.c 2011-10-04 19:53:03.000000000 +0000 @@ -83,7 +83,7 @@ directory! */ extern int sieved_userisadmin; -char *sieve_dir = NULL; +static char *sieve_dir_config = NULL; static const char *sieved_userid = NULL; @@ -94,7 +94,7 @@ sieve_usehomedir = config_getswitch(IMAPOPT_SIEVEUSEHOMEDIR); if (!sieve_usehomedir) { - sieve_dir = (char *) config_getstring(IMAPOPT_SIEVEDIR); + sieve_dir_config = (char *) config_getstring(IMAPOPT_SIEVEDIR); } else { /* can't use home directories with timsieved */ syslog(LOG_ERR, "can't use home directories"); @@ -108,11 +108,10 @@ int actions_setuser(const char *userid) { char userbuf[1024], *user, *domain = NULL; - char *foo = sieve_dir; size_t size = 1024, len; int result; - sieve_dir = (char *) xzmalloc(size+1); + char *sieve_dir = (char *) xzmalloc(size+1); sieved_userid = xstrdup(userid); user = (char *) userid; @@ -123,7 +122,7 @@ if ((domain = strrchr(user, '@'))) *domain++ = '\0'; } - len = strlcpy(sieve_dir, foo, size); + len = strlcpy(sieve_dir, sieve_dir_config, size); if (domain) { char dhash = (char) dir_hash_c(domain, config_fulldirhash); @@ -146,10 +145,12 @@ if (!result) result = chdir(sieve_dir); if (result) { syslog(LOG_ERR, "mkdir %s: %m", sieve_dir); + free(sieve_dir); return TIMSIEVE_FAIL; } } + free(sieve_dir); return TIMSIEVE_OK; } @@ -205,6 +206,7 @@ if (tls_enabled() && !starttls_done && !authenticated) { prot_printf(conn, "\"STARTTLS\"\r\n"); } + prot_printf(conn, "\"UNAUTHENTICATE\"\r\n"); prot_printf(conn,"OK\r\n"); @@ -233,7 +235,7 @@ result = stat(path, &filestats); if (result != 0) { - prot_printf(conn,"NO \"Script doesn't exist\"\r\n"); + prot_printf(conn,"NO (NONEXISTENT) \"Script doesn't exist\"\r\n"); return TIMSIEVE_NOEXIST; } size = filestats.st_size; @@ -316,7 +318,8 @@ FILE *stream; char *dataptr; char *errstr; - int lup; + int i; + int last_was_r = 0; int result; char path[1024], p2[1024]; char bc_path[1024], bc_p2[1024]; @@ -340,7 +343,7 @@ if (countscripts(string_DATAPTR(name))+1 > maxscripts) { prot_printf(conn, - "NO (\"QUOTA\") \"You are only allowed %d scripts on this server\"\r\n", + "NO (QUOTA/MAXSCRIPTS) \"You are only allowed %d scripts on this server\"\r\n", maxscripts); return TIMSIEVE_FAIL; } @@ -359,16 +362,23 @@ dataptr = string_DATAPTR(data); - for (lup=0;lup<= data->len / BLOCKSIZE; lup++) { - int amount = BLOCKSIZE; - - if (lup*BLOCKSIZE+BLOCKSIZE > data->len) - amount=data->len % BLOCKSIZE; - - fwrite(dataptr, 1, amount, stream); - - dataptr += amount; + /* copy data to file - replacing any lone \r or \n with the + * \r\n pair so notify messages are SMTP compatible */ + for (i = 0; i < data->len; i++) { + if (last_was_r) { + if (dataptr[i] != '\n') + putc('\n', stream); + } + else { + if (dataptr[i] == '\n') + putc('\r', stream); + } + putc(dataptr[i], stream); + last_was_r = (dataptr[i] == '\r'); } + if (last_was_r) + putc('\n', stream); + /* let's make sure this is a valid script (no parse errors) @@ -496,14 +506,18 @@ snprintf(path, 1023, "%s.script", string_DATAPTR(name)); - if (isactive(string_DATAPTR(name)) && (deleteactive(conn)!=TIMSIEVE_OK)) { - return TIMSIEVE_FAIL; + if (isactive(string_DATAPTR(name))) { + prot_printf(conn, "NO (ACTIVE) \"Active script cannot be deleted\"\r\n"); + return TIMSIEVE_FAIL; } result = unlink(path); if (result != 0) { - prot_printf(conn,"NO \"Error deleting script\"\r\n"); + if (result == ENOENT) + prot_printf(conn, "NO (NONEXISTENT) \"Script %s does not exist.\"\r\n", string_DATAPTR(name)); + else + prot_printf(conn,"NO \"Error deleting script\"\r\n"); return TIMSIEVE_FAIL; } @@ -610,7 +624,7 @@ if (exists(string_DATAPTR(name))==FALSE) { - prot_printf(conn,"NO \"Script does not exist\"\r\n"); + prot_printf(conn,"NO (NONEXISTENT) \"Script does not exist\"\r\n"); return TIMSIEVE_NOEXIST; } @@ -667,7 +681,7 @@ if (num > maxscriptsize) { prot_printf(conn, - "NO (\"QUOTA\") \"Script size is too large. " + "NO (QUOTA/MAXSIZE) \"Script size is too large. " "Max script size is %ld bytes\"\r\n", maxscriptsize); return TIMSIEVE_FAIL; @@ -679,7 +693,7 @@ if (countscripts(string_DATAPTR(sieve_name))+1 > maxscripts) { prot_printf(conn, - "NO (\"QUOTA\") \"You are only allowed %d scripts on this server\"\r\n", + "NO (QUOTA/MAXSCRIPTS) \"You are only allowed %d scripts on this server\"\r\n", maxscripts); return TIMSIEVE_FAIL; } diff -Nru cyrus-imapd-2.4-2.4.9/timsieved/lex.c cyrus-imapd-2.4-2.4.12/timsieved/lex.c --- cyrus-imapd-2.4-2.4.9/timsieved/lex.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/timsieved/lex.c 2011-10-04 19:53:03.000000000 +0000 @@ -82,6 +82,7 @@ case 'g': if (strcmp(str, "getscript")==0) return GETSCRIPT; break; + case 'h': if (strcmp(str, "havespace")==0) return HAVESPACE; break; @@ -91,6 +92,10 @@ if (strcmp(str, "logout")==0) return LOGOUT; break; + case 'n': + if (strcmp(str, "noop")==0) return NOOP; + break; + case 'p': if (strcmp(str, "putscript")==0) return PUTSCRIPT; break; @@ -100,6 +105,10 @@ if (strcmp(str, "starttls")==0 && tls_enabled()) return STARTTLS; break; + + case 'u': + if (strcmp(str, "unauthenticate")==0) return UNAUTHENTICATE; + break; } /* error, nothing matched */ diff -Nru cyrus-imapd-2.4-2.4.9/timsieved/lex.h cyrus-imapd-2.4-2.4.12/timsieved/lex.h --- cyrus-imapd-2.4-2.4.9/timsieved/lex.h 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/timsieved/lex.h 2011-10-04 19:53:03.000000000 +0000 @@ -80,6 +80,8 @@ #define CAPABILITY 407 #define HAVESPACE 408 #define STARTTLS 409 +#define NOOP 410 +#define UNAUTHENTICATE 411 int lex_init(void); diff -Nru cyrus-imapd-2.4-2.4.9/timsieved/parser.c cyrus-imapd-2.4-2.4.12/timsieved/parser.c --- cyrus-imapd-2.4-2.4.9/timsieved/parser.c 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/timsieved/parser.c 2011-10-04 19:53:03.000000000 +0000 @@ -101,6 +101,8 @@ struct protstream *sieved_in); static int cmd_authenticate(struct protstream *sieved_out, struct protstream *sieved_in, mystring_t *mechanism_name, mystring_t *initial_challenge, const char **errmsg); +static void cmd_unauthenticate(struct protstream *sieved_out, + struct protstream *sieved_in); static int cmd_starttls(struct protstream *sieved_out, struct protstream *sieved_in); static char *sieve_parsesuccess(char *str, const char **status) @@ -152,6 +154,7 @@ if (!authenticated && (token > 255) && (token!=AUTHENTICATE) && (token!=LOGOUT) && (token!=CAPABILITY) && + (token!=NOOP) && (!tls_enabled() || (token!=STARTTLS))) { error_msg = "Authenticate first"; @@ -454,6 +457,57 @@ break; + case NOOP: + + token = timlex(NULL, NULL, sieved_in); + mystring_t *noop_param = NULL; + if (token != EOL) + { + /* optional string parameter */ + if (token!=SPACE) + { + error_msg = "Expected SPACE"; + goto error; + } + + if (timlex(&noop_param, NULL, sieved_in)!=STRING) + { + error_msg = "Expected string"; + free(noop_param); + goto error; + } + + token = timlex(NULL, NULL, sieved_in); + } + + if (token != EOL) + { + error_msg = "Expected EOL"; + free(noop_param); + goto error; + } + + if (noop_param != NULL) { + int temp; + char* dataptr = string_DATAPTR(noop_param); + prot_printf(sieved_out, "OK (TAG {%d}\r\n", noop_param->len); + for (temp = 0; temp < noop_param->len; temp++) + prot_putc(dataptr[temp], sieved_out); + prot_printf(sieved_out, ") \"Done\"\r\n"); + free(noop_param); + } else + prot_printf(sieved_out, "OK \"Done\"\r\n"); + break; + + case UNAUTHENTICATE: + if (timlex(NULL, NULL, sieved_in)!=EOL) + { + error_msg = "Expected EOL"; + goto error; + } + cmd_unauthenticate(sieved_out, sieved_in); + break; + default: error_msg="Expected a command. Got something else."; goto error; @@ -516,6 +570,18 @@ extern int reset_saslconn(sasl_conn_t **conn, sasl_ssf_t ssf, char *authid); +static void cmd_unauthenticate(struct protstream *sieved_out, + struct protstream *sieved_in) +{ + if (chdir("/tmp/")) + syslog(LOG_ERR, "Failed to chdir to /tmp/"); + reset_saslconn(&sieved_saslconn, sieved_in->saslssf, authid); + prot_unsetsasl(sieved_out); + prot_unsetsasl(sieved_in); + prot_printf(sieved_out, "OK\r\n"); + authenticated = 0; +} + static int cmd_authenticate(struct protstream *sieved_out, struct protstream *sieved_in, mystring_t *mechanism_name, diff -Nru cyrus-imapd-2.4-2.4.9/tools/config2header cyrus-imapd-2.4-2.4.12/tools/config2header --- cyrus-imapd-2.4-2.4.9/tools/config2header 2011-06-21 19:50:39.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/tools/config2header 2011-10-04 19:53:03.000000000 +0000 @@ -71,7 +71,7 @@ # Look for CC=xxx "assigments" in the argument list. # while ($#ARGV >= 0) { - last unless ($ARGV[0] =~ m/^(\S+)=(\S+)$/); + last unless ($ARGV[0] =~ m/^(\S+)=(.*)$/); eval "\$$1='$2';"; die "$@" if ($@); shift @ARGV; diff -Nru cyrus-imapd-2.4-2.4.9/xversion.h cyrus-imapd-2.4-2.4.12/xversion.h --- cyrus-imapd-2.4-2.4.9/xversion.h 2011-06-21 19:51:32.000000000 +0000 +++ cyrus-imapd-2.4-2.4.12/xversion.h 2011-10-04 20:03:32.000000000 +0000 @@ -1,3 +1,3 @@ -/* Release cyrus-imapd-2.4.9 */ -#define _CYRUS_VERSION "v2.4.9" -#define CYRUS_GITVERSION "ebb103d8 2011-06-21" +/* Release cyrus-imapd-2.4.12 */ +#define _CYRUS_VERSION "v2.4.12" +#define CYRUS_GITVERSION "63b65d1c 2011-10-04"