[arch-commits] Commit in mysql/trunk (5 files)

Andrea Scarpino andrea at archlinux.org
Fri Feb 26 20:12:00 UTC 2010


    Date: Friday, February 26, 2010 @ 15:11:59
  Author: andrea
Revision: 70428

upgpkg: mysql 5.1.44-1
upstream release; cleanup PKGBUILD; fix-charsets.patch fixes akonadi issue

Added:
  mysql/trunk/fix-charsets.patch
Modified:
  mysql/trunk/PKGBUILD
  mysql/trunk/mysql.install
  mysql/trunk/mysqld
  mysql/trunk/mysqld.conf.d

--------------------+
 PKGBUILD           |   77 +++++++++++++++--------------
 fix-charsets.patch |  132 +++++++++++++++++++++++++++++++++++++++++++++++++++
 mysql.install      |    2 
 mysqld             |   11 +++-
 mysqld.conf.d      |    2 
 5 files changed, 180 insertions(+), 44 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2010-02-26 19:56:44 UTC (rev 70427)
+++ PKGBUILD	2010-02-26 20:11:59 UTC (rev 70428)
@@ -5,21 +5,21 @@
 
 pkgbase=mysql
 pkgname=('libmysqlclient' 'mysql-clients' 'mysql')
-pkgver=5.1.43
+pkgver=5.1.44
 pkgrel=1
 arch=('i686' 'x86_64')
 license=('GPL')
 url="http://www.mysql.com/"
 makedepends=('tcp_wrappers' 'zlib' 'perl' 'openssl' 'libtool' 'patch')
-options=('!libtool' 'force')
+options=('!libtool')
 source=("http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.1/${pkgbase}-${pkgver}.tar.gz"
-        'mysqld'
-        'my.cnf'
-        'mysqld.conf.d')
-md5sums=('451fd3e8c55eecdf4c3ed109dce62f01'
-         '7e1c46ccbd91553cc11df7199fbfca32'
+        'mysqld' 'my.cnf' 'mysqld.conf.d'
+	'fix-charsets.patch')
+md5sums=('a16fa6d6c7f40a963919cbc1c5e86111'
+         'a564aaf42e62da454f27b62b7eaf01d5'
          '5b197896a429537fea7cbe52bbe440bc'
-	 '4a9077fc95ec6db1d5420e0cdc74d31c')
+         '0d1e778ddeeaedffa0e63dc3f6e51fc4'
+         '6813a3cc0bf28da3137a2bc8008a73ac')
 
 build() {
   cd ${srcdir}/${pkgbase}-${pkgver}
@@ -30,6 +30,9 @@
   CFLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing"
   CXXFLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing"
 
+  # fixed upstream
+  patch -Np1 -i ${srcdir}/fix-charsets.patch
+
   ./configure --prefix=/usr \
     --libexecdir=/usr/sbin \
     --localstatedir=/var \
@@ -46,6 +49,14 @@
     --enable-local-infile \
     --with-plugins=partition,ftexample,archive,blackhole,federated,heap,innobase,innodb_plugin,ndbcluster
   make || return 1
+
+  pushd libmysql
+    make link_sources get_password.lo || return 1
+  popd
+
+  pushd scripts
+    make mysql_config || return 1
+  popd
 }
 
 package_libmysqlclient(){
@@ -64,36 +75,30 @@
   # Copy missing includes
   install -m644 *.h ${pkgdir}/usr/include/mysql
 
-  # mysql_config
   cd ../scripts
-  make mysql_config
   install -d ${pkgdir}/usr/bin
   install -m755 mysql_config ${pkgdir}/usr/bin || return 1
   
   # create library symlinks in /usr/lib
-  ln -sf mysql/libmysqlclient.so.16 $pkgdir/usr/lib/libmysqlclient.so.16
-  ln -sf libmysqlclient.so.16 $pkgdir/usr/lib/libmysqlclient.so
-  ln -sf libmysqlclient.so.16 $pkgdir/usr/lib/libmysqlclient.so.1
-  ln -sf mysql/libmysqlclient_r.so.16  $pkgdir/usr/lib/libmysqlclient_r.so.16
-  ln -sf libmysqlclient_r.so.16 $pkgdir/usr/lib/libmysqlclient_r.so
-  ln -sf libmysqlclient_r.so.16 $pkgdir/usr/lib/libmysqlclient_r.so.1
+  ln -sf mysql/libmysqlclient.so.16 ${pkgdir}/usr/lib/libmysqlclient.so.16
+  ln -sf libmysqlclient.so.16 ${pkgdir}/usr/lib/libmysqlclient.so
+  ln -sf libmysqlclient.so.16 ${pkgdir}/usr/lib/libmysqlclient.so.1
+  ln -sf mysql/libmysqlclient_r.so.16  ${pkgdir}/usr/lib/libmysqlclient_r.so.16
+  ln -sf libmysqlclient_r.so.16 ${pkgdir}/usr/lib/libmysqlclient_r.so
+  ln -sf libmysqlclient_r.so.16 ${pkgdir}/usr/lib/libmysqlclient_r.so.1
 }
 
 package_mysql-clients(){
   pkgdesc="MySQL client tools"
   depends=('libmysqlclient')
   
-  cd ${srcdir}/${pkgbase}-${pkgver}
-  pushd libmysql
-    make link_sources get_password.lo || return
-  popd
-  
-  cd client
+  cd ${srcdir}/${pkgbase}-${pkgver}/client
   make DESTDIR=${pkgdir} install
 
-  # Removing libmysqlclient stuff
-  rm -rf $pkgdir/usr/lib/
-  # These will be provided by mysql
+  # provided by libmysqlclient
+  rm -rf ${pkgdir}/usr/lib/
+
+  # provided by mysql
   rm -f ${pkgdir}/usr/bin/{mysql_upgrade,mysqlbinlog,mysqltest}
 }
 
@@ -104,22 +109,18 @@
   depends=('mysql-clients')
   optdepends=('perl-dbi' 'perl-dbd-mysql')
 
-  cd ${srcdir}/${pkgbase}-${pkgver}
-  pushd libmysql
-    make link_sources get_password.lo || return
-  popd
-  
+  cd ${srcdir}/${pkgbase}-${pkgver}  
   make DESTDIR=${pkgdir} install
 
   rm -rf ${pkgdir}/usr/{mysql-test,sql-bench,lib,include}
-  install -D -m644 ../my.cnf ${pkgdir}/etc/mysql/my.cnf
-  install -D -m755 ../mysqld ${pkgdir}/etc/rc.d/mysqld
-  install -D -m644 ../mysqld.conf.d ${pkgdir}/etc/conf.d/mysqld
+  install -Dm644 ${srcdir}/my.cnf ${pkgdir}/etc/mysql/my.cnf || return 1
+  install -Dm755 ${srcdir}/mysqld ${pkgdir}/etc/rc.d/mysqld || return 1
+  install -Dm644 ${srcdir}/mysqld.conf.d ${pkgdir}/etc/conf.d/mysqld || return 1
 
-  # Cleanup files provided by the others packages
-  rm -f ${pkgdir}/usr/bin/{mysql,mysql_config,mysql_client_test_embedded,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap,mysqltest_embedded}
+  # provided by libmysqlclient
+  rm -f ${pkgdir}/usr/bin/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}
   rm -rf ${pkgdir}/usr/{include,lib}
-
-  # create directory for PID and sock files
-  install -d ${pkgdir}/var/run/mysqld
+  
+  # provided by mysql-clients
+  rm -f ${pkgdir}/usr/bin/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}
 }

