[mysql/f16] Update to MySQL 5.5.29, sync with master

Tom Lane tgl at fedoraproject.org
Wed Jan 2 20:14:12 UTC 2013


commit 2c19b2acbc9123f27024e905e1c72e4cd24bf499
Author: Tom Lane <tgl at redhat.com>
Date:   Wed Jan 2 15:12:10 2013 -0500

    Update to MySQL 5.5.29, sync with master

 .gitignore                  |    2 +-
 my.cnf                      |    8 ++--
 mysql-cipherspec.patch      |   60 ++++++++++----------
 mysql-cve-2012-5611.patch   |   81 ----------------------------
 mysql-dubious-exports.patch |  124 +++++++++++++++++++++---------------------
 mysql-errno.patch           |    8 ++--
 mysql-plugin-bool.patch     |   40 +++++++-------
 mysql-s390-tsc.patch        |   18 +++---
 mysql-stack-guard.patch     |   12 ++--
 mysql-string-overflow.patch |   26 +++++-----
 mysql-strmov.patch          |    8 ++--
 mysql-va-list.patch         |   14 +++---
 mysql-versioning.patch      |    8 ++--
 mysql.spec                  |   20 ++++++--
 mysqld-wait-ready           |    2 +-
 sources                     |    2 +-
 16 files changed, 182 insertions(+), 251 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index d54f41e..a7f3c6c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/mysql-5.5.28-nodocs.tar.gz
+/mysql-5.5.29-nodocs.tar.gz
diff --git a/my.cnf b/my.cnf
index 692a4bb..96282ea 100644
--- a/my.cnf
+++ b/my.cnf
@@ -1,12 +1,12 @@
 [mysqld]
-# Settings user and group are ignored when systemd is used.
-# If you need to run mysqld under different user or group, 
-# customize your systemd unit file for mysqld according to the
-# instructions in http://fedoraproject.org/wiki/Systemd
 datadir=/var/lib/mysql
 socket=/var/lib/mysql/mysql.sock
 # Disabling symbolic-links is recommended to prevent assorted security risks
 symbolic-links=0
+# Settings user and group are ignored when systemd is used.
+# If you need to run mysqld under a different user or group,
+# customize your systemd unit file for mysqld according to the
+# instructions in http://fedoraproject.org/wiki/Systemd
 
 [mysqld_safe]
 log-error=/var/log/mysqld.log
diff --git a/mysql-cipherspec.patch b/mysql-cipherspec.patch
index 18b8fee..5210055 100644
--- a/mysql-cipherspec.patch
+++ b/mysql-cipherspec.patch
@@ -4,10 +4,10 @@ This patch enhances connect command by an option to specify a cipher
 and tests are adjusted to specify the expected cipher explicitly.
 Upstream bug report: http://bugs.mysql.com/bug.php?id=64461
 
