actions.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Licensed under the GNU General Public License, version 3.
  5. # See the file http://www.gnu.org/licenses/gpl.txt
  6. from pisi.actionsapi import get
  7. from pisi.actionsapi import pisitools
  8. from pisi.actionsapi import shelltools
  9. from pisi.actionsapi import cmaketools
  10. #pisitools.flags.add("-fno-strict-aliasing -DBIG_JOINS=1")
  11. #pisitools.cflags.add("-fomit-frame-pointer")
  12. #pisitools.cxxflags.add("-felide-constructors -fno-rtti -fno-delete-null-pointer-checks")
  13. def setup():
  14. #pisitools.dosed("storage/tokudb/ft-index/ft/ft-ops.cc", "LEAFENTRY leaf_entry;", "LEAFENTRY leaf_entry = 0;")
  15. shelltools.export("CFLAGS", get.CFLAGS())
  16. shelltools.export("CXXFLAGS", get.CXXFLAGS())
  17. cmaketools.configure("-DBUILD_CONFIG=mysql_release \
  18. -DCMAKE_INSTALL_PREFIX=/usr \
  19. -DSYSCONFDIR=/etc/mysql \
  20. -DMYSQL_DATADIR=/var/lib/mysql \
  21. -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \
  22. -DDEFAULT_CHARSET=utf8 \
  23. -DDEFAULT_COLLATION=utf8_general_ci \
  24. -DENABLED_LOCAL_INFILE=ON \
  25. -DINSTALL_INFODIR=share/mysql/docs \
  26. -DINSTALL_MANDIR=share/man \
  27. -DINSTALL_PLUGINDIR=lib/mysql/plugin \
  28. -DINSTALL_SCRIPTDIR=bin \
  29. -DINSTALL_INCLUDEDIR=include/mysql \
  30. -DINSTALL_DOCREADMEDIR=share/mysql \
  31. -DINSTALL_SUPPORTFILESDIR=share/mysql \
  32. -DINSTALL_MYSQLSHAREDIR=share/mysql \
  33. -DINSTALL_DOCDIR=share/mysql/docs \
  34. -DINSTALL_SHAREDIR=share/mysql \
  35. -DWITH_READLINE=ON \
  36. -DWITH_ZLIB=system \
  37. -DWITH_SSL=system \
  38. -DWITH_PCRE=system \
  39. -DWITH_LIBWRAP=OFF \
  40. -DWITH_JEMALLOC=ON \
  41. -DWITH_EXTRA_CHARSETS=complex \
  42. -DWITH_EMBEDDED_SERVER=ON \
  43. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  44. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  45. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  46. -DWITH_PARTITION_STORAGE_ENGINE=1 \
  47. -DWITHOUT_TOKUDB_STORAGE_ENGINE=1 \
  48. -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
  49. -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
  50. -DWITHOUT_PBXT_STORAGE_ENGINE=1 \
  51. -DCMAKE_C_FLAGS='-fPIC %s -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer -fno-delete-null-pointer-checks' \
  52. -DCMAKE_CXX_FLAGS='-fPIC %s -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti -fno-delete-null-pointer-checks' \
  53. -DWITH_MYSQLD_LDFLAGS='-pie %s,-z,now'" % (get.CFLAGS(), get.CXXFLAGS(), get.LDFLAGS()))
  54. #-DCMAKE_EXE_LINKER_FLAGS='-ljemalloc' \
  55. def build():
  56. cmaketools.make()
  57. def install():
  58. cmaketools.install("DESTDIR=%s benchdir_root=\"/usr/share/mysql\"" % get.installDIR())
  59. # Config
  60. pisitools.insinto("/etc/mysql", "%s/usr/share/mysql/my-medium.cnf" % get.installDIR(), "my.cnf")
  61. pisitools.insinto("/etc/mysql", "%s/%s/scripts/mysqlaccess.conf" % (get.workDIR(), get.srcDIR()))
  62. pisitools.insinto("/usr/bin", "%s/%s/scripts/mysql_config" % (get.workDIR(), get.srcDIR()))
  63. # Data dir
  64. pisitools.dodir("/var/lib/mysql")
  65. # Documents
  66. pisitools.dodoc("%s/%s/support-files/my-*.cnf" % (get.workDIR(), get.srcDIR()))
  67. pisitools.dodoc("COPYING", "INSTALL-SOURCE", "README", "VERSION")
  68. # Remove not needed files
  69. pisitools.removeDir("/usr/data")
  70. pisitools.removeDir("/usr/mysql-test")
  71. pisitools.removeDir("/usr/sql-bench")
  72. pisitools.remove("/usr/share/man/man1/mysql-test-run.pl.1")
  73. # Remove -lprobes_mysql
  74. #pisitools.dosed("%s/usr/bin/mysql_config" % get.installDIR(), "-lprobes_mysql")