Added: fix-charsets.patch
===================================================================
--- fix-charsets.patch	                        (rev 0)
+++ fix-charsets.patch	2010-02-26 20:11:59 UTC (rev 70428)
@@ -0,0 +1,132 @@
+# 3362 Staale Smedseng	2010-02-26
+#      Bug #45058 init_available_charsets uses double checked locking
+#      
+#      A client doing multiple mysql_library_init() and
+#      mysql_library_end() calls over the lifetime of the process may
+#      experience lost character set data, potentially even a
+#      SIGSEGV.
+#      
+#      This patch reinstates the reloading of character set data when
+#      a mysql_library_init() is done after a mysql_library_end().
+#
+=== modified file 'include/my_sys.h'
+--- a/include/my_sys.h	2009-12-12 18:11:25 +0000
++++ b/include/my_sys.h	2010-02-26 14:30:14 +0000
+@@ -950,7 +950,7 @@ extern my_bool resolve_charset(const cha
+ extern my_bool resolve_collation(const char *cl_name,
+                                  CHARSET_INFO *default_cl,
+                                  CHARSET_INFO **cl);
+-
++extern void free_charsets(void);
+ extern char *get_charsets_dir(char *buf);
+ extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2);
+ extern my_bool init_compiled_charsets(myf flags);
+
+=== modified file 'libmysql/libmysql.c'
+--- a/libmysql/libmysql.c	2009-12-18 18:44:24 +0000
++++ b/libmysql/libmysql.c	2010-02-26 14:30:14 +0000
+@@ -211,6 +211,7 @@ void STDCALL mysql_server_end()
+   }
+   else
+   {
++    free_charsets();
+     mysql_thread_end();
+   }
+ 
+
+=== modified file 'mysys/charset.c'
+--- a/mysys/charset.c	2009-12-15 09:48:29 +0000
++++ b/mysys/charset.c	2010-02-26 14:30:14 +0000
+@@ -427,6 +427,11 @@ static void init_available_charsets(void
+ }
+ 
+ 
++void free_charsets(void)
++{
++  charsets_initialized= MY_PTHREAD_ONCE_INIT;
++}
++
+ uint get_collation_number(const char *name)
+ {
+   my_pthread_once(&charsets_initialized, init_available_charsets);
+
+=== modified file 'mysys/my_init.c'
+--- a/mysys/my_init.c	2009-12-12 18:11:25 +0000
++++ b/mysys/my_init.c	2010-02-26 14:30:14 +0000
+@@ -165,6 +165,7 @@ void my_end(int infoflag)
+       my_print_open_files();
+     }
+   }
++  free_charsets();
+   my_error_unregister_all();
+   my_once_free();
+ 
+
+=== modified file 'sql/mysqld.cc'
+--- a/sql/mysqld.cc	2010-02-05 12:55:20 +0000
++++ b/sql/mysqld.cc	2010-02-26 14:30:14 +0000
+@@ -1287,6 +1287,7 @@ void clean_up(bool print_message)
+   lex_free();				/* Free some memory */
+   item_create_cleanup();
+   set_var_free();
++  free_charsets();
+   if (!opt_noacl)
+   {
+ #ifdef HAVE_DLOPEN
+
+
+--===============5369465324480993893==
+MIME-Version: 1.0
+Content-Type: text/bzr-bundle; charset="us-ascii";
+	name="bzr/staale.smedseng at stripped"
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+# Bazaar merge directive format 2 (Bazaar 0.90)
+# revision_id: staale.smedseng at stripped
+# target_branch: file:///export/home/tmp/ss156133/z/45058-akonadi-51/
+# testament_sha1: 3cda143e1bb6fc7c9cb3c50ddf3b76b575c7208f
+# timestamp: 2010-02-26 15:30:18 +0100
+# base_revision_id: sergey.glukhov at stripped\
+#   5pnihv36uax9kyzv
+# 
+# Begin bundle
+IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWTCT28wABAtfgEAQWWf//37j
+3SC////6YAhOPqAAAJAAaAAB9AaJI00bUGjQwIAGgAAZDQBocwJiaDCZMmTIwmCaaZGJgCGA5gTE
+0GEyZMmRhME00yMTAEMAxEmhGgJpoxGEGmQ0AAaZDJkBlJMg2UGmgeoAAAyGQAAACSQIACZBpNNM
+IJhCGUPTSeoB6ZRKkiVNyGWGa5vOElBBHTjDzjD0JvSGF1yQCMkGdNSirQckl85tKAB/aWK0gkuK
+d2DxqNQ2dhUt3jKBdFHCDnIqkJJJJIFKvcBGuEUKyFdCxYxpnEltPO8FI00WdRUiDLLoovNaGmta
+hmlgdYuiQj6tiYXjuvRGCm3+B1TMiEI3QQ7zh3NBGDEhhDOk8a+nXn2nX792kOHW+HVsQCnUaf3P
+ZIxSwarC7gBLYb7kg39Sw4ErhdCd8xLbqchZDFFIkcNprxXRWMdq0HFrhJnjxhOK2vNpE5/6worL
+LwYYpXFPZIOirWCA1i/VGiJSiiuvw450gLFiUHO4s+ZTCNiQPCCYQMIcI7Uk4Qa9CAh+8lErKPi4
+mmCRKgRmFRQKb8yLCc2lTh1yCdguwtQjBgR87qSUr6zw+VKtGwL42p3UhO1FNBbFMTD7hKGYopwl
+UZEnWzlitJ/hMsLdRuwyLdgiRGxYCeaiYtEv/IsKTUPSHDfimhrbXjTTZyuSQ6RI6DGSYMSKAnJz
+XOQqmWouQDojDEAofQwHqVlBgPmO8uO8oqiUs11Y0a4iV9giEJ7ScmcPMBi4qwmJiZoKJxJTbD0V
+1xSS30kS0ao4EDW8wJVGW4o1WX1PK4xyiksple8WGI7JPOY8cwk1409Bh8vjNLvze1BeW7MR52iY
+mHkhis4Fwcj+TIAbjTtZrsNb8DaQgX1GvVtJGZpzstiOGX4pO8nNxPsvgPnMTM4GqYxHSOtwh95E
+xMj37zQ5se47fDRe87TI3DiBdh+bL9hEfrWTCV5Kc0yNxGJOQ2tSUXveXm5LjxiPPDnUZnM5XLMZ
+myEOLBqTEpuM/m7+tB3Vm3HZaXWFqUiY1l+w4Gh1KBLA6GeFlMZYOKSspgrjORtJHZKkpKigkRoI
+HUSpyIlBiEnsXFxWMMRKSFZDKLnuaocwDUSCR0EqS8iOIjmv1pwidiAi4LR48sLR4x2CWtekAk17
+OJsUsEqCLCkVgS+AfzyjyNNAjKhafm3AyKSiFZdkRIAchCGP2B7MzxYRdnmyGkOosCamiLBIohJN
+W1euyTb865rcP6fj2ywGz71Szl+IR/Fn4/OzMW83vQ8Th6N7wP2CD/tIkwDK8sedCIL4nM+Z+gkx
+UfXzPiXnsViD9nnwNTHvPXzKCVf0ePM9hID0v+Yg/U+bVCw/xPTu+X1p2wMRL7EXiJwYoXyJVVnn
+A+il9Ndg31Lik5ch5rNZ/fkbyg5DHcQOJUbMa9fYHswfuU+ABwWDCYuGOh2XGBgZlw88RjuOWGy1
+bzXYzjXUdbt82zfYWOO4TzgUy4VRohckh8chLQ7ygoLaaSccOJ0TrMvN/aeJoYFKUiBJLsiTEtDa
+UFtolqNDdkSGqLR3ETX+JGhVCD+xs/g6n8bcmF47HReeLxI3nu3EzObvbELiRoMbCJxC1rRYmVDI
+43PQwoAUG4xxMR3B32ssEDy7vRdQO8id2soHVP7up6CB0UZRTkGXu7IqNlUCFAcnMDnUmvQ1ZKQp
+zU5LjeCvOtaQzFSo7otwSNBjQgrjUMce4ebDeYneUFR0PQqHEx5LAmm7YME7GQaIOAmw60Fn7ypP
+gx2MMQLBiZAZQCsmRE5kkBvKRDrFSRPNTzGzE/HZYae2s8D1lwaz3DD8hpgTIXUsW1+O0/f3GR6L
+2Oiy5JDV+OZ4D9bcGoAd208A9RKEZDUimXX1OfIAmXXpqA1NbVaiTen/PKePEFVUJP507ATjFLB4
+To1GBf3iWglE1E5xOweJONw0Oa2APmPQS9J9NC31L4zK48xUpTjgu9TvwIKy2SJPQDkPYXmb/gxq
+DV2TrOYdbAht9WdNtTPMDWOrNqSMiboqoGFovrMgP89InI3ci7kVe+v1Fddv5T9mQzEA/PhMoxDs
+xa2reJDtpc4R3jUikd88qGcOAkMOYZAPp5KCXsY52VRoEMyDa5epDw8Cff3RbwHajI8jkWvC2GPV
+JEBrwXlLzqROBcqHK123bPzV94BK3GAuvXok/pEW+wNnvNfqvK2nTnU+64bcUGhuO2gxd56yW6gt
+ghdxf2kSBQbiadk4EwcKsxJ8VtA8UfpxbUj12kwlt8no3Mn2FYTNWtjqDBs8JnA8REmYxHDwbYao
+5anvpFYice8ZiRyEHlyW/UTdBFVxIWAngmRxCtLuPigIlYtrMzMzM3Mx8mSLUa/vaTk6TIjpADie
+gkO3lJit26govHDMMMdN8jQjJHgIge1CQeQ/jHPpwOyEuIi3xOJeQXGrDDuMpFPIp1ATK1pgoCI7
+BMhgKihKihtMKQsRC6rE2SRaDjolheFZeDhlAwM7FG70mIgsD2Ijjzu+JArN526jPyNZ3zm4yLyy
+5UbCk6HwnuMlNgPJypCzcOOJaT3b+Uk5zBUmZaLmSKX4GaJCTyGxW2mglbePF2jZz4bj3mE0lmZm
+R2H/xdyRThQkDCT28wA=
+
+
+--===============5369465324480993893==--

Modified: mysql.install
===================================================================
--- mysql.install	2010-02-26 19:56:44 UTC (rev 70427)
+++ mysql.install	2010-02-26 20:11:59 UTC (rev 70428)
@@ -3,14 +3,12 @@
   useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null
   usr/bin/mysql_install_db --datadir=/var/lib/mysql --user=mysql
   chown -R mysql:mysql var/lib/mysql &> /dev/null
-  chown mysql:mysql var/run/mysqld &> /dev/null
 }
 
 post_upgrade(){
   getent group mysql >/dev/null 2>&1 || groupadd -g 89 mysql
   getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql
   chown -R mysql:mysql var/lib/mysql &> /dev/null
-  chown mysql:mysql var/run/mysqld &> /dev/null
 }
 
 post_remove(){

Modified: mysqld
===================================================================
--- mysqld	2010-02-26 19:56:44 UTC (rev 70427)
+++ mysqld	2010-02-26 20:11:59 UTC (rev 70428)
@@ -1,6 +1,7 @@
 #!/bin/bash
 
 MYSQLD_ROOT="/var/lib/mysql"
+
 # source application-specific settings
 [ -f /etc/conf.d/mysqld ] && . /etc/conf.d/mysqld
 
@@ -14,7 +15,11 @@
 
 case "$1" in
   start)
