diff options
author | Eduardo Chappa <chappa@washington.edu> | 2015-01-25 18:52:13 -0700 |
---|---|---|
committer | Eduardo Chappa <chappa@washington.edu> | 2015-01-25 18:52:13 -0700 |
commit | 4db5ba9a511564e4a3cb3d2b67bce4bb171eae4f (patch) | |
tree | 8ff91f6581acb023e7a3d989414cc925927b49b3 | |
parent | 2ea73d14866f5eb39bc6a9aab36312abd6fa525c (diff) | |
download | alpine-4db5ba9a511564e4a3cb3d2b67bce4bb171eae4f.tar.xz |
* new version 2.20.1
* Ignore message from smtp server after a successful authentication
challenge.
* Alpine would not set include and lib paths for OpenSSL if this was
installed in /usr/local/ssl.
* If the .pinerc file is a symbolic link, Alpine might not write its
contents when saving its configuration.
* The _INIT_ token does not skip over non-alpha numeric characters in
the name. Reported by Andreas Fehr.
* If SSLDIR is defined somehow, do not disable S/MIME if the
SSLCERTSDIR is not found.
* Mismatch in size of UCS and CELL caused a corruption in the
content of a pointer, which made the speller in PC-Alpine get
the content of a word incorrectly.
* Update splash screen to version 2.20 in main repository.
* Skip testing openssl compatibility version when cross-compilation is
detected. Fix contributed by Antti Seppälä.
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | alpine/osdep/alpine-splash.bmp | bin | 532014 -> 712866 bytes | |||
-rw-r--r-- | alpine/osdep/execview.c | 4 | ||||
-rw-r--r-- | alpine/osdep/mswin.rc | 8 | ||||
-rw-r--r-- | alpine/osdep/mswinver.c | 2 | ||||
-rw-r--r-- | alpine/pine-use.c | 2 | ||||
-rwxr-xr-x | configure | 208 | ||||
-rw-r--r-- | configure.ac | 56 | ||||
-rw-r--r-- | doc/alpine.1 | 2 | ||||
-rw-r--r-- | doc/tech-notes/index.html | 2 | ||||
-rw-r--r-- | doc/tech-notes/tech-notes.txt | 102 | ||||
-rw-r--r-- | imap/src/c-client/smtp.c | 7 | ||||
-rw-r--r-- | imap/src/osdep/unix/tcp_unix.c | 2 | ||||
-rw-r--r-- | mapi/pmapi.c | 2 | ||||
-rw-r--r-- | mapi/pmapi.rc | 8 | ||||
-rw-r--r-- | pico/estruct.h | 2 | ||||
-rw-r--r-- | pico/osdep/mswin_spell.c | 19 | ||||
-rw-r--r-- | pith/conf.c | 15 | ||||
-rw-r--r-- | pith/pine.hlp | 39 | ||||
-rw-r--r-- | pith/reply.c | 5 | ||||
-rw-r--r-- | po/Makefile.in | 16 |
21 files changed, 345 insertions, 158 deletions
@@ -1 +1 @@ -2.19.9999 +2.20.1 diff --git a/alpine/osdep/alpine-splash.bmp b/alpine/osdep/alpine-splash.bmp Binary files differindex 0bd797be..3289bc2b 100644 --- a/alpine/osdep/alpine-splash.bmp +++ b/alpine/osdep/alpine-splash.bmp diff --git a/alpine/osdep/execview.c b/alpine/osdep/execview.c index d79c85db..9ef2855e 100644 --- a/alpine/osdep/execview.c +++ b/alpine/osdep/execview.c @@ -269,11 +269,11 @@ exec_mailcap_cmd(MCAP_CMD_S *mc_cmd, char *image_file, int needsterminal) q = cpystr(""); #endif /* PSEFCMD */ - l = 32 + strlen(cmd) + 2*strlen(image_file) + strlen(q); + l = 45 + strlen(cmd) + 2*strlen(image_file) + strlen(q); p = command = (char *)fs_get((l+1) * sizeof(char)); if(!needsterminal) /* put in background if it doesn't need terminal */ *p++ = '('; - snprintf(p, l+1-(p-command), "%s ; %s rm -f %s", cmd, q, image_file); + snprintf(p, l+1-(p-command), "%s ; %s sleep 5 ; rm -f %s", cmd, q, image_file); fs_give((void **)&q); command[l] = '\0'; p += strlen(p); diff --git a/alpine/osdep/mswin.rc b/alpine/osdep/mswin.rc index 5d3d1352..2769c8c3 100644 --- a/alpine/osdep/mswin.rc +++ b/alpine/osdep/mswin.rc @@ -244,8 +244,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,19,9999,0 - PRODUCTVERSION 2,19,9999,0 + FILEVERSION 2,20,1,0 + PRODUCTVERSION 2,20,1,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -267,12 +267,12 @@ BEGIN #else VALUE "FileDescription", "Alpine\0" #endif - VALUE "FileVersion", "2.19.9999\0" + VALUE "FileVersion", "2.20.1\0" VALUE "InternalName", "alpine\0" VALUE "LegalCopyright", "Copyright 2006-2009 University of Washington, Copyright 2013-2014\0" VALUE "OriginalFilename", "alpine.exe\0" VALUE "ProductName", "alpine\0" - VALUE "ProductVersion", "2.19.9999\0" + VALUE "ProductVersion", "2.20.1\0" END END BLOCK "VarFileInfo" diff --git a/alpine/osdep/mswinver.c b/alpine/osdep/mswinver.c index 28f1a0ac..3c932123 100644 --- a/alpine/osdep/mswinver.c +++ b/alpine/osdep/mswinver.c @@ -13,7 +13,7 @@ */ #define VER_MAJOR 2 -#define VER_MINOR 19 +#define VER_MINOR 20 extern char datestamp[]; diff --git a/alpine/pine-use.c b/alpine/pine-use.c index 7337b7c7..ab6ee2e6 100644 --- a/alpine/pine-use.c +++ b/alpine/pine-use.c @@ -148,7 +148,7 @@ main(argc, argv) printf("%5d: last year\n", user_count[3]); printf("%5d: more than a year\n", user_count[4]); printf("%5d: core files\n", core_files); - printf("%5d: Average messages in inbox (%ld/%d)\n", + printf("%5ld: Average messages in inbox (%ld/%ld)\n", inbox_mess/(inboxes ? inboxes : 1), inbox_mess, inboxes); printf("%5d: Largest inbox in messages\n", inbox_mess_max); printf("%5d: Total users checked\n", so_far); @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.ac Rev:14 by chappa@washington.edu. +# From configure.ac Rev:16 by chappa@washington.edu. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for alpine 2.19.9999. +# Generated by GNU Autoconf 2.69 for alpine 2.20.1. # # Report bugs to <chappa@washington.edu>. # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='alpine' PACKAGE_TARNAME='alpine' -PACKAGE_VERSION='2.19.9999' -PACKAGE_STRING='alpine 2.19.9999' +PACKAGE_VERSION='2.20.1' +PACKAGE_STRING='alpine 2.20.1' PACKAGE_BUGREPORT='chappa@washington.edu' PACKAGE_URL='' @@ -1466,7 +1466,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures alpine 2.19.9999 to adapt to many kinds of systems. +\`configure' configures alpine 2.20.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1536,7 +1536,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of alpine 2.19.9999:";; + short | recursive ) echo "Configuration of alpine 2.20.1:";; esac cat <<\_ACEOF @@ -1830,7 +1830,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -alpine configure 2.19.9999 +alpine configure 2.20.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2436,7 +2436,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by alpine $as_me 2.19.9999, which was +It was created by alpine $as_me 2.20.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3305,7 +3305,7 @@ fi # Define the identity of the package. PACKAGE='alpine' - VERSION='2.19.9999' + VERSION='2.20.1' cat >>confdefs.h <<_ACEOF @@ -16760,6 +16760,9 @@ if test "${with_ssl_lib_dir+set}" = set; then : fi +fi + +if test "x$alpine_SSLTYPE" != "xnone" ; then if test -n "$alpine_SSLINCLUDE" ; then CPPFLAGS="-I$alpine_SSLINCLUDE $CPPFLAGS" elif test -n "$alpine_SSLDIR" ; then @@ -16773,6 +16776,7 @@ fi fi + # Check whether --with-krb5 was given. if test "${with_krb5+set}" = set; then : withval=$with_krb5; with_krb5=$withval @@ -17636,9 +17640,48 @@ if test "x$alpine_DL" = "xnone" ; then fi if test "x$alpine_SSLTYPE" != "xnone" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SSLeay" >&5 -$as_echo_n "checking for library containing SSLeay... " >&6; } -if ${ac_cv_search_SSLeay+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Openssl library version >= 1.0.0c" >&5 +$as_echo_n "checking Openssl library version >= 1.0.0c... " >&6; } + if test "$cross_compiling" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cross compiling: not checking" >&5 +$as_echo "$as_me: WARNING: cross compiling: not checking" >&2;} +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <stdio.h> +#include <stdlib.h> +#if HAVE_STDINT_H +#include <stdint.h> +#endif /* HAVE_STDINT_H */ +#include <openssl/ssl.h> +int main(void) { + + if (OPENSSL_VERSION_NUMBER >= 0x1000003f) + exit(0); + + exit(2); +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + alpine_SSLTYPE="none" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + + if test "x$alpine_SSLTYPE" = "xnone" ; then + as_fn_error $? "Install openssl version >= 1.0.0c" "$LINENO" 5 + exit 1 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing TLSv1_2_client_method" >&5 +$as_echo_n "checking for library containing TLSv1_2_client_method... " >&6; } +if ${ac_cv_search_TLSv1_2_client_method+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -17651,16 +17694,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char SSLeay (); +char TLSv1_2_client_method (); int main () { -return SSLeay (); +return TLSv1_2_client_method (); ; return 0; } _ACEOF -for ac_lib in '' crypto; do +for ac_lib in '' ssl; do if test -z "$ac_lib"; then ac_res="none required" else @@ -17668,42 +17711,40 @@ for ac_lib in '' crypto; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_SSLeay=$ac_res + ac_cv_search_TLSv1_2_client_method=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_SSLeay+:} false; then : + if ${ac_cv_search_TLSv1_2_client_method+:} false; then : break fi done -if ${ac_cv_search_SSLeay+:} false; then : +if ${ac_cv_search_TLSv1_2_client_method+:} false; then : else - ac_cv_search_SSLeay=no + ac_cv_search_TLSv1_2_client_method=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SSLeay" >&5 -$as_echo "$ac_cv_search_SSLeay" >&6; } -ac_res=$ac_cv_search_SSLeay +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_TLSv1_2_client_method" >&5 +$as_echo "$ac_cv_search_TLSv1_2_client_method" >&6; } +ac_res=$ac_cv_search_TLSv1_2_client_method if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + alpine_c_client_cflags="$alpine_c_client_cflags -DTLSV1_2" + +$as_echo "#define SSL_SUPPORTS_TLSV1_2 1" >>confdefs.h + -else - alpine_CRYPTO="none" fi - if test "x$alpine_CRYPTO" = "xnone" ; then - as_fn_error $? "crypto library NOT found" "$LINENO" 5 - exit 1 - fi fi if test "x$alpine_SSLTYPE" != "xnone" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SSL_library_init" >&5 -$as_echo_n "checking for library containing SSL_library_init... " >&6; } -if ${ac_cv_search_SSL_library_init+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SSLeay" >&5 +$as_echo_n "checking for library containing SSLeay... " >&6; } +if ${ac_cv_search_SSLeay+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -17716,16 +17757,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char SSL_library_init (); +char SSLeay (); int main () { -return SSL_library_init (); +return SSLeay (); ; return 0; } _ACEOF -for ac_lib in '' ssl; do +for ac_lib in '' crypto; do if test -z "$ac_lib"; then ac_res="none required" else @@ -17733,79 +17774,42 @@ for ac_lib in '' ssl; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_SSL_library_init=$ac_res + ac_cv_search_SSLeay=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_SSL_library_init+:} false; then : + if ${ac_cv_search_SSLeay+:} false; then : break fi done -if ${ac_cv_search_SSL_library_init+:} false; then : +if ${ac_cv_search_SSLeay+:} false; then : else - ac_cv_search_SSL_library_init=no + ac_cv_search_SSLeay=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SSL_library_init" >&5 -$as_echo "$ac_cv_search_SSL_library_init" >&6; } -ac_res=$ac_cv_search_SSL_library_init +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SSLeay" >&5 +$as_echo "$ac_cv_search_SSLeay" >&6; } +ac_res=$ac_cv_search_SSLeay if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else - alpine_SSLTYPE="none" + alpine_CRYPTO="none" fi - - if test "x$alpine_SSLTYPE" = "xnone" ; then - as_fn_error $? "No library containing SSL_library_init found in your path" "$LINENO" 5 + if test "x$alpine_CRYPTO" = "xnone" ; then + as_fn_error $? "crypto library NOT found" "$LINENO" 5 exit 1 fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Openssl library version >= 1.0.1c" >&5 -$as_echo_n "checking Openssl library version >= 1.0.1c... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <stdio.h> -#include <stdlib.h> -#include <openssl/ssl.h> -int main(void) { - - if (OPENSSL_VERSION_NUMBER >= 0x1000003f) - exit(0); - - exit(2); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - alpine_SSLTYPE="none" -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext fi - - if test "x$alpine_SSLTYPE" = "xnone" ; then - as_fn_error $? "Install openssl version >= 1.0.1c" "$LINENO" 5 - exit 1 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing TLSv1_2_client_method" >&5 -$as_echo_n "checking for library containing TLSv1_2_client_method... " >&6; } -if ${ac_cv_search_TLSv1_2_client_method+:} false; then : +if test "x$alpine_SSLTYPE" != "xnone" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SSL_library_init" >&5 +$as_echo_n "checking for library containing SSL_library_init... " >&6; } +if ${ac_cv_search_SSL_library_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -17818,11 +17822,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char TLSv1_2_client_method (); +char SSL_library_init (); int main () { -return TLSv1_2_client_method (); +return SSL_library_init (); ; return 0; } @@ -17835,33 +17839,37 @@ for ac_lib in '' ssl; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_TLSv1_2_client_method=$ac_res + ac_cv_search_SSL_library_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_TLSv1_2_client_method+:} false; then : + if ${ac_cv_search_SSL_library_init+:} false; then : break fi done -if ${ac_cv_search_TLSv1_2_client_method+:} false; then : +if ${ac_cv_search_SSL_library_init+:} false; then : else - ac_cv_search_TLSv1_2_client_method=no + ac_cv_search_SSL_library_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_TLSv1_2_client_method" >&5 -$as_echo "$ac_cv_search_TLSv1_2_client_method" >&6; } -ac_res=$ac_cv_search_TLSv1_2_client_method +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SSL_library_init" >&5 +$as_echo "$ac_cv_search_SSL_library_init" >&6; } +ac_res=$ac_cv_search_SSL_library_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - alpine_c_client_cflags="$alpine_c_client_cflags -DTLSV1_2" -$as_echo "#define SSL_SUPPORTS_TLSV1_2 1" >>confdefs.h +else + alpine_SSLTYPE="none" +fi -fi + if test "x$alpine_SSLTYPE" = "xnone" ; then + as_fn_error $? "No library containing SSL_library_init found in your path" "$LINENO" 5 + exit 1 + fi fi @@ -20608,6 +20616,8 @@ else certdir="${alpine_SSLDIR}/ssl/certs" elif test -n "$alpine_SSLCERTS_ORIG" -a -d "$alpine_SSLCERTS_ORIG" ; then certdir="$alpine_SSLCERTS_ORIG" + elif test -n "$alpine_SSLCERTS" ; then + certdir="$alpine_SSLCERTS" else { $as_echo "$as_me:${as_lineno-$LINENO}: SSL Problem: certificate directory not found" >&5 $as_echo "$as_me: SSL Problem: certificate directory not found" >&6;} @@ -21287,7 +21297,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by alpine $as_me 2.19.9999, which was +This file was extended by alpine $as_me 2.20.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21353,7 +21363,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -alpine config.status 2.19.9999 +alpine config.status 2.20.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 30f380cf..ab83a4ad 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ dnl */ AC_PREREQ([2.69]) -AC_REVISION([Rev:14 by chappa@washington.edu]) +AC_REVISION([Rev:16 by chappa@washington.edu]) dnl Alpine Version Number is in $srcdir/VERSION AC_INIT([alpine],[m4_normalize(m4_include(VERSION))],[chappa@washington.edu]) @@ -903,6 +903,9 @@ dnl find it anywhere else. alpine_SSLLIB=$withval fi ]) +fi + +if test "x$alpine_SSLTYPE" != "xnone" ; then dnl setup globals so tests below work if test -n "$alpine_SSLINCLUDE" ; then CPPFLAGS="-I$alpine_SSLINCLUDE $CPPFLAGS" @@ -916,6 +919,7 @@ dnl find it anywhere else. fi fi + dnl Include Kerberos? dnl Set GSSDIR for c-client make AC_ARG_WITH(krb5, @@ -1346,29 +1350,16 @@ if test "x$alpine_DL" = "xnone" ; then exit 1 fi -dnl Crypto support is needed +dnl Check Openssl/LibreSSL version first if test "x$alpine_SSLTYPE" != "xnone" ; then - AC_SEARCH_LIBS(SSLeay,crypto,, [ alpine_CRYPTO="none" ]) - if test "x$alpine_CRYPTO" = "xnone" ; then - AC_MSG_ERROR(crypto library NOT found) - exit 1 - fi -fi - -dnl provide SSL support? -if test "x$alpine_SSLTYPE" != "xnone" ; then - AC_SEARCH_LIBS(SSL_library_init,ssl,,[ alpine_SSLTYPE="none" ]) - - if test "x$alpine_SSLTYPE" = "xnone" ; then - AC_MSG_ERROR(No library containing SSL_library_init found in your path) - exit 1 - fi - - AC_MSG_CHECKING([Openssl library version >= 1.0.1c]) + AC_MSG_CHECKING([Openssl library version >= 1.0.0c]) AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #include <stdlib.h> +#if HAVE_STDINT_H +#include <stdint.h> +#endif /* HAVE_STDINT_H */ #include <openssl/ssl.h> int main(void) { @@ -1379,10 +1370,11 @@ int main(void) { } ]])], [ AC_MSG_RESULT(yes) ], - [ alpine_SSLTYPE="none" ]) + [ alpine_SSLTYPE="none" ], + [ AC_MSG_WARN([cross compiling: not checking])]) if test "x$alpine_SSLTYPE" = "xnone" ; then - AC_MSG_ERROR(Install openssl version >= 1.0.1c) + AC_MSG_ERROR(Install openssl version >= 1.0.0c) exit 1 fi AC_SEARCH_LIBS(TLSv1_2_client_method,ssl, @@ -1391,6 +1383,26 @@ int main(void) { ]) fi +dnl Crypto support is needed +if test "x$alpine_SSLTYPE" != "xnone" ; then + AC_SEARCH_LIBS(SSLeay,crypto,, [ alpine_CRYPTO="none" ]) + if test "x$alpine_CRYPTO" = "xnone" ; then + AC_MSG_ERROR(crypto library NOT found) + exit 1 + fi +fi + +dnl provide SSL support? +if test "x$alpine_SSLTYPE" != "xnone" ; then + AC_SEARCH_LIBS(SSL_library_init,ssl,,[ alpine_SSLTYPE="none" ]) + + if test "x$alpine_SSLTYPE" = "xnone" ; then + AC_MSG_ERROR(No library containing SSL_library_init found in your path) + exit 1 + fi + +fi + dnl provide LDAP support? if test "$alpine_with_ldap" = "yes" ; then alpine_has_ldap= @@ -1848,6 +1860,8 @@ else certdir="${alpine_SSLDIR}/ssl/certs" elif test -n "$alpine_SSLCERTS_ORIG" -a -d "$alpine_SSLCERTS_ORIG" ; then certdir="$alpine_SSLCERTS_ORIG" + elif test -n "$alpine_SSLCERTS" ; then + certdir="$alpine_SSLCERTS" else AC_MSG_NOTICE([SSL Problem: certificate directory not found]) fi diff --git a/doc/alpine.1 b/doc/alpine.1 index 2b6daf34..5ca4f8b8 100644 --- a/doc/alpine.1 +++ b/doc/alpine.1 @@ -1,4 +1,4 @@ -.TH alpine 1 "Version 2.19.9999" +.TH alpine 1 "Version 2.20.1" .SH NAME alpine \- an Alternatively Licensed Program for Internet News and Email .SH SYNTAX diff --git a/doc/tech-notes/index.html b/doc/tech-notes/index.html index 00a8df2b..f9dda945 100644 --- a/doc/tech-notes/index.html +++ b/doc/tech-notes/index.html @@ -3,7 +3,7 @@ <BODY> <H1>Alpine Technical Notes</H1> -Version 2.19.9999, January 2015 +Version 2.20.1, January 2015 <H2><A NAME="TOC">Table of Contents</A></H2><P> diff --git a/doc/tech-notes/tech-notes.txt b/doc/tech-notes/tech-notes.txt index 1cd14179..e339aaaa 100644 --- a/doc/tech-notes/tech-notes.txt +++ b/doc/tech-notes/tech-notes.txt @@ -1,4 +1,106 @@ + Alpine Technical Notes + + Version 2.20.1, January 2015 + +Table of Contents + + Introduction + + * Design Goals + * Alpine Components + + Background Details + + * Domain Names + * RFC 2822 Compliance + * SMTP and Sendmail + * Internet Message Access Protocol (IMAP) + * Multipurpose Internet Mail Extensions (MIME) + * Folder Collections + + Building and Installation + + * Compile-time Options + * Including LDAP Functionality + * Including Kerberos 5 Functionality + * Other Alpine Compile-time Options + * IMAPd Compile-time Options + * Building the Alpine Programs + * Installing Alpine and Pico on UNIX Platforms + * Installing PC-Alpine + * Installing IMAPd + * Support Files and Environment Variables: UNIX Alpine + * Support Files, Environment Variables, and Registry Values: + PC-Alpine + + Command Line Arguments + + * Alpine + * Pico + * Pilot + + Configuration and Preferences + + * Alpine Configuration + * General Configuration Variables + * Configuration Features + * Hidden Config Variables and Features + * Retired Variables + * Tokens for Index and Replying + * Conditional Inclusion of Text for Reply-Leadin, Signatures, and + Templates + * Per Server Directory Configuration + * Color Configuration + * Index Line Color Configuration + * Role Configuration + * Filtering Configuration + * Scoring Configuration + * Other Rules Configuration + * Search Rules Configuration + * Patterns + * Configuring News + Configuration Notes + + Alpine in Function Key Mode + + Domain Settings + + Syntax for Collections + + Syntax for Folder Names + + Server Name Syntax + + Folder Namespaces + + What is a Mail Drop? + + Sorting a Folder + + Alternate Editor + + Signatures and Signature Placement + + Feature List Variable + + Configuration Inheritance + + Using Environment Variables + + SMTP Servers + + MIME.Types file + + Color Details + + S/MIME Overview + + Additional Notes on PC-Alpine + + Behind the Scenes + + * Address Books + * Remote Configuration + * Checkpointing + * Debug Files + * INBOX and Special Folders + * Internal Help Files + * International Character Sets + * Interrupted and Postponed Messages + * Message Status + * MIME: Reading a Message + * MIME: Sending a Message + * New Mail Notification + * NFS + * Printers and Printing + * Save and Export + * Sent Mail + * Spell Checker + * Terminal Emulation and Key Mapping + Introduction Design Goals diff --git a/imap/src/c-client/smtp.c b/imap/src/c-client/smtp.c index 1c72670c..1a79d28d 100644 --- a/imap/src/c-client/smtp.c +++ b/imap/src/c-client/smtp.c @@ -1,4 +1,5 @@ /* ======================================================================== + * Copyright 2015 Eduardo Chappa * Copyright 2008 Mark Crispin * ======================================================================== */ @@ -9,7 +10,8 @@ * Author: Mark Crispin * * Date: 27 July 1988 - * Last Edited: 19 November 2008 + * Last Edited: 19 November 2008 (Crispin) + * Last Edited: 16 January 2015 (Chappa) * * Previous versions of this file were * @@ -345,8 +347,9 @@ void *smtp_challenge (void *s,unsigned long *len) if ((stream->replycode == SMTPAUTHREADY) && !(ret = rfc822_base64 ((unsigned char *) stream->reply + 4, strlen (stream->reply + 4),len))) { - sprintf (tmp,"SMTP SERVER BUG (invalid challenge): %.80s",stream->reply+4); + sprintf (tmp,"SMTP SERVER BUG (invalid challenge, continuing): %.80s",stream->reply+4); mm_log (tmp,ERROR); + ret = cpystr(""); /* This is silly: fake a reply, it will be ignored */ } return ret; } diff --git a/imap/src/osdep/unix/tcp_unix.c b/imap/src/osdep/unix/tcp_unix.c index 652f1250..4fe8194d 100644 --- a/imap/src/osdep/unix/tcp_unix.c +++ b/imap/src/osdep/unix/tcp_unix.c @@ -312,7 +312,7 @@ int tcp_socket_open (int family,void *adr,size_t adrlen,unsigned short port, /* This used to be a zero-byte read(), but that crashes Solaris */ /* get socket status */ if(FD_ISSET(sock,&rfds)) - while (((i = *ctr = read (sock,tmp,1)) < 0) && (errno == EINTR)); + while (((i = *ctr = read (sock,tmp,0)) < 0) && (errno == EINTR)); } if (i <= 0) { /* timeout or error? */ i = i ? errno : ETIMEDOUT;/* determine error code */ diff --git a/mapi/pmapi.c b/mapi/pmapi.c index 1d8d4ecd..6b050415 100644 --- a/mapi/pmapi.c +++ b/mapi/pmapi.c @@ -1952,7 +1952,7 @@ BOOL APIENTRY DllMain( now = time((time_t *)0); tm_now = localtime(&now); - fprintf(ms_global->dfd, "pmapi32.dll for Alpine Version 2.19.9999\r\n"); + fprintf(ms_global->dfd, "pmapi32.dll for Alpine Version 2.20.1\r\n"); fprintf(ms_global->dfd, " Build date: %s\r\n", datestamp); fprintf(ms_global->dfd, " please report all bugs to chappa@gmx.com\r\n"); diff --git a/mapi/pmapi.rc b/mapi/pmapi.rc index d3d7c8ed..27fc3426 100644 --- a/mapi/pmapi.rc +++ b/mapi/pmapi.rc @@ -98,8 +98,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,19,9999,0 - PRODUCTVERSION 2,19,9999,0 + FILEVERSION 2,20,1,0 + PRODUCTVERSION 2,20,1,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x29L @@ -117,14 +117,14 @@ BEGIN VALUE "Comments", "alpine info: http://patches.freeiz.com/alpine\0" VALUE "CompanyName", "Patches for Alpine\0" VALUE "FileDescription", "Simple MAPI DLL for Alpine for Windows\0" - VALUE "FileVersion", "2.19.9999\0" + VALUE "FileVersion", "2.20.1\0" VALUE "InternalName", "pmapi32\0" VALUE "LegalCopyright", "Copyright ? University of Washington 2006-2009, Eduardo Chappa 2013-2014\0" VALUE "LegalTrademarks", "Apache License, Version 2.0\0" VALUE "OriginalFilename", "pmapi32.dll\0" VALUE "PrivateBuild", " \0" VALUE "ProductName", "Simple MAPI for Alpine for Windows\0" - VALUE "ProductVersion", "2.19.9999\0" + VALUE "ProductVersion", "2.20.1\0" VALUE "SpecialBuild", " \0" END END diff --git a/pico/estruct.h b/pico/estruct.h index f0090881..410dfc02 100644 --- a/pico/estruct.h +++ b/pico/estruct.h @@ -238,7 +238,7 @@ typedef struct { */ typedef struct CELL { unsigned int c : 24; /* Character value in cell */ - unsigned int a : 8; /* Its attributes */ + unsigned int a : 7; /* Its attributes */ unsigned int d : 1; /* direction */ } CELL; diff --git a/pico/osdep/mswin_spell.c b/pico/osdep/mswin_spell.c index e921cfcd..ac899421 100644 --- a/pico/osdep/mswin_spell.c +++ b/pico/osdep/mswin_spell.c @@ -437,6 +437,9 @@ spell_dlg_proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) static int get_next_word(WORD_INFO *word_info) { + UCS *ucst; + int i, hibit; + // Skip quoted lines while(lgetc(curwp->w_dotp, 0).c == '>') { @@ -479,9 +482,19 @@ get_next_word(WORD_INFO *word_info) break; } - word_info->word_utf8 = ucs4_to_utf8_cpystr_n( - (UCS *)&word_info->word_dotp->l_text[word_info->word_doto], - word_info->word_size); + ucst = (UCS *)&word_info->word_dotp->l_text[word_info->word_doto]; + for(i = 0, hibit = 0; i < word_info->word_size; i++) + if(ucst[i] & 0xff000000) + hibit++; + + if(hibit > 0){ + ucst = ucs4_cpystr(ucst); + for(i = 0; i < word_info->word_size; i++) + ucst[i] &= 0xffffff; + } + word_info->word_utf8 = ucs4_to_utf8_cpystr_n(ucst, word_info->word_size); + if(hibit > 0) + fs_give((void **)&ucst); return 1; } diff --git a/pith/conf.c b/pith/conf.c index aca7ea28..e8c1ceb9 100644 --- a/pith/conf.c +++ b/pith/conf.c @@ -5938,16 +5938,21 @@ write_pinerc(struct pine *ps, EditWhich which, int flags) slpath = cpystr(slink); else{ char * basep; + int n; + basep = strrchr(filename, '/'); - if(basep == NULL){ + if(basep != NULL){ *basep = '\0'; - slpath = (char *) fs_get((strlen(filename) + strlen(slink) + 2)*sizeof(char)); - snprintf(slpath, sizeof(slpath), "%s/%s", filename, slink); + n = strlen(filename) + strlen(slink) + 2; + slpath = (char *) fs_get(n*sizeof(char)); + snprintf(slpath, n, "%s/%s", filename, slink); *basep = '/'; } else { - slpath = (char *) fs_get((strlen(ps_global->home_dir) + strlen(slink) + 2)*sizeof(char)); - snprintf(slpath, sizeof(slpath), "%s/%s", ps_global->home_dir, slink); + n = strlen(ps_global->home_dir) + strlen(slink) + 2; + slpath = (char *) fs_get(n*sizeof(char)); + snprintf(slpath, n, "%s/%s", ps_global->home_dir, slink); } + slpath[n-1] = '\0'; } file_attrib_copy(tmp, slpath); r = rename_file(tmp, slpath); diff --git a/pith/pine.hlp b/pith/pine.hlp index 3152fb7e..f360dda6 100644 --- a/pith/pine.hlp +++ b/pith/pine.hlp @@ -140,7 +140,7 @@ with help text for the config screen and the composer that didn't have any reasonable place to be called from. Dummy change to get revision in pine.hlp ============= h_revision ================= -Alpine Commit 67 2015-01-07 21:01:57 +Alpine Commit 68 2015-01-25 18:52:07 ============= h_news ================= <HTML> <HEAD> @@ -178,6 +178,41 @@ addresses bugs found in previous releases and has a few additions as well. <P> Additions include: +<UL> + <LI> Ignore message from smtp server after a successful authentication + challenge. + <LI> If SSLDIR is defined somehow, do not disable S/MIME if the + SSLCERTSDIR is not found. +</UL> + +<P> +Bugs that have been addressed include: +<UL> + <LI> Alpine would not set include and lib paths for OpenSSL if this was + installed in /usr/local/ssl. + + <LI> If the .pinerc file is a symbolic link, Alpine might not write its + contents when saving its configuration. + + <LI> The _INIT_ token does not skip over non-alpha numeric characters in + the name. Reported by Andreas Fehr. + + <LI> Mismatch in size of UCS and CELL caused a corruption in the + content of a pointer, which made the speller in PC-Alpine get + the content of a word incorrectly. + + <LI> Skip testing openssl compatibility version when cross-compilation + is detected. Fix contributed by Antti Seppälä. + +</UL> + + +<P> +Version 2.20 addresses bugs found in previous releases and has several +additions as well. + +<P> +Additions include: <P> <UL> @@ -362,7 +397,7 @@ Additions include: <P> <UL> - <LI> Alpine requires version 1.0.1c of Openssl to build. + <LI> Alpine requires version 1.0.0c of Openssl to build. <LI> Increase encryption of S/MIME encrypted messages. <LI> Pico: Improvements in justification of paragraphs: lines that begin with a quote string, followed by a space were considered individual paragraphs, diff --git a/pith/reply.c b/pith/reply.c index 52a3c81c..54223e68 100644 --- a/pith/reply.c +++ b/pith/reply.c @@ -820,6 +820,10 @@ reply_quote_initials(char *name) continue; } + /* skip over non-alpha stuff */ + if(i == 0 && !isalnum((unsigned char) cbuf.cbuf[0])) + goto reset_cbuf; + /* copy cbuf */ for(j = 0; j <= i; j++) *w++ = cbuf.cbuf[j]; @@ -827,6 +831,7 @@ reply_quote_initials(char *name) while(*s && (unsigned char) *s != ' ') s++; +reset_cbuf: cbuf.cbuf[i = 0] = '\0'; cbuf.cbufp = cbuf.cbuf; cbuf.cbufend = cbuf.cbuf; diff --git a/po/Makefile.in b/po/Makefile.in index bb0cc64f..4abd6756 100644 --- a/po/Makefile.in +++ b/po/Makefile.in @@ -11,7 +11,7 @@ # Origin: gettext-0.16 PACKAGE = alpine -VERSION = 2.19.9993 +VERSION = 2.20.1 PACKAGE_BUGREPORT = chappa@washington.edu SHELL = /bin/sh @@ -34,12 +34,12 @@ INSTALL_DATA = ${INSTALL} -m 644 # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, -# ${SHELL} /var/run/media/echappa/Work/alpine/alpinegit/install-sh does not start with $(SHELL), so we add it. +# ${SHELL} /home/echappa/backup/011115.0/alpine/alpinegit/install-sh does not start with $(SHELL), so we add it. # In automake >= 1.10, $(MKDIR_P) is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. -mkinstalldirs = $(SHELL) ${SHELL} /var/run/media/echappa/Work/alpine/alpinegit/install-sh -d -install_sh = $(SHELL) ${SHELL} /var/run/media/echappa/Work/alpine/alpinegit/install-sh +mkinstalldirs = $(SHELL) ${SHELL} /home/echappa/backup/011115.0/alpine/alpinegit/install-sh -d +install_sh = $(SHELL) ${SHELL} /home/echappa/backup/011115.0/alpine/alpinegit/install-sh MKDIR_P = /usr/bin/mkdir -p mkdir_p = $(MKDIR_P) @@ -51,12 +51,12 @@ MSGFMT_ = /usr/bin/msgfmt MSGFMT_no = /usr/bin/msgfmt MSGFMT_yes = /usr/bin/msgfmt MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) -XGETTEXT_ = : -XGETTEXT_no = : -XGETTEXT_yes = : +XGETTEXT_ = /usr/bin/xgettext +XGETTEXT_no = /usr/bin/xgettext +XGETTEXT_yes = /usr/bin/xgettext XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = msgmerge -MSGMERGE_UPDATE = : --update +MSGMERGE_UPDATE = /usr/bin/msgmerge --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter |