Updated Sylpheed, WinPT and GnuPG gpg4win-1.0.3
authorWerner Koch <wk@gnupg.org>
Mon, 26 Jun 2006 08:05:57 +0000 (08:05 +0000)
committerWerner Koch <wk@gnupg.org>
Mon, 26 Jun 2006 08:05:57 +0000 (08:05 +0000)
12 files changed:
ChangeLog
Makefile.am
NEWS
configure.ac
packages/packages.current
patches/sylpheed-claws-2.3.1/01-locale-dir.patch [new file with mode: 0755]
patches/sylpheed-claws-2.3.1/02-fix-plugin-dir.patch [new file with mode: 0755]
patches/sylpheed-claws-2.3.1/03-std-plugins.patch [new file with mode: 0755]
patches/sylpheed-claws-2.3.1/04-pgpcore-def.patch [new file with mode: 0755]
patches/sylpheed-claws-2.3.1/05-pgpinline-def.patch [new file with mode: 0755]
patches/sylpheed-claws-2.3.1/06-pgpmime-def.patch [new file with mode: 0755]
patches/sylpheed-claws-2.3.1/07-mbox.patch [new file with mode: 0755]

index e87c241..37c9eac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-06-26  Werner Koch  <wk@g10code.com>
+
+       Released 1.0.3.
+
+       * Makefile.am (EXTRA_DIST): Added new Sylpheed patches. Removed
+       old sylpheed patches.
+
 2006-05-30  Werner Koch  <wk@g10code.com>
 
        Released 1.0.2.
index c4cdb85..4c25891 100644 (file)
@@ -32,9 +32,11 @@ EXTRA_DIST = autogen.sh README.SVN \
         patches/glib-2.9.2-wk1/02-gspawn-w32.patch \
         patches/glib-2.9.2-wk1/03-gspawn-w32-fixup.patch \
         patches/glib-2.9.2-wk1/04-gspawn-w32-buffering.patch \
-       patches/sylpheed-claws-1.9.100cvs124/01-fix-plugin-dir.patch \
-       patches/sylpheed-claws-1.9.100cvs124/02-std-plugins.patch \
-       patches/sylpheed-claws-2.2.0/01-locale-dir.patch \
-       patches/sylpheed-claws-2.2.0/02-fix-plugin-dir.patch \
-       patches/sylpheed-claws-2.2.0/03-std-plugins.patch \
-       patches/sylpheed-claws-2.2.0/04-pgpcore-def.patch
+       patches/sylpheed-claws-2.3.1/01-locale-dir.patch \
+       patches/sylpheed-claws-2.3.1/02-fix-plugin-dir.patch \
+       patches/sylpheed-claws-2.3.1/03-std-plugins.patch \
+       patches/sylpheed-claws-2.3.1/04-pgpcore-def.patch \
+        patches/sylpheed-claws-2.3.1/05-pgpinline-def.patch \
+        patches/sylpheed-claws-2.3.1/06-pgpmime-def.patch \
+        patches/sylpheed-claws-2.3.1/07-mbox.patch 
+
diff --git a/NEWS b/NEWS
index d3647e2..a7bb1ba 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,27 @@
 # The version number given below are for the standard installers as
 # distributed by www.gpg4win.org.
 
+Noteworthy changes in version 1.0.3 (2006-06-26)
+------------------------------------------------
+
+(en) Fixed a security related bug in GnuPG (CVE-2006-3082).
+(de) Ein sicherheitskritischer Fehler wurde in der GnuPG behoben. 
+
+(en) Updated Sylpheed-Claws due to security problems.
+(de) Update von Sylpheed-Claws aufgrund von Sicherheitsfehlern.
+
+~~~~~~~~~~~~~~~
+GnuPG: 1.4.3
+WinPT: 0.12.3
+GPA:   0.7.3
+GPGol: 0.9.10
+GPGee: 1.3.1
+Sylpheed-Claws: 2.3.1
+Einsteiger:     2.0.2
+Durchblicker:   2.0.2
+~~~~~~~~~~~~~~~
+
+
 Noteworthy changes in version 1.0.2 (2006-05-30)
 ------------------------------------------------
 