-    stat_busy "Starting MySQL"
+    stat_busy "Starting MySQL Server"
+    if [ ! -d /var/run/mysqld ]; then
+      install -d /var/run/mysqld &>/dev/null
+      chown mysql:mysql /var/run/mysqld &>/dev/null
+    fi
     if [ -z "$(getPID)" ]; then
        /usr/bin/mysqld_safe --datadir=$MYSQLD_ROOT &>/dev/null &
       if [ $? -gt 0 ]; then
@@ -32,7 +37,7 @@
           stat_fail
           exit 1
         else
-          echo $(getPID) >/var/run/mysqld/mysqld.pid
+          echo $(getPID) > /var/run/mysqld/mysqld.pid
           add_daemon mysqld
           stat_done
         fi
@@ -44,7 +49,7 @@
     ;;
 
   stop)
-    stat_busy "Stopping MySQL"
+    stat_busy "Stopping MySQL Server"
     if [ ! -z "$(getPID)" ]; then
       kill $(getPID) &> /dev/null
       if [ $? -gt 0 ]; then

Modified: mysqld.conf.d
===================================================================
--- mysqld.conf.d	2010-02-26 19:56:44 UTC (rev 70427)
+++ mysqld.conf.d	2010-02-26 20:11:59 UTC (rev 70428)
@@ -1 +1 @@
-MYSQLD_ROOT="/var/lib/mysql"
+#MYSQLD_ROOT="/var/lib/mysql"




More information about the arch-commits mailing list