-diff -Naur mysql-5.5.27.orig/client/mysqltest.cc mysql-5.5.27/client/mysqltest.cc
---- mysql-5.5.27.orig/client/mysqltest.cc	2012-07-20 13:38:02.000000000 -0400
-+++ mysql-5.5.27/client/mysqltest.cc	2012-08-05 01:01:21.502130550 -0400
-@@ -5458,6 +5458,7 @@
+diff -up mysql-5.5.28/client/mysqltest.cc.p18 mysql-5.5.28/client/mysqltest.cc
+--- mysql-5.5.28/client/mysqltest.cc.p18	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/client/mysqltest.cc	2012-12-06 14:25:46.370001422 +0100
+@@ -5458,6 +5458,7 @@ void do_connect(struct st_command *comma
    my_bool con_ssl= 0, con_compress= 0;
    my_bool con_pipe= 0, con_shm= 0, con_cleartext_enable= 0;
    struct st_connection* con_slot;
@@ -15,7 +15,7 @@ diff -Naur mysql-5.5.27.orig/client/mysqltest.cc mysql-5.5.27/client/mysqltest.c
  
    static DYNAMIC_STRING ds_connection_name;
    static DYNAMIC_STRING ds_host;
-@@ -5548,6 +5549,8 @@
+@@ -5548,6 +5549,8 @@ void do_connect(struct st_command *comma
        con_shm= 1;
      else if (!strncmp(con_options, "CLEARTEXT", 9))
        con_cleartext_enable= 1;
@@ -24,7 +24,7 @@ diff -Naur mysql-5.5.27.orig/client/mysqltest.cc mysql-5.5.27/client/mysqltest.c
      else
        die("Illegal option to connect: %.*s", 
            (int) (end - con_options), con_options);
-@@ -5595,8 +5598,11 @@
+@@ -5595,8 +5598,11 @@ void do_connect(struct st_command *comma
    if (con_ssl)
    {
  #if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
@@ -37,10 +37,10 @@ diff -Naur mysql-5.5.27.orig/client/mysqltest.cc mysql-5.5.27/client/mysqltest.c
  #if MYSQL_VERSION_ID >= 50000
      /* Turn on ssl_verify_server_cert only if host is "localhost" */
      opt_ssl_verify_server_cert= !strcmp(ds_host.str, "localhost");
-diff -Naur mysql-5.5.27.orig/mysql-test/t/openssl_1.test mysql-5.5.27/mysql-test/t/openssl_1.test
---- mysql-5.5.27.orig/mysql-test/t/openssl_1.test	2012-07-20 13:38:03.000000000 -0400
-+++ mysql-5.5.27/mysql-test/t/openssl_1.test	2012-08-05 01:00:27.798822919 -0400
-@@ -20,13 +20,13 @@
+diff -up mysql-5.5.28/mysql-test/t/openssl_1.test.p18 mysql-5.5.28/mysql-test/t/openssl_1.test
+--- mysql-5.5.28/mysql-test/t/openssl_1.test.p18	2012-08-29 10:50:47.000000000 +0200
++++ mysql-5.5.28/mysql-test/t/openssl_1.test	2012-12-06 14:25:46.371001424 +0100
+@@ -20,13 +20,13 @@ grant select on test.* to ssl_user4 at loca
  grant select on test.* to ssl_user5 at localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
  flush privileges;
  
@@ -59,7 +59,7 @@ diff -Naur mysql-5.5.27.orig/mysql-test/t/openssl_1.test mysql-5.5.27/mysql-test
  
  connection con1;
  # Check ssl turned on
-@@ -119,7 +119,7 @@
+@@ -125,7 +125,7 @@ drop table t1;
  # verification of servers certificate by setting both ca certificate
  # and ca path to NULL
  #
@@ -68,7 +68,7 @@ diff -Naur mysql-5.5.27.orig/mysql-test/t/openssl_1.test mysql-5.5.27/mysql-test
  --echo End of 5.0 tests
  
  #
-@@ -244,7 +244,7 @@
+@@ -250,7 +250,7 @@ select 'is still running; no cipher requ
  
  GRANT SELECT ON test.* TO bug42158 at localhost REQUIRE X509;
  FLUSH PRIVILEGES;
@@ -77,21 +77,9 @@ diff -Naur mysql-5.5.27.orig/mysql-test/t/openssl_1.test mysql-5.5.27/mysql-test
  SHOW STATUS LIKE 'Ssl_cipher';
  disconnect con1;
  connection default;
-diff -Naur mysql-5.5.27.orig/mysql-test/t/ssl.test mysql-5.5.27/mysql-test/t/ssl.test
---- mysql-5.5.27.orig/mysql-test/t/ssl.test	2012-07-20 13:38:03.000000000 -0400
-+++ mysql-5.5.27/mysql-test/t/ssl.test	2012-08-05 01:00:27.800822919 -0400
-@@ -6,7 +6,7 @@
- # Save the initial number of concurrent sessions
- --source include/count_sessions.inc
- 
--connect (ssl_con,localhost,root,,,,,SSL);
-+connect (ssl_con,localhost,root,,,,,SSL CIPHER:DHE-RSA-AES256-SHA);
- 
- # Check ssl turned on
- SHOW STATUS LIKE 'Ssl_cipher';
-diff -Naur mysql-5.5.27.orig/mysql-test/t/ssl_8k_key.test mysql-5.5.27/mysql-test/t/ssl_8k_key.test
---- mysql-5.5.27.orig/mysql-test/t/ssl_8k_key.test	2012-07-20 13:38:03.000000000 -0400
-+++ mysql-5.5.27/mysql-test/t/ssl_8k_key.test	2012-08-05 01:00:27.799822918 -0400
+diff -up mysql-5.5.28/mysql-test/t/ssl_8k_key.test.p18 mysql-5.5.28/mysql-test/t/ssl_8k_key.test
+--- mysql-5.5.28/mysql-test/t/ssl_8k_key.test.p18	2012-08-29 10:50:47.000000000 +0200
++++ mysql-5.5.28/mysql-test/t/ssl_8k_key.test	2012-12-06 14:25:46.371001424 +0100
 @@ -2,7 +2,7 @@
  #
  # Bug#29784 YaSSL assertion failure when reading 8k key.
@@ -101,9 +89,9 @@ diff -Naur mysql-5.5.27.orig/mysql-test/t/ssl_8k_key.test mysql-5.5.27/mysql-tes
  
  ##  This test file is for testing encrypted communication only, not other
  ##  encryption routines that the SSL library happens to provide!
-diff -Naur mysql-5.5.27.orig/mysql-test/t/ssl_compress.test mysql-5.5.27/mysql-test/t/ssl_compress.test
---- mysql-5.5.27.orig/mysql-test/t/ssl_compress.test	2012-07-20 13:38:03.000000000 -0400
-+++ mysql-5.5.27/mysql-test/t/ssl_compress.test	2012-08-05 01:00:27.799822918 -0400
+diff -up mysql-5.5.28/mysql-test/t/ssl_compress.test.p18 mysql-5.5.28/mysql-test/t/ssl_compress.test
+--- mysql-5.5.28/mysql-test/t/ssl_compress.test.p18	2012-08-29 10:50:47.000000000 +0200
++++ mysql-5.5.28/mysql-test/t/ssl_compress.test	2012-12-06 14:25:46.371001424 +0100
 @@ -7,7 +7,7 @@
  # Save the initial number of concurrent sessions
  --source include/count_sessions.inc
@@ -113,3 +101,15 @@ diff -Naur mysql-5.5.27.orig/mysql-test/t/ssl_compress.test mysql-5.5.27/mysql-t
  
  # Check ssl turned on
  SHOW STATUS LIKE 'Ssl_cipher';
+diff -up mysql-5.5.28/mysql-test/t/ssl.test.p18 mysql-5.5.28/mysql-test/t/ssl.test
+--- mysql-5.5.28/mysql-test/t/ssl.test.p18	2012-08-29 10:50:47.000000000 +0200
++++ mysql-5.5.28/mysql-test/t/ssl.test	2012-12-06 14:25:46.371001424 +0100
+@@ -6,7 +6,7 @@
+ # Save the initial number of concurrent sessions
+ --source include/count_sessions.inc
+ 
+-connect (ssl_con,localhost,root,,,,,SSL);
++connect (ssl_con,localhost,root,,,,,SSL CIPHER:DHE-RSA-AES256-SHA);
+ 
+ # Check ssl turned on
+ SHOW STATUS LIKE 'Ssl_cipher';
diff --git a/mysql-dubious-exports.patch b/mysql-dubious-exports.patch
index 0ccb412..4a88d1d 100644
--- a/mysql-dubious-exports.patch
+++ b/mysql-dubious-exports.patch
@@ -9,10 +9,10 @@ It doesn't seem worth trying to get rid of all the internal symbols exposed
 by mysql.h, but these two are relatively easy to get rid of.
 
 
-diff -Naur mysql-5.5.14.orig/client/mysqladmin.cc mysql-5.5.14/client/mysqladmin.cc
---- mysql-5.5.14.orig/client/mysqladmin.cc	2011-06-21 12:42:41.000000000 -0400
-+++ mysql-5.5.14/client/mysqladmin.cc	2011-07-12 12:19:59.578066771 -0400
-@@ -20,6 +20,7 @@
+diff -up mysql-5.5.28/client/mysqladmin.cc.p8 mysql-5.5.28/client/mysqladmin.cc
+--- mysql-5.5.28/client/mysqladmin.cc.p8	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/client/mysqladmin.cc	2012-12-06 14:16:14.598520859 +0100
+@@ -21,6 +21,7 @@
  #include <my_pthread.h>				/* because of signal()	*/
  #include <sys/stat.h>
  #include <mysql.h>
@@ -20,7 +20,7 @@ diff -Naur mysql-5.5.14.orig/client/mysqladmin.cc mysql-5.5.14/client/mysqladmin
  #include <sql_common.h>
  #include <welcome_copyright_notice.h>           /* ORACLE_WELCOME_COPYRIGHT_NOTICE */
  
-@@ -975,9 +976,9 @@
+@@ -989,9 +990,9 @@ static int execute_commands(MYSQL *mysql
            }
          }
          if (old)
@@ -32,10 +32,10 @@ diff -Naur mysql-5.5.14.orig/client/mysqladmin.cc mysql-5.5.14/client/mysqladmin
        }
        else
  	crypted_pw[0]=0;			/* No password */
-diff -Naur mysql-5.5.14.orig/include/errmsg.h mysql-5.5.14/include/errmsg.h
---- mysql-5.5.14.orig/include/errmsg.h	2011-06-21 12:42:39.000000000 -0400
-+++ mysql-5.5.14/include/errmsg.h	2011-07-12 11:55:29.194204015 -0400
-@@ -24,6 +24,7 @@
+diff -up mysql-5.5.28/include/errmsg.h.p8 mysql-5.5.28/include/errmsg.h
+--- mysql-5.5.28/include/errmsg.h.p8	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/include/errmsg.h	2012-12-06 14:16:14.598520859 +0100
+@@ -24,6 +24,7 @@ extern "C" {
  #endif
  void	init_client_errs(void);
  void	finish_client_errs(void);
@@ -43,31 +43,36 @@ diff -Naur mysql-5.5.14.orig/include/errmsg.h mysql-5.5.14/include/errmsg.h
  extern const char *client_errors[];	/* Error messages */
  #ifdef	__cplusplus
  }
-diff -Naur mysql-5.5.14.orig/include/my_sys.h mysql-5.5.14/include/my_sys.h
---- mysql-5.5.14.orig/include/my_sys.h	2011-06-21 12:42:39.000000000 -0400
-+++ mysql-5.5.14/include/my_sys.h	2011-07-12 11:55:29.195231427 -0400
-@@ -223,6 +223,7 @@
+diff -up mysql-5.5.28/include/mysql_com.h.p8 mysql-5.5.28/include/mysql_com.h
+--- mysql-5.5.28/include/mysql_com.h.p8	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/include/mysql_com.h	2012-12-06 14:16:14.599520860 +0100
+@@ -452,6 +452,7 @@ my_bool	my_net_init(NET *net, Vio* vio);
+ void	my_net_local_init(NET *net);
+ void	net_end(NET *net);
+   void	net_clear(NET *net, my_bool clear_buffer);
++#define net_realloc mysql_net_realloc		/* namespace sanity */
+ my_bool net_realloc(NET *net, size_t length);
+ my_bool	net_flush(NET *net);
+ my_bool	my_net_write(NET *net,const unsigned char *packet, size_t len);
+@@ -533,14 +534,12 @@ double my_rnd(struct rand_struct *);
+ void create_random_string(char *to, unsigned int length, struct rand_struct *rand_st);
  
- /* charsets */
- #define MY_ALL_CHARSETS_SIZE 2048
-+#define default_charset_info mysql_default_charset_info	/* namespace sanity */
- extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *default_charset_info;
- extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE];
- extern CHARSET_INFO compiled_charsets[];
-@@ -900,6 +901,9 @@
- extern uint get_collation_number(const char *name);
- extern const char *get_charset_name(uint cs_number);
+ void hash_password(unsigned long *to, const char *password, unsigned int password_len);
+-void make_scrambled_password_323(char *to, const char *password);
+ void scramble_323(char *to, const char *message, const char *password);
+ my_bool check_scramble_323(const unsigned char *reply, const char *message,
+                            unsigned long *salt);
+ void get_salt_from_password_323(unsigned long *res, const char *password);
+ void make_password_from_salt_323(char *to, const unsigned long *salt);
  
-+#define get_charset mysql_get_charset		/* namespace sanity */
-+#define get_charset_by_csname mysql_get_charset_by_csname
-+
- extern CHARSET_INFO *get_charset(uint cs_number, myf flags);
- extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags);
- extern CHARSET_INFO *get_charset_by_csname(const char *cs_name,
-diff -Naur mysql-5.5.14.orig/include/mysql.h.pp mysql-5.5.14/include/mysql.h.pp
---- mysql-5.5.14.orig/include/mysql.h.pp	2011-06-21 12:42:39.000000000 -0400
-+++ mysql-5.5.14/include/mysql.h.pp	2011-07-12 11:58:43.662068564 -0400
-@@ -86,7 +86,7 @@
+-void make_scrambled_password(char *to, const char *password);
+ void scramble(char *to, const char *message, const char *password);
+ my_bool check_scramble(const unsigned char *reply, const char *message,
+                        const unsigned char *hash_stage2);
+diff -up mysql-5.5.28/include/mysql.h.pp.p8 mysql-5.5.28/include/mysql.h.pp
+--- mysql-5.5.28/include/mysql.h.pp.p8	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/include/mysql.h.pp	2012-12-06 14:16:14.598520859 +0100
+@@ -86,7 +86,7 @@ my_bool my_net_init(NET *net, Vio* vio);
  void my_net_local_init(NET *net);
  void net_end(NET *net);
    void net_clear(NET *net, my_bool clear_buffer);
@@ -76,7 +81,7 @@ diff -Naur mysql-5.5.14.orig/include/mysql.h.pp mysql-5.5.14/include/mysql.h.pp
  my_bool net_flush(NET *net);
  my_bool my_net_write(NET *net,const unsigned char *packet, size_t len);
  my_bool net_write_command(NET *net,unsigned char command,
-@@ -128,13 +128,11 @@
+@@ -128,13 +128,11 @@ void randominit(struct rand_struct *, un
  double my_rnd(struct rand_struct *);
  void create_random_string(char *to, unsigned int length, struct rand_struct *rand_st);
  void hash_password(unsigned long *to, const char *password, unsigned int password_len);
@@ -90,36 +95,31 @@ diff -Naur mysql-5.5.14.orig/include/mysql.h.pp mysql-5.5.14/include/mysql.h.pp
  void scramble(char *to, const char *message, const char *password);
  my_bool check_scramble(const unsigned char *reply, const char *message,
                         const unsigned char *hash_stage2);
-diff -Naur mysql-5.5.14.orig/include/mysql_com.h mysql-5.5.14/include/mysql_com.h
---- mysql-5.5.14.orig/include/mysql_com.h	2011-06-21 12:42:39.000000000 -0400
-+++ mysql-5.5.14/include/mysql_com.h	2011-07-12 11:58:52.166065391 -0400
-@@ -452,6 +452,7 @@
- void	my_net_local_init(NET *net);
- void	net_end(NET *net);
-   void	net_clear(NET *net, my_bool clear_buffer);
-+#define net_realloc mysql_net_realloc		/* namespace sanity */
- my_bool net_realloc(NET *net, size_t length);
- my_bool	net_flush(NET *net);
- my_bool	my_net_write(NET *net,const unsigned char *packet, size_t len);
-@@ -533,14 +534,12 @@
- void create_random_string(char *to, unsigned int length, struct rand_struct *rand_st);
+diff -up mysql-5.5.28/include/my_sys.h.p8 mysql-5.5.28/include/my_sys.h
+--- mysql-5.5.28/include/my_sys.h.p8	2012-12-06 14:09:15.218170154 +0100
++++ mysql-5.5.28/include/my_sys.h	2012-12-06 14:16:14.598520859 +0100
+@@ -218,6 +218,7 @@ extern uint    my_large_page_size;
  
- void hash_password(unsigned long *to, const char *password, unsigned int password_len);
--void make_scrambled_password_323(char *to, const char *password);
- void scramble_323(char *to, const char *message, const char *password);
- my_bool check_scramble_323(const unsigned char *reply, const char *message,
-                            unsigned long *salt);
- void get_salt_from_password_323(unsigned long *res, const char *password);
- void make_password_from_salt_323(char *to, const unsigned long *salt);
+ /* charsets */
+ #define MY_ALL_CHARSETS_SIZE 2048
++#define default_charset_info mysql_default_charset_info	/* namespace sanity */
+ extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *default_charset_info;
+ extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE];
+ extern CHARSET_INFO compiled_charsets[];
+@@ -895,6 +896,9 @@ extern uint get_charset_number(const cha
+ extern uint get_collation_number(const char *name);
+ extern const char *get_charset_name(uint cs_number);
  
--void make_scrambled_password(char *to, const char *password);
- void scramble(char *to, const char *message, const char *password);
- my_bool check_scramble(const unsigned char *reply, const char *message,
-                        const unsigned char *hash_stage2);
-diff -Naur mysql-5.5.14.orig/sql/password.c mysql-5.5.14/sql/password.c
---- mysql-5.5.14.orig/sql/password.c	2011-06-21 12:42:40.000000000 -0400
-+++ mysql-5.5.14/sql/password.c	2011-07-12 11:59:29.194068612 -0400
-@@ -154,23 +154,6 @@
++#define get_charset mysql_get_charset		/* namespace sanity */
++#define get_charset_by_csname mysql_get_charset_by_csname
++
+ extern CHARSET_INFO *get_charset(uint cs_number, myf flags);
+ extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags);
+ extern CHARSET_INFO *get_charset_by_csname(const char *cs_name,
+diff -up mysql-5.5.28/sql/password.c.p8 mysql-5.5.28/sql/password.c
+--- mysql-5.5.28/sql/password.c.p8	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/sql/password.c	2012-12-06 14:16:14.599520860 +0100
+@@ -155,23 +155,6 @@ void my_make_scrambled_password_323(char
  
  
  /*
@@ -143,7 +143,7 @@ diff -Naur mysql-5.5.14.orig/sql/password.c mysql-5.5.14/sql/password.c
      Scramble string with password.
      Used in pre 4.1 authentication phase.
    SYNOPSIS
-@@ -433,23 +416,6 @@
+@@ -434,23 +417,6 @@ void my_make_scrambled_password(char *to
    
  
  /*
diff --git a/mysql-errno.patch b/mysql-errno.patch
index 93e61de..ce9d7a1 100644
--- a/mysql-errno.patch
+++ b/mysql-errno.patch
@@ -1,10 +1,10 @@
 "extern int errno" is just a really bad idea.
 
 
-diff -Naur mysql-5.5.8.orig/include/my_sys.h mysql-5.5.8/include/my_sys.h
---- mysql-5.5.8.orig/include/my_sys.h	2010-12-03 12:58:24.000000000 -0500
-+++ mysql-5.5.8/include/my_sys.h	2010-12-20 21:20:12.622190325 -0500
-@@ -201,13 +201,8 @@
+diff -up mysql-5.5.28/include/my_sys.h.p1 mysql-5.5.28/include/my_sys.h
+--- mysql-5.5.28/include/my_sys.h.p1	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/include/my_sys.h	2012-12-06 14:09:15.218170154 +0100
+@@ -197,13 +197,8 @@ extern void my_large_free(uchar *ptr);
  #define my_afree(PTR) my_free(PTR)
  #endif /* HAVE_ALLOCA */
  
diff --git a/mysql-plugin-bool.patch b/mysql-plugin-bool.patch
index a8458f4..abea580 100644
--- a/mysql-plugin-bool.patch
+++ b/mysql-plugin-bool.patch
@@ -4,22 +4,10 @@ machines where char is unsigned print "255" instead.  Filed upstream at
 http://bugs.mysql.com/bug.php?id=59905
 
 
-diff -Naur mysql-5.5.8.orig/sql/sql_plugin.cc mysql-5.5.8/sql/sql_plugin.cc
---- mysql-5.5.8.orig/sql/sql_plugin.cc	2010-12-03 12:58:26.000000000 -0500
-+++ mysql-5.5.8/sql/sql_plugin.cc	2011-02-01 20:34:10.218305349 -0500
-@@ -2024,7 +2024,7 @@
-       goto err;
-     result= (int) tmp;
-   }
--  *(my_bool *) save= -result;
-+  *(my_bool *) save= result ? true : false;
-   return 0;
- err:
-   return 1;
-diff -Naur mysql-5.5.8.orig/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result mysql-5.5.8/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result
---- mysql-5.5.8.orig/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result	2010-12-03 12:58:25.000000000 -0500
-+++ mysql-5.5.8/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result	2011-02-01 21:53:20.006302245 -0500
-@@ -45,7 +45,7 @@
+diff -up mysql-5.5.28/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result.p10 mysql-5.5.28/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result
+--- mysql-5.5.28/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result.p10	2012-08-29 10:50:47.000000000 +0200
++++ mysql-5.5.28/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result	2012-12-06 14:20:53.078755855 +0100
+@@ -45,7 +45,7 @@ set session rpl_semi_sync_master_enabled
  ERROR HY000: Variable 'rpl_semi_sync_master_enabled' is a GLOBAL variable and should be set with SET GLOBAL
  select @@global.rpl_semi_sync_master_enabled;
  @@global.rpl_semi_sync_master_enabled
@@ -28,10 +16,10 @@ diff -Naur mysql-5.5.8.orig/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_ena
  select @@session.rpl_semi_sync_master_enabled;
  ERROR HY000: Variable 'rpl_semi_sync_master_enabled' is a GLOBAL variable
  show global variables like 'rpl_semi_sync_master_enabled';
-diff -Naur mysql-5.5.8.orig/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result mysql-5.5.8/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result
---- mysql-5.5.8.orig/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result	2010-12-03 12:58:26.000000000 -0500
-+++ mysql-5.5.8/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result	2011-02-01 21:53:59.689249491 -0500
-@@ -45,7 +45,7 @@
+diff -up mysql-5.5.28/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result.p10 mysql-5.5.28/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result
+--- mysql-5.5.28/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result.p10	2012-08-29 10:50:47.000000000 +0200
++++ mysql-5.5.28/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result	2012-12-06 14:20:53.078755855 +0100
+@@ -45,7 +45,7 @@ set session rpl_semi_sync_slave_enabled=
  ERROR HY000: Variable 'rpl_semi_sync_slave_enabled' is a GLOBAL variable and should be set with SET GLOBAL
  select @@global.rpl_semi_sync_slave_enabled;
  @@global.rpl_semi_sync_slave_enabled
@@ -40,3 +28,15 @@ diff -Naur mysql-5.5.8.orig/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enab
  select @@session.rpl_semi_sync_slave_enabled;
  ERROR HY000: Variable 'rpl_semi_sync_slave_enabled' is a GLOBAL variable
  show global variables like 'rpl_semi_sync_slave_enabled';
+diff -up mysql-5.5.28/sql/sql_plugin.cc.p10 mysql-5.5.28/sql/sql_plugin.cc
+--- mysql-5.5.28/sql/sql_plugin.cc.p10	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/sql/sql_plugin.cc	2012-12-06 14:20:53.078755855 +0100
+@@ -2094,7 +2094,7 @@ static int check_func_bool(THD *thd, str
+       goto err;
+     result= (int) tmp;
+   }
+-  *(my_bool *) save= -result;
++  *(my_bool *) save= result ? true : false;
+   return 0;
+ err:
+   return 1;
diff --git a/mysql-s390-tsc.patch b/mysql-s390-tsc.patch
index 00811a4..f995266 100644
--- a/mysql-s390-tsc.patch
+++ b/mysql-s390-tsc.patch
@@ -2,10 +2,10 @@ Support s390/s390x in performance schema's cycle-counting functions.
 Filed upstream at http://bugs.mysql.com/bug.php?id=59953
 
 
-diff -Naur mysql-5.5.8.orig/include/my_rdtsc.h mysql-5.5.8/include/my_rdtsc.h
---- mysql-5.5.8.orig/include/my_rdtsc.h	2010-12-03 12:58:24.000000000 -0500
-+++ mysql-5.5.8/include/my_rdtsc.h	2011-02-04 11:16:45.431459913 -0500
-@@ -124,6 +124,7 @@
+diff -up mysql-5.5.28/include/my_rdtsc.h.p11 mysql-5.5.28/include/my_rdtsc.h
+--- mysql-5.5.28/include/my_rdtsc.h.p11	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/include/my_rdtsc.h	2012-12-06 14:22:13.651823354 +0100
+@@ -125,6 +125,7 @@ C_MODE_END
  #define MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME      25
  #define MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME 26
  #define MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64       27
@@ -13,10 +13,10 @@ diff -Naur mysql-5.5.8.orig/include/my_rdtsc.h mysql-5.5.8/include/my_rdtsc.h
  
  #endif
  
-diff -Naur mysql-5.5.8.orig/mysys/my_rdtsc.c mysql-5.5.8/mysys/my_rdtsc.c
---- mysql-5.5.8.orig/mysys/my_rdtsc.c	2010-12-03 12:58:26.000000000 -0500
-+++ mysql-5.5.8/mysys/my_rdtsc.c	2011-02-04 11:16:45.432465577 -0500
-@@ -224,6 +224,13 @@
+diff -up mysql-5.5.28/mysys/my_rdtsc.c.p11 mysql-5.5.28/mysys/my_rdtsc.c
+--- mysql-5.5.28/mysys/my_rdtsc.c.p11	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/mysys/my_rdtsc.c	2012-12-06 14:22:13.672823375 +0100
+@@ -224,6 +224,13 @@ ulonglong my_timer_cycles(void)
      clock_gettime(CLOCK_SGI_CYCLE, &tp);
      return (ulonglong) tp.tv_sec * 1000000000 + (ulonglong) tp.tv_nsec;
    }
@@ -30,7 +30,7 @@ diff -Naur mysql-5.5.8.orig/mysys/my_rdtsc.c mysql-5.5.8/mysys/my_rdtsc.c
  #elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME)
    /* gethrtime may appear as either cycle or nanosecond counter */
    return (ulonglong) gethrtime();
-@@ -533,6 +540,8 @@
+@@ -533,6 +540,8 @@ void my_timer_init(MY_TIMER_INFO *mti)
    mti->cycles.routine= MY_TIMER_ROUTINE_ASM_GCC_SPARC32;
  #elif defined(__sgi) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_SGI_CYCLE)
    mti->cycles.routine= MY_TIMER_ROUTINE_SGI_CYCLE;
diff --git a/mysql-stack-guard.patch b/mysql-stack-guard.patch
index 0634560..c01c1a7 100644
--- a/mysql-stack-guard.patch
+++ b/mysql-stack-guard.patch
@@ -8,10 +8,10 @@ mysqld.cc; is it important to fix any of the others?
 Filed upstream at http://bugs.mysql.com/bug.php?id=35019
 
 
-diff -Naur mysql-5.5.8.orig/sql/mysqld.cc mysql-5.5.8/sql/mysqld.cc
---- mysql-5.5.8.orig/sql/mysqld.cc	2010-12-03 12:58:26.000000000 -0500
-+++ mysql-5.5.8/sql/mysqld.cc	2010-12-20 22:01:08.939186906 -0500
-@@ -2602,6 +2602,70 @@
+diff -up mysql-5.5.28/sql/mysqld.cc.p5 mysql-5.5.28/sql/mysqld.cc
+--- mysql-5.5.28/sql/mysqld.cc.p5	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/sql/mysqld.cc	2012-12-06 14:13:59.765407494 +0100
+@@ -2599,6 +2599,70 @@ static void init_signals(void)
  }
  
  
@@ -82,7 +82,7 @@ diff -Naur mysql-5.5.8.orig/sql/mysqld.cc mysql-5.5.8/sql/mysqld.cc
  static void start_signal_handler(void)
  {
    int error;
-@@ -2612,15 +2676,7 @@
+@@ -2609,15 +2673,7 @@ static void start_signal_handler(void)
  #if !defined(HAVE_DEC_3_2_THREADS)
    pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_SYSTEM);
    (void) pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED);
