# $Id$
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>

pkgbase=mysql
pkgname=('libmysqlclient' 'mysql-clients' 'mysql')
pkgver=5.5.10
pkgrel=2
arch=('i686' 'x86_64')
license=('GPL')
url="http://www.mysql.com/"
makedepends=('cmake' 'openssl' 'tcp_wrappers' 'zlib')
options=('!libtool')
source=("http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.5/${pkgbase}-${pkgver}.tar.gz"
        'mysqld'
        'my.cnf'
        'fix-mysql-home.patch'
        'fix-embedded-crash.patch')
md5sums=('ee604aff531ff85abeb10cf332c1355a'
         '2234207625baa29b2ff7d7b4f088abce'
         '1c949c0dbea5206af0db14942d9927b6'
         '56fe8b724ca7ae73b9f96cdf4cca1220'
         'b2b7ed0289a6d8cce17a68512c0286cc')

build() {
  cd "${srcdir}"/${pkgbase}-${pkgver}
  patch -Np1 -i ${srcdir}/fix-mysql-home.patch
  patch -Np1 -i ${srcdir}/fix-embedded-crash.patch

  cd "${srcdir}"
  mkdir build
  cd build

  # CFLAGS/CXXFLAGS as suggested upstream
  CFLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \
  CXXFLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti" \

  cmake ../${pkgbase}-${pkgver} \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DMYSQL_DATADIR=/var/lib/mysql \
    -DSYSCONFDIR=/etc/mysql \
    -DINSTALL_INFODIR=share/mysql/docs \
    -DINSTALL_MANDIR=share/man \
    -DINSTALL_PLUGINDIR=/usr/lib/mysql/plugin \
    -DINSTALL_SCRIPTDIR=bin \
    -DINSTALL_INCLUDEDIR=include/mysql \
    -DINSTALL_DOCREADMEDIR=share/mysql \
    -DINSTALL_SUPPORTFILESDIR=share/mysql \
    -DINSTALL_MYSQLSHAREDIR=share/mysql \
    -DINSTALL_SHAREDIR=share/mysql \
    -DWITH_READLINE=ON \
    -DWITH_ZLIB=system \
    -DWITH_SSL=system \
    -DWITH_LIBWRAP=ON \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DWITH_EXTRA_CHARSETS=complex \
    -DWITH_EMBEDDED_SERVER=ON \
    -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
    -DENABLED_LOCAL_INFILE=ON \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
    -DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \
    -DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1

  make
}

package_libmysqlclient(){
  pkgdesc="MySQL client libraries"
  depends=('openssl' 'gcc-libs' 'tcp_wrappers')
  
  cd "${srcdir}"/build
  for dir in include libmysql libmysqld libservices; do
    make -C ${dir} DESTDIR="${pkgdir}" install
  done

  install -d "${pkgdir}/usr/bin"
  install -m755 scripts/mysql_config "${pkgdir}/usr/bin/"
  install -d "${pkgdir}/usr/share/man/man1"
  for man in mysql_config mysql_client_test_embedded mysqltest_embedded; do
    install -m644 "${srcdir}/${pkgbase}-${pkgver}/man/$man.1" "${pkgdir}/usr/share/man/man1/$man.1"
  done
}

package_mysql-clients(){
  pkgdesc="MySQL client tools"
  depends=('libmysqlclient')
  
  cd "${srcdir}"/build
  make -C client DESTDIR="${pkgdir}" install

  # install man pages
  install -d "${pkgdir}/usr/share/man/man1"
  for man in mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap; do
    install -m644 "${srcdir}/${pkgbase}-${pkgver}/man/$man.1" "${pkgdir}/usr/share/man/man1/$man.1"
  done

  # provided by mysql
  rm "${pkgdir}"/usr/bin/{mysql_upgrade,mysqlbinlog,mysqltest}
}

package_mysql(){
  pkgdesc="A fast SQL database server"
  backup=('etc/mysql/my.cnf')
  install=mysql.install
  depends=('mysql-clients')
  optdepends=('perl-dbi' 'perl-dbd-mysql')

  cd "${srcdir}"/build
  make DESTDIR=${pkgdir} install

  install -Dm644 ${srcdir}/my.cnf ${pkgdir}/etc/mysql/my.cnf
  install -Dm755 ${srcdir}/mysqld ${pkgdir}/etc/rc.d/mysqld

  # provided by libmysqlclient
  rm ${pkgdir}/usr/bin/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}
  rm ${pkgdir}/usr/lib/libmysql*
  rm -r ${pkgdir}/usr/include/
  rm ${pkgdir}/usr/share/man/man1/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}.1
  
  # provided by mysql-clients
  rm ${pkgdir}/usr/bin/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}
  rm ${pkgdir}/usr/share/man/man1/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}.1

  # not needed
  rm -r ${pkgdir}/usr/{mysql-test,sql-bench}

  # These shouldn't be here
  rm -r ${pkgdir}/usr/docs
  install -d ${pkgdir}/var/lib/mysql
  cp -r ${pkgdir}/usr/data/* ${pkgdir}/var/lib/mysql/
  chmod -R 700 ${pkgdir}/var/lib/mysql
  rm -r ${pkgdir}/usr/data
}