index 41e4b86..fbb1808 100644 (file)
@@ -25,7 +25,7 @@ min_automake_version="1.9.3"
 # Remember to change the version number immediately *after* a release.
 # Set my_issvn to "yes" for non-released code.  Remember to run an
 # "svn up" and "autogen.sh" right before creating a distribution.
-m4_define([my_version], [1.0.2])
+m4_define([my_version], [1.0.3])
 m4_define([my_issvn], [no])
 
 m4_define([svn_revision], m4_esyscmd([echo -n $((svn info 2>/dev/null \
index 5ac9501..5f1e41a 100644 (file)
@@ -63,8 +63,11 @@ chk  b9faae10efae552f23c213891a3ed8187cb7d017
 
 server http://kent.dl.sourceforge.net/sourceforge/sylpheed-claws
 
-file  sylpheed-claws-2.2.0.tar.bz2
-chk   b2244cfa04a7800b7d0ce518e0b1f54743f02bf3  
+#file  sylpheed-claws-2.2.0.tar.bz2
+#chk   b2244cfa04a7800b7d0ce518e0b1f54743f02bf3  
+file  sylpheed-claws-2.3.1.tar.bz2
+chk   9a9935dc4c7ed04b45daf6c75d01dbe2f4920e3e
+
 
 # RedHat
 
@@ -132,8 +135,8 @@ chk  1019c8027c0cf94bca680886f4e2ae4e629a2a97
 
 server http://wald.intevation.org/frs/download.php
 
-file  219/winpt-0.12.1.tar.bz2
-chk   90ce0740a5c4886720c01079df73e4de0572825c 
+file  229/winpt-0.12.3.tar.bz2
+chk   54a614d2fb5b622703850478ac20dd19077a5028
 
 
 # GPGee
@@ -164,8 +167,8 @@ chk 64d6abead30ae48ea61921bf6a982e0b75d9d142
 
 server ftp://ftp.gnupg.org/gcrypt
 
-file gnupg/gnupg-1.4.3.tar.bz2
-chk  9e96b36e4f4d1e8bc5028c99fac674482cbdb370
+file gnupg/gnupg-1.4.4.tar.bz2
+chk  3414d67f22973576f31e354f44859bafbccb7eee
 
 file libgpg-error/libgpg-error-1.2.tar.bz2
 chk  468657e5bccd534f350b1a0109e19d2a9cc5d027
diff --git a/patches/sylpheed-claws-2.3.1/01-locale-dir.patch b/patches/sylpheed-claws-2.3.1/01-locale-dir.patch
new file mode 100755 (executable)
index 0000000..4b134dc
--- /dev/null
@@ -0,0 +1,87 @@
+#! /bin/sh
+patch -p1 -f $* < $0
+exit $?
+
+2006-01-05  Werner Koch  <wk@g10code.com>
+
+        * src/common/utils.c (w32_get_locale_dir, get_locale_dir): New.
+        (get_plugin_dir) [W32]: Use it here.
+        * src/common/sylpheed.c (sylpheed_init): Use it here.
+
+--- sylpheed-claws-2.0.0/src/common/utils.c    2006-01-13 18:11:38.000000000 +0100
++++ sylpheed-claws-2.0.0/src/common/utils.c    2006-01-05 16:36:51.000000000 +0100
+@@ -1979,16 +1979,51 @@
+   else
+     return -1;
+ }
++
++/* Return a malloced string with the locale dir.  Return NULL on
++   error. */
++static char *w32_get_locale_dir(void)
++{
++        char name[MAX_PATH+35];
++        char *p;
++
++        if ( !GetModuleFileNameA (0, name, sizeof (name)-30) )
++                return NULL;
++        p = strrchr (name, '\\');
++        if (!p)
++        {
++                *name = '\\';
++                p = name;
++        }
++        p++;
++        strcpy (p, "\\share\\locale");
++        return g_strdup (name);
++}
++#endif /* G_OS_WIN32 */
++
++/* Return a static string with the locale dir. */
++const gchar *get_locale_dir(void)
++{
++      static gchar *loc_dir;
++
++#ifdef G_OS_WIN32
++      if (!loc_dir)
++                loc_dir = w32_get_locale_dir();
+ #endif
++      if (!loc_dir)
++              loc_dir = LOCALEDIR;
++        
++      return loc_dir;
++}
++
+ const gchar *get_home_dir(void)
+ {
+ #ifdef G_OS_WIN32
+       static char home_dir[MAX_PATH] = "";
+-      if (home_dir[0] == '\0')
+-              {
+-                      if (w32_shgetfolderpath
++      if (home_dir[0] == '\0') {
++                if (w32_shgetfolderpath
+                           (NULL, CSIDL_APPDATA|CSIDL_FLAG_CREATE,
+                            NULL, 0, home_dir) < 0)
+                               strcpy (home_dir, "C:\\Sylpheed");
+@@ -2098,7 +2133,7 @@
+       static gchar *plugin_dir = NULL;
+       if (!plugin_dir)
+-                plugin_dir = g_strconcat(sylpheed_get_startup_dir(),
++                plugin_dir = g_strconcat(get_locale_dir(),
+                                          "\\lib\\sylpheed-claws\\plugins\\",
+                                          NULL);
+       return plugin_dir;
+--- sylpheed-claws-2.0.0/src/common/sylpheed.c 2006-01-13 18:11:38.000000000 +0100
++++ sylpheed-claws-2.0.0/src/common/sylpheed.c 2006-01-05 16:32:59.000000000 +0100
+@@ -100,7 +100,7 @@
+       setlocale(LC_ALL, "");
+ #ifdef ENABLE_NLS
+-      bindtextdomain(PACKAGE, LOCALEDIR);
++      bindtextdomain(PACKAGE, get_locale_dir () );
+       bind_textdomain_codeset (PACKAGE, "UTF-8");
+       textdomain(PACKAGE);
+ #endif /*ENABLE_NLS*/
diff --git a/patches/sylpheed-claws-2.3.1/02-fix-plugin-dir.patch b/patches/sylpheed-claws-2.3.1/02-fix-plugin-dir.patch
new file mode 100755 (executable)
index 0000000..d2eccfb
--- /dev/null
@@ -0,0 +1,84 @@
+#! /bin/sh
+patch -p1 -f $* < $0
+exit $?
+
+Fix a bug in the W32 plugin directory handling.
+
+2006-01-09  Werner Koch  <wk@g10code.com>
+
+       * src/common/utils.c (w32_get_locale_dir): Removed.
+       (w32_get_module_dir): New.
+       (get_local_dir): Use new function.
+       (get_plugin_dir): Ditto.
+
+
+diff -ru sylpheed-claws.orig/src/common/utils.c sylpheed-claws/src/common/utils.c
+--- sylpheed-claws.orig/src/common/utils.c     2006-01-05 16:36:51.000000000 +0100
++++ sylpheed-claws/src/common/utils.c  2006-01-09 18:59:18.000000000 +0100
+@@ -1980,24 +1980,28 @@
+     return -1;
+ }
+-/* Return a malloced string with the locale dir.  Return NULL on
+-   error. */
+-static char *w32_get_locale_dir(void)
+-{
+-        char name[MAX_PATH+35];
+-        char *p;
+-
+-        if ( !GetModuleFileNameA (0, name, sizeof (name)-30) )
+-                return NULL;
+-        p = strrchr (name, '\\');
+-        if (!p)
+-        {
+-                *name = '\\';
+-                p = name;
++/* Returns a static string with the directroy from which the module
++   has been loaded.  Returns an empty string on error. */
++static char *w32_get_module_dir(void)
++{
++        static char *moddir;
++
++        if (!moddir) {
++                char name[MAX_PATH+10];
++                char *p;
++
++                if ( !GetModuleFileNameA (0, name, sizeof (name)-10) )
++                        *name = 0;
++                else {
++                        p = strrchr (name, '\\');
++                        if (p)
++                                *p = 0;
++                        else
++                                *name = 0;
++                }
++                moddir = g_strdup (name);
+         }
+-        p++;
+-        strcpy (p, "\\share\\locale");
+-        return g_strdup (name);
++        return moddir;
+ }
+ #endif /* G_OS_WIN32 */
+@@ -2008,7 +2012,8 @@
+ #ifdef G_OS_WIN32
+       if (!loc_dir)
+-                loc_dir = w32_get_locale_dir();
++              loc_dir = g_strconcat(w32_get_module_dir(), G_DIR_SEPARATOR_S,
++                                      "\\share\\locale", NULL);
+ #endif
+       if (!loc_dir)
+               loc_dir = LOCALEDIR;
+@@ -2133,7 +2138,7 @@
+       static gchar *plugin_dir = NULL;
+       if (!plugin_dir)
+-                plugin_dir = g_strconcat(get_locale_dir(),
++                plugin_dir = g_strconcat(w32_get_module_dir(),
+                                          "\\lib\\sylpheed-claws\\plugins\\",
+                                          NULL);
+       return plugin_dir;
+
+
diff --git a/patches/sylpheed-claws-2.3.1/03-std-plugins.patch b/patches/sylpheed-claws-2.3.1/03-std-plugins.patch
new file mode 100755 (executable)
index 0000000..c7b8052
--- /dev/null
@@ -0,0 +1,110 @@
+#! /bin/sh
+patch -p1 -f $* < $0
+exit $?
+
+Force loading of the PGP plugins.
+
+
+2006-01-13  Werner Koch  <wk@g10code.com>
+
+       * src/common/plugin.c (plugin_load_standard_plugins): New.
+       (plugin_load_deps): Made more robust.
+       * src/main.c (main): Call it here.
+
+diff -rup sylpheed-claws-2.2.0/src/common/plugin.c sylpheed-claws-2.2.0-new/src/common/plugin.c
+--- sylpheed-claws-2.2.0/src/common/plugin.c   2006-05-08 09:09:55.000000000 +0200
++++ sylpheed-claws-2.2.0-new/src/common/plugin.c       2006-05-29 01:24:48.000000000 +0200
+@@ -64,6 +64,11 @@ static gint list_find_by_string(gconstpo
+ static gint list_find_by_plugin_filename(const Plugin *plugin, const gchar *filename)
+ {
++        /* FIXME: There is a problem in case of symlinks or when a
++           user tries to load a plugin with the same name from a
++           different directory.  I think it would be better to compare
++           only the basename of the filename here (case-insensitive on
++           W32). */
+         g_return_val_if_fail(plugin, 1);
+         g_return_val_if_fail(plugin->filename, 1);
+         g_return_val_if_fail(filename, 1);
+@@ -146,9 +151,11 @@ static gint plugin_load_deps(const gchar
+       gchar *deps_file = NULL;
+       FILE *fp = NULL;
+       gchar buf[BUFFSIZE];
++        gchar *p;
+         tmp = g_strdup(filename);
+-      *strrchr(tmp, '.') = '\0';
++      if( (p = strrchr(tmp, '.')) )
++          *p = '\0';
+       deps_file = g_strconcat(tmp, ".deps", NULL);
+       g_free(tmp);
+       
+@@ -390,6 +397,43 @@ void plugin_unload_all(const gchar *type
+       }
+ }
++
++/* Load those plugins we always want to use.  No error output; just
++ * try. */
++void plugin_load_standard_plugins (void)
++{
++        static const char *names[] = {
++                "pgpmime",
++                "pgpinline",
++                NULL
++        };
++        int i;
++        gchar *error, *filename;
++        
++        for (i=0; names[i]; i++) {
++                /* Simple hack to check whether the plugin has already
++                 * been loaded but checking only for the basename. */
++                GSList *cur = plugins;
++                for(; cur; cur = cur->next) {
++                        Plugin *p = (Plugin *)cur->data;
++                        if (strstr(p->filename, names[i]))
++                                break;
++                }
++                if (!cur) { /* Not yet loaded. */
++                        /* FIXME: get_plugin_dir () returns with a trailing
++                         * (back)slash; this should be fixed so that we can use
++                         * g_module_build_path here. */
++                        filename = g_strconcat (get_plugin_dir(),
++                                                names[i], NULL);
++                        error = NULL;
++                        plugin_load(filename, &error);
++                        g_free (error);
++                        g_free(filename);
++                }
++        }
++}
++
++
+ GSList *plugin_get_list(void)
+ {
+       return g_slist_copy(plugins);
+diff -rup sylpheed-claws-2.2.0/src/common/plugin.h sylpheed-claws-2.2.0-new/src/common/plugin.h
+--- sylpheed-claws-2.2.0/src/common/plugin.h   2006-05-08 09:09:55.000000000 +0200
++++ sylpheed-claws-2.2.0-new/src/common/plugin.h       2006-05-29 01:24:48.000000000 +0200
+@@ -38,6 +38,7 @@ void plugin_unload           (Plugin          *plugin);
+ void plugin_load_all          (const gchar     *type);
+ void plugin_unload_all                (const gchar     *type);
+ void plugin_save_list         (void);
++void plugin_load_standard_plugins (void);
+ GSList *plugin_get_list               (void);
+ GSList *plugin_get_unloaded_list(void);
+diff -rup sylpheed-claws-2.2.0/src/main.c sylpheed-claws-2.2.0-new/src/main.c
+--- sylpheed-claws-2.2.0/src/main.c    2006-05-08 09:09:55.000000000 +0200
++++ sylpheed-claws-2.2.0-new/src/main.c        2006-05-29 01:25:35.000000000 +0200
+@@ -543,7 +543,9 @@ int main(int argc, char *argv[])
+                                    "Check the Plugins configuration "
+                                    "for more information."));
+       }
+-      
++
++      plugin_load_standard_plugins ();
++       
+       if (!folder_have_mailbox()) {
+               alertpanel_error(_("Sylpheed-Claws has detected a configured "
+                                  "mailbox, but could not load it. It is "
diff --git a/patches/sylpheed-claws-2.3.1/04-pgpcore-def.patch b/patches/sylpheed-claws-2.3.1/04-pgpcore-def.patch
new file mode 100755 (executable)
index 0000000..4596613
--- /dev/null
@@ -0,0 +1,30 @@
+#! /bin/sh
+patch -p1 -f $* < $0
+exit $?
+
+2006-06-26  Werner Koch  <wk@g10code.com>
+
+       * src/plugins/pgpcore/sylpheed.def: Add privacy_get_error and
+       privacy_set_error.
+
+2006-05-29  Marcus Brinkmann  <marcus@g10code.com>
+
+       * src/plugins/pgpcore/sylpheed.def: Add alertpanel_error.
+
+--- orig/sylpheed-claws-2.3.1/src/plugins/pgpcore/sylpheed.def 2006-06-20 10:31:44.000000000 +0200
++++ sylpheed-claws-2.3.1/src/plugins/pgpcore/sylpheed.def      2006-06-26 09:16:11.000000000 +0200
+@@ -2,6 +2,7 @@ LIBRARY SYLPHEED-CLAWS.EXE
+ EXPORTS
+ alertpanel
+ alertpanel_full
++alertpanel_error
+ copy_file_part
+ debug_print_real
+ debug_srcname
+@@ -30,3 +31,5 @@ prefs_set_default
+ prefs_write_open
+ prefs_write_param
+ sylpheed_get_version
++privacy_set_error
++privacy_get_error
+
diff --git a/patches/sylpheed-claws-2.3.1/05-pgpinline-def.patch b/patches/sylpheed-claws-2.3.1/05-pgpinline-def.patch
new file mode 100755 (executable)
index 0000000..c98a7ed
--- /dev/null
@@ -0,0 +1,19 @@
+#! /bin/sh
+patch -p1 -f $* < $0
+exit $?
+
+2006-06-26  Werner Koch  <wk@g10code.com>
+
+       * src/plugins/pgpinline/sylpheed.def: Add privacy_get_error and
+       privacy_set_error.
+
+
+--- orig/sylpheed-claws-2.3.1/src/plugins/pgpinline/sylpheed.def       2006-06-20 10:31:44.000000000 +0200
++++ sylpheed-claws-2.3.1/src/plugins/pgpinline/sylpheed.def    2006-06-26 09:16:58.000000000 +0200
+@@ -17,3 +17,5 @@ procmime_mimeinfo_parent
+ procmime_scan_file
+ procmime_write_mimeinfo
+ sylpheed_get_version
++privacy_set_error
++privacy_get_error
+
diff --git a/patches/sylpheed-claws-2.3.1/06-pgpmime-def.patch b/patches/sylpheed-claws-2.3.1/06-pgpmime-def.patch
new file mode 100755 (executable)
index 0000000..2d25910
--- /dev/null
@@ -0,0 +1,20 @@
+#! /bin/sh
+patch -p1 -f $* < $0
+exit $?
+
+2006-06-26  Werner Koch  <wk@g10code.com>
+
+       * src/plugins/pgpmime/sylpheed.def: Add privacy_get_error and
+       privacy_set_error.
+
+
+--- orig/sylpheed-claws-2.3.1/src/plugins/pgpmime/sylpheed.def 2006-06-20 10:31:44.000000000 +0200
++++ sylpheed-claws-2.3.1/src/plugins/pgpmime/sylpheed.def      2006-06-26 09:16:44.000000000 +0200
+@@ -16,3 +16,5 @@ procmime_mimeinfo_parent
+ procmime_scan_file
+ procmime_write_mimeinfo
+ sylpheed_get_version
++privacy_set_error
++privacy_get_error
+
+
diff --git a/patches/sylpheed-claws-2.3.1/07-mbox.patch b/patches/sylpheed-claws-2.3.1/07-mbox.patch
new file mode 100755 (executable)
index 0000000..163eb36
--- /dev/null
@@ -0,0 +1,43 @@
+#! /bin/sh
+patch -p1 -f $* < $0
+exit $?
+
+2006-06-26  Werner Koch  <wk@g10code.com>
+
+       * src/mbox.c (lock_mbox, unlock_mbox) [G_OS_WIN32]: Do not use
+       struct flock.
+
+
+--- orig/sylpheed-claws-2.3.1/src/mbox.c       2006-06-20 10:31:43.000000000 +0200
++++ sylpheed-claws-2.3.1/src/mbox.c    2006-06-26 09:11:36.000000000 +0200
+@@ -279,7 +279,7 @@ gint lock_mbox(const gchar *base, LockTy
+       } else if (type == LOCK_FLOCK) {
+               gint lockfd;
+               gboolean fcntled = FALSE;
+-#if HAVE_FCNTL_H
++#if HAVE_FCNTL_H && !defined(G_OS_WIN32)
+               struct flock fl;
+               fl.l_type = F_WRLCK;
+               fl.l_whence = SEEK_SET;
+@@ -296,7 +296,7 @@ gint lock_mbox(const gchar *base, LockTy
+                       return -1;
+               }
+               
+-#if HAVE_FCNTL_H
++#if HAVE_FCNTL_H && !defined(G_OS_WIN32)
+               if (fcntl(lockfd, F_SETLK, &fl) == -1) {
+                       g_warning("can't fnctl %s (%s)", base, strerror(errno));
+                       return -1;
+@@ -349,7 +349,7 @@ gint unlock_mbox(const gchar *base, gint
+               return 0;
+       } else if (type == LOCK_FLOCK) {
+               gboolean fcntled = FALSE;
+-#if HAVE_FCNTL_H
++#if HAVE_FCNTL_H && !defined(G_OS_WIN32)
+               struct flock fl;
+               fl.l_type = F_UNLCK;
+               fl.l_whence = SEEK_SET;
+
+
+
+