@@ -99,7 +99,7 @@ diff -Naur mysql-5.5.8.orig/sql/mysqld.cc mysql-5.5.8/sql/mysqld.cc
  #endif
  
    mysql_mutex_lock(&LOCK_thread_count);
-@@ -4361,36 +4417,8 @@
+@@ -4398,36 +4454,8 @@ int mysqld_main(int argc, char **argv)
      unireg_abort(1);				// Will do exit
  
    init_signals();
diff --git a/mysql-string-overflow.patch b/mysql-string-overflow.patch
index eaa11e8..eaa40f6 100644
--- a/mysql-string-overflow.patch
+++ b/mysql-string-overflow.patch
@@ -1,4 +1,4 @@
-These issues were found by Coverity static analysis tool, for more info 
+These issues were found by Coverity static analysis tool, for more info
 see messages by particular fixes (messages belong to 5.1.61).
 
 Filed upstream at http://bugs.mysql.com/bug.php?id=64631
@@ -7,10 +7,10 @@ Filed upstream at http://bugs.mysql.com/bug.php?id=64631
 Error: BUFFER_SIZE_WARNING:
 /builddir/build/BUILD/mysql-5.1.61/sql/sql_prepare.cc:2749: buffer_size_warning: Calling strncpy with a maximum size argument of 512 bytes on destination array "this->stmt->last_error" of size 512 bytes might leave the destination string unterminated.
 
-diff -Naur mysql-5.5.23.orig/sql/sql_prepare.cc mysql-5.5.23/sql/sql_prepare.cc
---- mysql-5.5.23.orig/sql/sql_prepare.cc	2012-03-29 15:07:12.000000000 -0400
-+++ mysql-5.5.23/sql/sql_prepare.cc	2012-04-27 22:19:09.196076848 -0400
-@@ -2871,7 +2871,7 @@
+diff -up mysql-5.5.28/sql/sql_prepare.cc.p20 mysql-5.5.28/sql/sql_prepare.cc
+--- mysql-5.5.28/sql/sql_prepare.cc.p20	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/sql/sql_prepare.cc	2012-12-06 14:27:28.647087401 +0100
+@@ -2879,7 +2879,7 @@ void mysql_stmt_get_longdata(THD *thd, c
    {
      stmt->state= Query_arena::STMT_ERROR;
      stmt->last_errno= thd->stmt_da->sql_errno();
@@ -25,10 +25,10 @@ Error: STRING_OVERFLOW:
 /builddir/build/BUILD/mysql-5.1.61/sql/sql_trigger.cc:2194: fixed_size_dest: You might overrun the 512 byte fixed-size string "this->m_parse_error_message" by copying "error_message" without checking the length.
 /builddir/build/BUILD/mysql-5.1.61/sql/sql_trigger.cc:2194: parameter_as_source: Note: This defect has an elevated risk because the source argument is a parameter of the current function.
 
-diff -Naur mysql-5.5.23.orig/sql/sql_trigger.cc mysql-5.5.23/sql/sql_trigger.cc
---- mysql-5.5.23.orig/sql/sql_trigger.cc	2012-03-29 15:07:12.000000000 -0400
-+++ mysql-5.5.23/sql/sql_trigger.cc	2012-04-27 22:19:09.198076947 -0400
-@@ -2260,7 +2260,7 @@
+diff -up mysql-5.5.28/sql/sql_trigger.cc.p20 mysql-5.5.28/sql/sql_trigger.cc
+--- mysql-5.5.28/sql/sql_trigger.cc.p20	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/sql/sql_trigger.cc	2012-12-06 14:27:28.648087398 +0100
+@@ -2260,7 +2260,7 @@ void Table_triggers_list::mark_fields_us
  void Table_triggers_list::set_parse_error_message(char *error_message)
  {
    m_has_unparseable_trigger= true;
@@ -43,10 +43,10 @@ Error: STRING_OVERFLOW:
 /builddir/build/BUILD/mysql-5.1.61/storage/innodb_plugin/handler/ha_innodb.cc:6544: fixed_size_dest: You might overrun the 512 byte fixed-size string "name2" by copying "name" without checking the length.
 /builddir/build/BUILD/mysql-5.1.61/storage/innodb_plugin/handler/ha_innodb.cc:6544: parameter_as_source: Note: This defect has an elevated risk because the source argument is a parameter of the current function.
 
-diff -Naur mysql-5.5.23.orig/storage/innobase/handler/ha_innodb.cc mysql-5.5.23/storage/innobase/handler/ha_innodb.cc
---- mysql-5.5.23.orig/storage/innobase/handler/ha_innodb.cc	2012-03-29 15:07:11.000000000 -0400
-+++ mysql-5.5.23/storage/innobase/handler/ha_innodb.cc	2012-04-27 22:19:09.201077088 -0400
-@@ -7023,7 +7023,7 @@
+diff -up mysql-5.5.28/storage/innobase/handler/ha_innodb.cc.p20 mysql-5.5.28/storage/innobase/handler/ha_innodb.cc
+--- mysql-5.5.28/storage/innobase/handler/ha_innodb.cc.p20	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/storage/innobase/handler/ha_innodb.cc	2012-12-06 14:27:28.653087416 +0100
+@@ -7054,7 +7054,7 @@ ha_innobase::create(
  
  	ut_a(strlen(name) < sizeof(name2));
  
diff --git a/mysql-strmov.patch b/mysql-strmov.patch
index 3d8ccec..2a78619 100644
--- a/mysql-strmov.patch
+++ b/mysql-strmov.patch
@@ -13,10 +13,10 @@ of any real performance gain from optimizing these calls.  So I'm keeping
 this patch.
 
 
-diff -Naur mysql-5.5.8.orig/include/m_string.h mysql-5.5.8/include/m_string.h
---- mysql-5.5.8.orig/include/m_string.h	2010-12-03 12:58:24.000000000 -0500
-+++ mysql-5.5.8/include/m_string.h	2010-12-20 21:39:13.905186372 -0500
-@@ -74,15 +74,6 @@
+diff -up mysql-5.5.28/include/m_string.h.p2 mysql-5.5.28/include/m_string.h
+--- mysql-5.5.28/include/m_string.h.p2	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/include/m_string.h	2012-12-06 14:12:31.225333542 +0100
+@@ -77,15 +77,6 @@ extern "C" {
  extern void *(*my_str_malloc)(size_t);
  extern void (*my_str_free)(void *);
  
diff --git a/mysql-va-list.patch b/mysql-va-list.patch
index a76d0eb..552457c 100644
--- a/mysql-va-list.patch
+++ b/mysql-va-list.patch
@@ -4,10 +4,10 @@ which is not required by the C spec, and is not true on ARM for instance.
 Per bug #744707.
 
 
-diff -Naur mysql-5.5.16.orig/sql-common/client_plugin.c mysql-5.5.16/sql-common/client_plugin.c
---- mysql-5.5.16.orig/sql-common/client_plugin.c	2011-09-09 11:56:39.000000000 -0400
-+++ mysql-5.5.16/sql-common/client_plugin.c	2011-10-16 23:00:00.708799138 -0400
-@@ -228,11 +228,13 @@
+diff -up mysql-5.5.28/sql-common/client_plugin.c.p12 mysql-5.5.28/sql-common/client_plugin.c
+--- mysql-5.5.28/sql-common/client_plugin.c.p12	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/sql-common/client_plugin.c	2012-12-06 14:22:54.494857607 +0100
+@@ -233,11 +233,13 @@ int mysql_client_plugin_init()
  {
    MYSQL mysql;
    struct st_mysql_client_plugin **builtin;
@@ -21,7 +21,7 @@ diff -Naur mysql-5.5.16.orig/sql-common/client_plugin.c mysql-5.5.16/sql-common/
  
    pthread_mutex_init(&LOCK_load_client_plugin, MY_MUTEX_INIT_SLOW);
    init_alloc_root(&mem_root, 128, 128);
-@@ -244,7 +246,7 @@
+@@ -249,7 +251,7 @@ int mysql_client_plugin_init()
    pthread_mutex_lock(&LOCK_load_client_plugin);
  
    for (builtin= mysql_client_builtins; *builtin; builtin++)
@@ -30,7 +30,7 @@ diff -Naur mysql-5.5.16.orig/sql-common/client_plugin.c mysql-5.5.16/sql-common/
  
    pthread_mutex_unlock(&LOCK_load_client_plugin);
  
-@@ -288,9 +290,13 @@
+@@ -293,9 +295,13 @@ struct st_mysql_client_plugin *
  mysql_client_register_plugin(MYSQL *mysql,
                               struct st_mysql_client_plugin *plugin)
  {
@@ -44,7 +44,7 @@ diff -Naur mysql-5.5.16.orig/sql-common/client_plugin.c mysql-5.5.16/sql-common/
    pthread_mutex_lock(&LOCK_load_client_plugin);
  
    /* make sure the plugin wasn't loaded meanwhile */
-@@ -302,7 +308,7 @@
+@@ -307,7 +313,7 @@ mysql_client_register_plugin(MYSQL *mysq
      plugin= NULL;
    }
    else
diff --git a/mysql-versioning.patch b/mysql-versioning.patch
index aaaa828..6374b6c 100644
--- a/mysql-versioning.patch
+++ b/mysql-versioning.patch
@@ -4,10 +4,10 @@ forgotten the issue entirely.  So we now maintain our own list of exported
 symbols and jam it into the build with this hack.
 
 
-diff -Naur mysql-5.5.8.orig/libmysql/CMakeLists.txt mysql-5.5.8/libmysql/CMakeLists.txt
---- mysql-5.5.8.orig/libmysql/CMakeLists.txt	2010-12-03 12:58:26.000000000 -0500
-+++ mysql-5.5.8/libmysql/CMakeLists.txt	2010-12-21 21:00:07.135311386 -0500
-@@ -197,7 +197,7 @@
+diff -up mysql-5.5.28/libmysql/CMakeLists.txt.p7 mysql-5.5.28/libmysql/CMakeLists.txt
+--- mysql-5.5.28/libmysql/CMakeLists.txt.p7	2012-08-29 10:50:46.000000000 +0200
++++ mysql-5.5.28/libmysql/CMakeLists.txt	2012-12-06 14:15:03.905461517 +0100
+@@ -209,7 +209,7 @@ IF(NOT DISABLE_SHARED)
          SET(libmysql_link_flags)
        ENDIF()
        SET_TARGET_PROPERTIES(libmysql PROPERTIES LINK_FLAGS 
diff --git a/mysql.spec b/mysql.spec
index 5b625f7..02892d2 100644
--- a/mysql.spec
+++ b/mysql.spec
@@ -1,6 +1,6 @@
 Name: mysql
-Version: 5.5.28
-Release: 2%{?dist}
+Version: 5.5.29
+Release: 1%{?dist}
 
 Summary: MySQL client programs and shared libraries
 Group: Applications/Databases
@@ -56,7 +56,6 @@ Patch18: mysql-cipherspec.patch
 Patch19: mysql-file-contents.patch
 Patch20: mysql-string-overflow.patch
 Patch21: mysql-dh1024.patch
-Patch22: mysql-cve-2012-5611.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 BuildRequires: perl, readline-devel, openssl-devel
@@ -81,6 +80,10 @@ Obsoletes: mysql-cluster < 5.1.44
 %global __perl_requires %{SOURCE999}
 %global __perllib_requires %{SOURCE999}
 
+# By default, patch(1) creates backup files when chunks apply with offsets.
+# Turn that off to ensure such files don't get included in RPMs (cf bz#884755).
+%global _default_patch_flags --no-backup-if-mismatch
+
 %description
 MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
 client/server implementation consisting of a server daemon (mysqld)
@@ -212,7 +215,6 @@ the MySQL sources.
 %patch19 -p1
 %patch20 -p1
 %patch21 -p1
-%patch22 -p1
 
 # workaround for upstream bug #56342
 rm -f mysql-test/t/ssl_8k_key-master.opt
@@ -705,6 +707,16 @@ fi
 %{_mandir}/man1/mysql_client_test.1*
 
 %changelog
+* Wed Jan  2 2013 Tom Lane <tgl at redhat.com> 5.5.29-1
+- Update to MySQL 5.5.29, for various fixes described at
+  http://dev.mysql.com/doc/refman/5.5/en/news-5-5-29.html
+- Fix inaccurate default for socket location in mysqld-wait-ready
+Resolves: #890535
+
+* Thu Dec  6 2012 Honza Horak <hhorak at redhat.com> 5.5.28-3
+- Rebase patches to not leave backup files when not applied smoothly
+- Use --no-backup-if-mismatch to prevent including backup files
+
 * Wed Dec  5 2012 Tom Lane <tgl at redhat.com> 5.5.28-2
 - Add patch for CVE-2012-5611
 Resolves: #883642
diff --git a/mysqld-wait-ready b/mysqld-wait-ready
index 9b0fd0c..9e5d3e4 100644
--- a/mysqld-wait-ready
+++ b/mysqld-wait-ready
@@ -25,7 +25,7 @@ get_mysql_option(){
 # Defaults here had better match what mysqld_safe will default to
 get_mysql_option mysqld datadir "/var/lib/mysql"
 datadir="$result"
-get_mysql_option mysqld socket "$datadir/mysql.sock"
+get_mysql_option mysqld socket "/var/lib/mysql/mysql.sock"
 socketfile="$result"
 
 # Wait for the server to come up or for the mysqld process to disappear
diff --git a/sources b/sources
index 0e73348..093f772 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-88d39960d3f348836f803aca091ee601  mysql-5.5.28-nodocs.tar.gz
+2b9473a36a98c54cd671ba60ce873289  mysql-5.5.29-nodocs.tar.gz


More information about the scm-commits mailing list