diff options
author | flo <flo@FreeBSD.org> | 2012-12-29 03:17:48 +0800 |
---|---|---|
committer | flo <flo@FreeBSD.org> | 2012-12-29 03:17:48 +0800 |
commit | 95039d2f622db4293fee06530d5e19a5ad2d29ed (patch) | |
tree | 6d210192d550018b47aea4c6c83dc42dd881acda | |
parent | 819542ed796e67a6be5588f80718cb7ccb9db9b2 (diff) | |
download | freebsd-ports-gnome-95039d2f622db4293fee06530d5e19a5ad2d29ed.tar.gz freebsd-ports-gnome-95039d2f622db4293fee06530d5e19a5ad2d29ed.tar.zst freebsd-ports-gnome-95039d2f622db4293fee06530d5e19a5ad2d29ed.zip |
Add Percona Server
Percona Server is an enhanced drop-in replacement for MySQL
Approved by: portmgr (bapt)
Initial patches by: pgollucci
39 files changed, 1173 insertions, 1 deletions
diff --git a/Mk/bsd.database.mk b/Mk/bsd.database.mk index b858067b6f14..90f3664adcfc 100644 --- a/Mk/bsd.database.mk +++ b/Mk/bsd.database.mk @@ -110,10 +110,19 @@ MYSQL50_LIBVER= 15 MYSQL51_LIBVER= 16 MYSQL53_LIBVER= 16 MYSQL55_LIBVER= 18 +MYSQL55p_LIBVER= 18 +MYSQL56p_LIBVER= 18 # Setting/finding MySQL version we want. .if exists(${LOCALBASE}/bin/mysql) -_MYSQL_VER!= ${LOCALBASE}/bin/mysql --version | ${SED} -e 's/.*Distrib \([0-9]\)\.\([0-9]*\).*/\1\2/' +_MYSQL!= ${LOCALBASE}/bin/mysql --version | ${SED} -e 's/.*Distrib \([0-9]\)\.\([0-9]*\).*/\1\2/' +_PERCONA!= ${LOCALBASE}/bin/mysql --version | ${GREP} Percona | wc -l + +.if ${_PERCONA} == 1 +_MYSQL_VER= ${_MYSQL}p +.else +_MYSQL_VER= ${_MYSQL} +.endif .endif .if defined(WANT_MYSQL_VER) @@ -140,6 +149,12 @@ IGNORE= cannot install: MySQL versions mismatch: mysql${_MYSQL_VER}-client is i .if (${MYSQL_VER} == "53") _MYSQL_CLIENT= databases/mariadb-client _MYSQL_SERVER= databases/mariadb-server +.elif (${MYSQL_VER} == "55p") +_MYSQL_CLIENT= databases/percona55-client +_MYSQL_SERVER= databases/percona55-server +.elif (${MYSQL_VER} == "56p") +_MYSQL_CLIENT= databases/percona56-client +_MYSQL_SERVER= databases/percona56-server .else _MYSQL_CLIENT= databases/mysql${MYSQL_VER}-client _MYSQL_SERVER= databases/mysql${MYSQL_VER}-server diff --git a/databases/Makefile b/databases/Makefile index abce52aeedab..a7a5c231e60e 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -533,6 +533,8 @@ SUBDIR += pecl-rrd SUBDIR += pecl-tokyo_tyrant SUBDIR += percona-toolkit + SUBDIR += percona55-client + SUBDIR += percona55-server SUBDIR += pg_filedump SUBDIR += pg_reorg SUBDIR += pg_rman diff --git a/databases/percona55-client/Makefile b/databases/percona55-client/Makefile new file mode 100644 index 000000000000..882e2a3a419b --- /dev/null +++ b/databases/percona55-client/Makefile @@ -0,0 +1,28 @@ +# $FreeBSD$ + +PORTNAME= percona +PKGNAMESUFFIX= -client + +COMMENT= Multithreaded SQL database (client) + +MASTERDIR= ${.CURDIR}/../percona55-server + +PKGMESSAGE= mustnotexist +PATCHDIR= ${.CURDIR}/files +PLIST= ${.CURDIR}/pkg-plist + +LATEST_LINK= percona55-client + +CONFLICTS_INSTALL= mysql-client-[345].* percona-client-5.[0-46-9].* + +CMAKE_ARGS+= -DWITHOUT_SERVER=1 + +USE_LDCONFIG= ${PREFIX}/lib/mysql + +MAN1= comp_err.1 msql2mysql.1 mysql.1 mysql_config.1 mysql_find_rows.1 \ + mysql_waitpid.1 mysqlaccess.1 mysqladmin.1 mysqlbinlog.1 \ + mysqlcheck.1 mysqldump.1 mysqlimport.1 mysqlshow.1 mysqlslap.1 + +CLIENT_ONLY= yes + +.include "${MASTERDIR}/Makefile" diff --git a/databases/percona55-client/files/patch-CMakeLists.txt b/databases/percona55-client/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..6331d4581ae6 --- /dev/null +++ b/databases/percona55-client/files/patch-CMakeLists.txt @@ -0,0 +1,56 @@ +--- CMakeLists.txt.orig 2012-10-26 00:44:36.000000000 +0200 ++++ CMakeLists.txt 2012-10-27 00:58:23.706381883 +0200 +@@ -314,30 +314,11 @@ + ENDIF() + + ADD_SUBDIRECTORY(extra) +-IF(NOT WITHOUT_SERVER) +- ADD_SUBDIRECTORY(tests) +- ADD_SUBDIRECTORY(client) +- ADD_SUBDIRECTORY(sql) +- ADD_SUBDIRECTORY(sql/share) +- ADD_SUBDIRECTORY(libservices) +- OPTION (WITH_EMBEDDED_SERVER "Compile MySQL with embedded server" OFF) +- IF(WITH_EMBEDDED_SERVER) +- ADD_SUBDIRECTORY(libmysqld) +- ADD_SUBDIRECTORY(libmysqld/examples) +- ENDIF(WITH_EMBEDDED_SERVER) +- +- ADD_SUBDIRECTORY(mysql-test) +- ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess) +- ADD_SUBDIRECTORY(support-files) +- ADD_SUBDIRECTORY(scripts) +- ADD_SUBDIRECTORY(sql-bench) +- IF(UNIX) +- ADD_SUBDIRECTORY(man) +- ENDIF() +- IF(EXISTS ${CMAKE_SOURCE_DIR}/internal/CMakeLists.txt) +- ADD_SUBDIRECTORY(internal) +- ENDIF() +-ENDIF() ++ADD_SUBDIRECTORY(client) ++ADD_SUBDIRECTORY(libservices) ++ADD_SUBDIRECTORY(support-files) ++ADD_SUBDIRECTORY(scripts) ++ADD_SUBDIRECTORY(man) + + INCLUDE(cmake/abi_check.cmake) + INCLUDE(cmake/tags.cmake) +@@ -381,11 +362,11 @@ + + INCLUDE(CPack) + IF(UNIX) +- INSTALL(FILES Docs/mysql.info DESTINATION ${INSTALL_INFODIR} OPTIONAL COMPONENT Info) + ENDIF() + # + # RPM installs documentation directly from the source tree + # ++IF(FALSE) + IF(NOT INSTALL_LAYOUT MATCHES "RPM") + INSTALL(FILES COPYING LICENSE.mysql + DESTINATION ${INSTALL_DOCREADMEDIR} +@@ -411,3 +392,4 @@ + PATTERN "sp-imp-spec.txt" EXCLUDE + ) + ENDIF() ++ENDIF() diff --git a/databases/percona55-client/files/patch-client_CMakeLists.txt b/databases/percona55-client/files/patch-client_CMakeLists.txt new file mode 100644 index 000000000000..23a951a0e7ad --- /dev/null +++ b/databases/percona55-client/files/patch-client_CMakeLists.txt @@ -0,0 +1,43 @@ +--- client/CMakeLists.txt.orig 2011-09-09 17:56:40.000000000 +0200 ++++ client/CMakeLists.txt 2011-10-07 11:08:18.000000000 +0200 +@@ -33,9 +33,11 @@ + TARGET_LINK_LIBRARIES(mysql ${READLINE_LIBRARY}) + ENDIF(UNIX) + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysqltest mysqltest.cc COMPONENT Test) + SET_SOURCE_FILES_PROPERTIES(mysqltest.cc PROPERTIES COMPILE_FLAGS "-DTHREADS") + TARGET_LINK_LIBRARIES(mysqltest mysqlclient regex) ++ENDIF() + + + MYSQL_ADD_EXECUTABLE(mysqlcheck mysqlcheck.c) +@@ -47,15 +49,19 @@ + MYSQL_ADD_EXECUTABLE(mysqlimport mysqlimport.c) + TARGET_LINK_LIBRARIES(mysqlimport mysqlclient) + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysql_upgrade mysql_upgrade.c) + TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient) + ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs) ++ENDIF() + + MYSQL_ADD_EXECUTABLE(mysqlshow mysqlshow.c) + TARGET_LINK_LIBRARIES(mysqlshow mysqlclient) + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysql_plugin mysql_plugin.c) + TARGET_LINK_LIBRARIES(mysql_plugin mysqlclient) ++ENDIF() + + MYSQL_ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc) + TARGET_LINK_LIBRARIES(mysqlbinlog mysqlclient) +@@ -72,7 +78,7 @@ + MYSQL_ADD_EXECUTABLE(echo echo.c) + ENDIF(WIN32) + +-SET_TARGET_PROPERTIES (mysqlcheck mysqldump mysqlimport mysql_upgrade mysqlshow mysqlslap mysql_plugin ++SET_TARGET_PROPERTIES (mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap + PROPERTIES HAS_CXX TRUE) + + ADD_DEFINITIONS(-DHAVE_DLOPEN) diff --git a/databases/percona55-client/files/patch-client__mysql.cc b/databases/percona55-client/files/patch-client__mysql.cc new file mode 100644 index 000000000000..b73e1052d30d --- /dev/null +++ b/databases/percona55-client/files/patch-client__mysql.cc @@ -0,0 +1,16 @@ +--- client/mysql.cc.orig 2012-02-27 19:15:22.271243107 +0000 ++++ client/mysql.cc 2012-02-27 19:16:16.645241508 +0000 +@@ -1601,11 +1601,11 @@ + #endif + + #ifdef HAVE_READLINE +- printf("%s Ver %s Distrib %s, for %s (%s) using %s %s\n", ++ printf("%s Ver %s Distrib %s Percona, for %s (%s) using %s %s\n", + my_progname, VER, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE, + readline, rl_library_version); + #else +- printf("%s Ver %s Distrib %s, for %s (%s)\n", my_progname, VER, ++ printf("%s Ver %s Distrib %s Percona, for %s (%s)\n", my_progname, VER, + MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE); + #endif + diff --git a/databases/percona55-client/files/patch-extra_CMakeLists.txt b/databases/percona55-client/files/patch-extra_CMakeLists.txt new file mode 100644 index 000000000000..78a301146b95 --- /dev/null +++ b/databases/percona55-client/files/patch-extra_CMakeLists.txt @@ -0,0 +1,25 @@ +--- extra/CMakeLists.txt.orig 2010-12-03 18:58:24.000000000 +0100 ++++ extra/CMakeLists.txt 2010-12-23 14:45:36.000000000 +0100 +@@ -50,6 +50,7 @@ + ${PROJECT_BINARY_DIR}/sql/share/english/errmsg.sys + ${PROJECT_SOURCE_DIR}/sql/share/errmsg-utf8.txt) + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.c) + TARGET_LINK_LIBRARIES(my_print_defaults mysys) + +@@ -69,11 +70,14 @@ + + MYSQL_ADD_EXECUTABLE(replace replace.c) + TARGET_LINK_LIBRARIES(replace mysys) ++ENDIF() + IF(UNIX) ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(innochecksum innochecksum.c) + + MYSQL_ADD_EXECUTABLE(resolve_stack_dump resolve_stack_dump.c) + TARGET_LINK_LIBRARIES(resolve_stack_dump mysys) ++ENDIF() + + MYSQL_ADD_EXECUTABLE(mysql_waitpid mysql_waitpid.c) + TARGET_LINK_LIBRARIES(mysql_waitpid mysys) diff --git a/databases/percona55-client/files/patch-extra_yassl_taocrypt_src_integer.cpp b/databases/percona55-client/files/patch-extra_yassl_taocrypt_src_integer.cpp new file mode 100644 index 000000000000..e94bf77c990d --- /dev/null +++ b/databases/percona55-client/files/patch-extra_yassl_taocrypt_src_integer.cpp @@ -0,0 +1,11 @@ +--- extra/yassl/taocrypt/src/integer.cpp.orig 2012-04-02 09:37:09.000000000 +0200 ++++ extra/yassl/taocrypt/src/integer.cpp 2012-04-02 09:37:41.000000000 +0200 +@@ -73,7 +73,7 @@ + CPP_TYPENAME AlignedAllocator<T>::pointer AlignedAllocator<T>::allocate( + size_type n, const void *) + { +- if (n > max_size()) ++ if (n > AlignedAllocator<T>::max_size()) + return 0; + if (n == 0) + return 0; diff --git a/databases/percona55-client/files/patch-include_CMakeLists.txt b/databases/percona55-client/files/patch-include_CMakeLists.txt new file mode 100644 index 000000000000..02ae2db9f708 --- /dev/null +++ b/databases/percona55-client/files/patch-include_CMakeLists.txt @@ -0,0 +1,12 @@ +--- include/CMakeLists.txt.orig 2011-01-19 23:37:08.000000000 +0100 ++++ include/CMakeLists.txt 2011-02-07 22:42:05.129894470 +0100 +@@ -27,9 +27,6 @@ + my_list.h + my_alloc.h + typelib.h +- mysql/plugin.h +- mysql/plugin_audit.h +- mysql/plugin_ftparser.h + ) + + SET(HEADERS diff --git a/databases/percona55-client/files/patch-include_my_compare.h b/databases/percona55-client/files/patch-include_my_compare.h new file mode 100644 index 000000000000..093c8ae37789 --- /dev/null +++ b/databases/percona55-client/files/patch-include_my_compare.h @@ -0,0 +1,11 @@ +--- include/my_compare.h.orig 2011-05-10 09:46:46.000000000 +0200 ++++ include/my_compare.h 2011-05-10 09:47:01.000000000 +0200 +@@ -39,7 +39,7 @@ + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH. + */ + +-#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define HA_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define HA_MAX_KEY_SEG 16 /* Max segments for key */ + + #define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24+ 6+6) diff --git a/databases/percona55-client/files/patch-include_myisam.h b/databases/percona55-client/files/patch-include_myisam.h new file mode 100644 index 000000000000..450645400dd5 --- /dev/null +++ b/databases/percona55-client/files/patch-include_myisam.h @@ -0,0 +1,11 @@ +--- include/myisam.h.orig 2009-02-16 23:04:54.000000000 +0100 ++++ include/myisam.h 2009-02-16 23:10:08.000000000 +0100 +@@ -48,7 +48,7 @@ + The following defines can be increased if necessary. + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH. + */ +-#define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define MI_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define MI_MAX_KEY_SEG 16 /* Max segments for key */ + + #define MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH+MI_MAX_KEY_SEG*6+8+8) diff --git a/databases/percona55-client/files/patch-man_CMakeLists.txt b/databases/percona55-client/files/patch-man_CMakeLists.txt new file mode 100644 index 000000000000..0f79f3e2403d --- /dev/null +++ b/databases/percona55-client/files/patch-man_CMakeLists.txt @@ -0,0 +1,13 @@ +--- man/CMakeLists.txt.orig 2011-10-22 14:08:32.000000000 +0200 ++++ man/CMakeLists.txt 2011-10-22 14:22:42.000000000 +0200 +@@ -15,10 +15,6 @@ + + # Copy man pages + FILE(GLOB MAN1_FILES *.1) +-FILE(GLOB MAN1_EXCLUDE make_win_bin_dist.1) +-FILE(GLOB MAN1_NDB ndb*.1) +-FILE(GLOB MAN8_FILES *.8) +-FILE(GLOB MAN8_NDB ndb*.8) + IF(MAN1_FILES) + IF(MAN1_EXCLUDE) + LIST(REMOVE_ITEM MAN1_FILES ${MAN1_EXCLUDE}) diff --git a/databases/percona55-client/files/patch-mysys_default.c b/databases/percona55-client/files/patch-mysys_default.c new file mode 100644 index 000000000000..816105371bdf --- /dev/null +++ b/databases/percona55-client/files/patch-mysys_default.c @@ -0,0 +1,31 @@ +--- mysys/default.c.orig 2010-11-02 23:01:13.000000000 +0100 ++++ mysys/default.c 2010-11-10 16:39:51.000000000 +0100 +@@ -70,7 +70,7 @@ + + /* Which directories are searched for options (and in which order) */ + +-#define MAX_DEFAULT_DIRS 6 ++#define MAX_DEFAULT_DIRS 7 + #define DEFAULT_DIRS_SIZE (MAX_DEFAULT_DIRS + 1) /* Terminate with NULL */ + static const char **default_directories = NULL; + +@@ -711,7 +711,7 @@ + { + MY_STAT stat_info; + if (!my_stat(name,&stat_info,MYF(0))) +- return 1; ++ return 0; + /* + Ignore world-writable regular files. + This is mainly done to protect us to not read a file created by +@@ -1153,7 +1153,10 @@ + + #if defined(DEFAULT_SYSCONFDIR) + if (DEFAULT_SYSCONFDIR[0]) ++ { + errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs); ++ errors += add_directory(alloc, DEFAULT_SYSCONFDIR "/mysql", dirs); ++ } + #endif /* DEFAULT_SYSCONFDIR */ + + #endif diff --git a/databases/percona55-client/files/patch-scripts_CMakeLists.txt b/databases/percona55-client/files/patch-scripts_CMakeLists.txt new file mode 100644 index 000000000000..4dd4080c4f5f --- /dev/null +++ b/databases/percona55-client/files/patch-scripts_CMakeLists.txt @@ -0,0 +1,78 @@ +--- scripts/CMakeLists.txt.orig 2010-12-03 18:58:26.000000000 +0100 ++++ scripts/CMakeLists.txt 2011-01-11 20:18:07.000000000 +0100 +@@ -71,6 +71,7 @@ + ) + ENDIF() + ++IF(FALSE) + INSTALL(FILES + ${CMAKE_CURRENT_SOURCE_DIR}/mysql_system_tables.sql + ${CMAKE_CURRENT_SOURCE_DIR}/mysql_system_tables_data.sql +@@ -79,6 +80,7 @@ + ${FIX_PRIVILEGES_SQL} + DESTINATION ${INSTALL_MYSQLSHAREDIR} COMPONENT Server + ) ++ENDIF() + + # TCMalloc hacks + IF(MALLOC_LIB) +@@ -138,6 +140,7 @@ + SET(HOSTNAME "hostname") + SET(MYSQLD_USER "mysql") + ++IF(FALSE) + # Required for mysqlbug until autotools are deprecated, once done remove these + # and expand default cmake variables + SET(CC ${CMAKE_C_COMPILER}) +@@ -174,6 +177,7 @@ + DESTINATION ${INSTALL_BINDIR} + COMPONENT Server + ) ++ENDIF() + + ENDIF(UNIX) + +@@ -198,6 +202,7 @@ + SET(localstatedir ${MYSQL_DATADIR}) + ENDIF() + ++IF() + IF(UNIX) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql_install_db.sh + ${CMAKE_CURRENT_BINARY_DIR}/mysql_install_db ESCAPE_QUOTES @ONLY) +@@ -215,6 +220,7 @@ + DESTINATION ${DEST} + COMPONENT Server + ) ++ENDIF() + + + SET(prefix "${CMAKE_INSTALL_PREFIX}") +@@ -266,6 +272,8 @@ + GET_FILENAME_COMPONENT(lib "${lib}" NAME_WE) + STRING(REGEX REPLACE "^lib" "" lib "${lib}") + SET(${var} "${${var}}-l${lib} " ) ++ ELSEIF(lib STREQUAL "-pthread") ++ SET(${var} "${${var}}-pthread " ) + ELSE() + SET(${var} "${${var}}-l${lib} " ) + ENDIF() +@@ -318,18 +326,9 @@ + SET(BIN_SCRIPTS + msql2mysql + mysql_config +- mysql_fix_extensions +- mysql_setpermission +- mysql_secure_installation +- mysql_zap + mysqlaccess + mysqlaccess.conf +- mysql_convert_table_format + mysql_find_rows +- mysqlhotcopy +- mysqldumpslow +- mysqld_multi +- mysqld_safe + ) + FOREACH(file ${BIN_SCRIPTS}) + IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh) diff --git a/databases/percona55-client/files/patch-support-files_CMakeLists.txt b/databases/percona55-client/files/patch-support-files_CMakeLists.txt new file mode 100644 index 000000000000..e3490b326b03 --- /dev/null +++ b/databases/percona55-client/files/patch-support-files_CMakeLists.txt @@ -0,0 +1,37 @@ +--- support-files/CMakeLists.txt.orig 2011-01-19 23:37:09.000000000 +0100 ++++ support-files/CMakeLists.txt 2011-02-07 22:52:05.238344276 +0100 +@@ -40,15 +40,18 @@ + SET(inst_location ${INSTALL_SUPPORTFILESDIR}) + ENDIF() + ++IF(FALSE) + FOREACH(inifile my-huge my-innodb-heavy-4G my-large my-medium my-small) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${inifile}.cnf.sh + ${CMAKE_CURRENT_BINARY_DIR}/${inifile}.${ini_file_extension} @ONLY) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${inifile}.${ini_file_extension} + DESTINATION ${inst_location} COMPONENT IniFiles) + ENDFOREACH() ++ENDIF() + + IF(UNIX) + SET(prefix ${CMAKE_INSTALL_PREFIX}) ++IF(FALSE) + FOREACH(script mysqld_multi.server mysql-log-rotate binary-configure + config.medium.ini config.small.ini config.huge.ini ndb-config-2-node.ini) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${script}.sh +@@ -66,8 +69,10 @@ + IF(INSTALL_SUPPORTFILESDIR) + INSTALL(FILES magic DESTINATION ${inst_location} COMPONENT SupportFiles) + ENDIF() ++ENDIF() + + INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) ++IF(FALSE) + CONFIGURE_FILE(MySQL-shared-compat.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/MySQL-shared-compat.spec @ONLY) + CONFIGURE_FILE(mysql.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/mysql.spec @ONLY) + CONFIGURE_FILE(mysql.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/mysql.${VERSION}.spec @ONLY) +@@ -85,3 +90,4 @@ + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ + GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + ENDIF() ++ENDIF() diff --git a/databases/percona55-client/pkg-plist b/databases/percona55-client/pkg-plist new file mode 100644 index 000000000000..0543f2cfbca3 --- /dev/null +++ b/databases/percona55-client/pkg-plist @@ -0,0 +1,75 @@ +bin/msql2mysql +bin/mysql +bin/mysql_config +bin/mysql_find_rows +bin/mysql_waitpid +bin/mysqlaccess +bin/mysqlaccess.conf +bin/mysqladmin +bin/mysqlbinlog +bin/mysqlcheck +bin/mysqldump +bin/mysqlimport +bin/mysqlshow +bin/mysqlslap +include/mysql/decimal.h +include/mysql/errmsg.h +include/mysql/keycache.h +include/mysql/m_ctype.h +include/mysql/m_string.h +include/mysql/my_alloc.h +include/mysql/my_attribute.h +include/mysql/my_compiler.h +include/mysql/my_config.h +include/mysql/my_dbug.h +include/mysql/my_dir.h +include/mysql/my_getopt.h +include/mysql/my_global.h +include/mysql/my_list.h +include/mysql/my_net.h +include/mysql/my_pthread.h +include/mysql/my_sys.h +include/mysql/my_xml.h +include/mysql/mysql/client_plugin.h +include/mysql/mysql/innodb_priv.h +include/mysql/mysql/plugin.h +include/mysql/mysql/plugin_audit.h +include/mysql/mysql/plugin_auth.h +include/mysql/mysql/plugin_auth_common.h +include/mysql/mysql/plugin_ftparser.h +include/mysql/mysql/psi/mysql_file.h +include/mysql/mysql/psi/mysql_thread.h +include/mysql/mysql/psi/psi.h +include/mysql/mysql/psi/psi_abi_v1.h +include/mysql/mysql/psi/psi_abi_v2.h +include/mysql/mysql/service_my_snprintf.h +include/mysql/mysql/service_thd_alloc.h +include/mysql/mysql/service_thd_wait.h +include/mysql/mysql/service_thread_scheduler.h +include/mysql/mysql/services.h +include/mysql/mysql/thread_pool_priv.h +include/mysql/mysql.h +include/mysql/mysql_com.h +include/mysql/mysql_embed.h +include/mysql/mysql_time.h +include/mysql/mysql_version.h +include/mysql/mysqld_ername.h +include/mysql/mysqld_error.h +include/mysql/sql_common.h +include/mysql/sql_state.h +include/mysql/sslopt-case.h +include/mysql/sslopt-longopts.h +include/mysql/sslopt-vars.h +include/mysql/typelib.h +lib/mysql/libmysqlclient.a +lib/mysql/libmysqlclient.so +lib/mysql/libmysqlclient.so.18 +lib/mysql/libmysqlclient_r.a +lib/mysql/libmysqlclient_r.so +lib/mysql/libmysqlclient_r.so.18 +lib/mysql/libmysqlservices.a +share/aclocal/mysql.m4 +@dirrm include/mysql/mysql/psi +@dirrm include/mysql/mysql +@dirrm include/mysql +@dirrmtry lib/mysql diff --git a/databases/percona55-server/Makefile b/databases/percona55-server/Makefile new file mode 100644 index 000000000000..2f4d90a29dfa --- /dev/null +++ b/databases/percona55-server/Makefile @@ -0,0 +1,101 @@ +# $FreeBSD$ + +PORTNAME?= percona +PORTVERSION= 5.5.28.29.2 +PORTREVISION?= 0 +CATEGORIES= databases ipv6 +MASTER_SITES= http://www.percona.com/downloads/Percona-Server-5.5/LATEST/source/ +MASTER_SITE_SUBDIR= MySQL-5.5 +PKGNAMESUFFIX?= -server +DISTNAME= Percona-Server-5.5.28-rel29.2 + +MAINTAINER= ale@FreeBSD.org +COMMENT?= Multithreaded SQL database (server) + +SLAVEDIRS= databases/percona55-client +USE_CMAKE= yes +USE_BISON= build +MAKE_JOBS_SAFE= yes + +OPTIONS_DEFINE= OPENSSL FASTMTX +OPTIONS_DEFAULT= OPENSSL +FASTMTX_DESC= Replace mutexes with spinlocks + +DATADIR= ${PREFIX}/share/mysql +USE_LDCONFIG= ${PREFIX}/lib/mysql + +CMAKE_ARGS+= -DINSTALL_DOCDIR="share/doc/mysql" \ + -DINSTALL_DOCREADMEDIR="share/doc/mysql" \ + -DINSTALL_INCLUDEDIR="include/mysql" \ + -DINSTALL_INFODIR="info" \ + -DINSTALL_LIBDIR="lib/mysql" \ + -DINSTALL_MANDIR="man" \ + -DINSTALL_MYSQLDATADIR="/var/db/mysql" \ + -DINSTALL_MYSQLSHAREDIR="share/mysql" \ + -DINSTALL_MYSQLTESTDIR="share/mysql/tests" \ + -DINSTALL_PLUGINDIR="lib/mysql/plugin" \ + -DINSTALL_SBINDIR="libexec" \ + -DINSTALL_SCRIPTDIR="bin" \ + -DINSTALL_SHAREDIR="share" \ + -DINSTALL_SQLBENCHDIR="share/mysql" \ + -DINSTALL_SUPPORTFILESDIR="share/mysql" \ + -DWITH_LIBEDIT=0 \ + -DWITH_LIBWRAP=1 \ + -DHAVE_PAM=0 + +.ifdef USE_MYSQL +.error You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again. +.endif + +.include <bsd.port.options.mk> + +.if ${PORT_OPTIONS:MOPENSSL} +CMAKE_ARGS+= -DWITH_SSL=bundled +.endif +.if ${PORT_OPTIONS:MFASTMTX} +CMAKE_ARGS+= -DWITH_FAST_MUTEXES=1 +.endif + +# MySQL-Server part +.if !defined(CLIENT_ONLY) +USE_MYSQL= yes +WANT_MYSQL_VER= 55p + +LATEST_LINK= percona55-server + +CONFLICTS_INSTALL= mysql-server-[345].* percona-server-5.[0-46-9].* + +USE_RC_SUBR= mysql-server + +USERS= mysql +GROUPS= mysql + +INFO= mysql + +MAN1= my_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 myisampack.1 \ + mysql.server.1 mysql_convert_table_format.1 mysql_fix_extensions.1 \ + mysql_install_db.1 mysql_plugin.1 mysql_secure_installation.1 mysql_setpermission.1 \ + mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql_zap.1 mysqlbug.1 \ + mysqld_multi.1 mysqld_safe.1 mysqldumpslow.1 mysqlhotcopy.1 mysqlman.1 \ + mysqltest.1 perror.1 replace.1 resolve_stack_dump.1 resolveip.1 + +MAN8= mysqld.8 + +CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON" + +post-install: +.if !defined(PACKAGE_BUILDING) + @${CAT} ${PKGMESSAGE} +.endif +.endif + +post-patch: + @${REINPLACE_CMD} 's/*.1/${MAN1}/' ${WRKSRC}/man/CMakeLists.txt + +.include <bsd.port.pre.mk> + +.if ${ARCH} == "arm" +BROKEN= Does not compile on arm +.endif + +.include <bsd.port.post.mk> diff --git a/databases/percona55-server/distinfo b/databases/percona55-server/distinfo new file mode 100644 index 000000000000..523f99dcfb6f --- /dev/null +++ b/databases/percona55-server/distinfo @@ -0,0 +1,2 @@ +SHA256 (Percona-Server-5.5.28-rel29.2.tar.gz) = 4f2ca2b4bf8ebdde0d5c643cc382fd7242492c084715b5c7d83619a9ff7a40a4 +SIZE (Percona-Server-5.5.28-rel29.2.tar.gz) = 22250160 diff --git a/databases/percona55-server/files/mysql-server.in b/databases/percona55-server/files/mysql-server.in new file mode 100644 index 000000000000..fa701dcca45b --- /dev/null +++ b/databases/percona55-server/files/mysql-server.in @@ -0,0 +1,75 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: mysql +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# +# Add the following line to /etc/rc.conf to enable mysql: +# mysql_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable MySQL. +# mysql_limits (bool): Set to "NO" by default. +# Set it to yes to run `limits -e -U mysql` +# just before mysql starts. +# mysql_dbdir (str): Default to "/var/db/mysql" +# Base database directory. +# mysql_pidfile (str): Custum PID file path and name. +# Default to "${mysql_dbdir}/${hostname}.pid". +# mysql_args (str): Custom additional arguments to be passed +# to mysqld_safe (default empty). +# + +. /etc/rc.subr + +name="mysql" +rcvar=mysql_enable + +load_rc_config $name + +: ${mysql_enable="NO"} +: ${mysql_limits="NO"} +: ${mysql_dbdir="/var/db/mysql"} + +mysql_user="mysql" +mysql_limits_args="-e -U ${mysql_user}" +pidfile=${mysql_pidfile:-"${mysql_dbdir}/`/bin/hostname`.pid"} +command="/usr/sbin/daemon" +command_args="-c -f %%PREFIX%%/bin/mysqld_safe --defaults-extra-file=${mysql_dbdir}/my.cnf --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args}" +procname="%%PREFIX%%/libexec/mysqld" +start_precmd="${name}_prestart" +start_postcmd="${name}_poststart" +mysql_install_db="%%PREFIX%%/bin/mysql_install_db" +mysql_install_db_args="--basedir=%%PREFIX%% --datadir=${mysql_dbdir} --force" + +mysql_create_auth_tables() +{ + eval $mysql_install_db $mysql_install_db_args >/dev/null 2>/dev/null + [ $? -eq 0 ] && chown -R ${mysql_user}:${mysql_user} ${mysql_dbdir} +} + +mysql_prestart() +{ + if [ ! -d "${mysql_dbdir}/mysql/." ]; then + mysql_create_auth_tables || return 1 + fi + if checkyesno mysql_limits; then + eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null + else + return 0 + fi +} + +mysql_poststart() +{ + local timeout=15 + while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do + timeout=$(( timeout - 1 )) + sleep 1 + done + return 0 +} + +run_rc_command "$1" diff --git a/databases/percona55-server/files/patch-CMakeLists.txt b/databases/percona55-server/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..c0a8713402cb --- /dev/null +++ b/databases/percona55-server/files/patch-CMakeLists.txt @@ -0,0 +1,38 @@ +--- CMakeLists.txt.orig 2010-12-03 18:58:24.000000000 +0100 ++++ CMakeLists.txt 2010-12-23 18:02:02.000000000 +0100 +@@ -293,7 +293,6 @@ + + ADD_SUBDIRECTORY(extra) + IF(NOT WITHOUT_SERVER) +- ADD_SUBDIRECTORY(tests) + ADD_SUBDIRECTORY(client) + ADD_SUBDIRECTORY(sql) + ADD_SUBDIRECTORY(sql/share) +@@ -301,14 +300,10 @@ + OPTION (WITH_EMBEDDED_SERVER "Compile MySQL with embedded server" OFF) + IF(WITH_EMBEDDED_SERVER) + ADD_SUBDIRECTORY(libmysqld) +- ADD_SUBDIRECTORY(libmysqld/examples) + ENDIF(WITH_EMBEDDED_SERVER) + +- ADD_SUBDIRECTORY(mysql-test) +- ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess) + ADD_SUBDIRECTORY(support-files) + ADD_SUBDIRECTORY(scripts) +- ADD_SUBDIRECTORY(sql-bench) + IF(UNIX) + ADD_SUBDIRECTORY(man) + ENDIF() +@@ -343,6 +338,7 @@ + # + # RPM installs documentation directly from the source tree + # ++IF(FALSE) + IF(NOT INSTALL_LAYOUT MATCHES "RPM") + INSTALL(FILES COPYING LICENSE.mysql + DESTINATION ${INSTALL_DOCREADMEDIR} +@@ -367,3 +363,4 @@ + PATTERN "sp-imp-spec.txt" EXCLUDE + ) + ENDIF() ++ENDIF() diff --git a/databases/percona55-server/files/patch-client_CMakeLists.txt b/databases/percona55-server/files/patch-client_CMakeLists.txt new file mode 100644 index 000000000000..2c5864188b98 --- /dev/null +++ b/databases/percona55-server/files/patch-client_CMakeLists.txt @@ -0,0 +1,61 @@ +--- client/CMakeLists.txt.orig 2011-09-09 17:56:40.000000000 +0200 ++++ client/CMakeLists.txt 2011-10-07 11:06:21.000000000 +0200 +@@ -27,17 +27,20 @@ + + ADD_DEFINITIONS(${READLINE_DEFINES}) + ADD_DEFINITIONS(${SSL_DEFINES}) ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc sql_string.cc) + TARGET_LINK_LIBRARIES(mysql mysqlclient) + IF(UNIX) + TARGET_LINK_LIBRARIES(mysql ${READLINE_LIBRARY}) + ENDIF(UNIX) ++ENDIF() + + MYSQL_ADD_EXECUTABLE(mysqltest mysqltest.cc COMPONENT Test) + SET_SOURCE_FILES_PROPERTIES(mysqltest.cc PROPERTIES COMPILE_FLAGS "-DTHREADS") + TARGET_LINK_LIBRARIES(mysqltest mysqlclient regex) + + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysqlcheck mysqlcheck.c) + TARGET_LINK_LIBRARIES(mysqlcheck mysqlclient) + +@@ -46,17 +49,21 @@ + + MYSQL_ADD_EXECUTABLE(mysqlimport mysqlimport.c) + TARGET_LINK_LIBRARIES(mysqlimport mysqlclient) ++ENDIF() + + MYSQL_ADD_EXECUTABLE(mysql_upgrade mysql_upgrade.c) + TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient) + ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs) + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysqlshow mysqlshow.c) + TARGET_LINK_LIBRARIES(mysqlshow mysqlclient) ++ENDIF() + + MYSQL_ADD_EXECUTABLE(mysql_plugin mysql_plugin.c) + TARGET_LINK_LIBRARIES(mysql_plugin mysqlclient) + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc) + TARGET_LINK_LIBRARIES(mysqlbinlog mysqlclient) + +@@ -66,13 +73,14 @@ + MYSQL_ADD_EXECUTABLE(mysqlslap mysqlslap.c) + SET_SOURCE_FILES_PROPERTIES(mysqlslap.c PROPERTIES COMPILE_FLAGS "-DTHREADS") + TARGET_LINK_LIBRARIES(mysqlslap mysqlclient) ++ENDIF() + + # "WIN32" also covers 64 bit. "echo" is used in some files below "mysql-test/". + IF(WIN32) + MYSQL_ADD_EXECUTABLE(echo echo.c) + ENDIF(WIN32) + +-SET_TARGET_PROPERTIES (mysqlcheck mysqldump mysqlimport mysql_upgrade mysqlshow mysqlslap mysql_plugin ++SET_TARGET_PROPERTIES (mysql_upgrade mysql_plugin + PROPERTIES HAS_CXX TRUE) + + ADD_DEFINITIONS(-DHAVE_DLOPEN) diff --git a/databases/percona55-server/files/patch-cmake_plugin.cmake b/databases/percona55-server/files/patch-cmake_plugin.cmake new file mode 100644 index 000000000000..c151ea35f4ee --- /dev/null +++ b/databases/percona55-server/files/patch-cmake_plugin.cmake @@ -0,0 +1,10 @@ +--- cmake/plugin.cmake.orig 2011-09-09 17:56:39.000000000 +0200 ++++ cmake/plugin.cmake 2011-10-07 10:56:37.000000000 +0200 +@@ -195,7 +195,6 @@ + OUTPUT_NAME "${ARG_MODULE_OUTPUT_NAME}") + # Install dynamic library + MYSQL_INSTALL_TARGETS(${target} DESTINATION ${INSTALL_PLUGINDIR} COMPONENT Server) +- INSTALL_DEBUG_TARGET(${target} DESTINATION ${INSTALL_PLUGINDIR}/debug) + # Add installed files to list for RPMs + FILE(APPEND ${CMAKE_BINARY_DIR}/support-files/plugins.files + "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/${ARG_MODULE_OUTPUT_NAME}.so\n" diff --git a/databases/percona55-server/files/patch-extra_CMakeLists.txt b/databases/percona55-server/files/patch-extra_CMakeLists.txt new file mode 100644 index 000000000000..f8f555f5e0e8 --- /dev/null +++ b/databases/percona55-server/files/patch-extra_CMakeLists.txt @@ -0,0 +1,12 @@ +--- extra/CMakeLists.txt.orig 2010-12-23 17:38:06.000000000 +0100 ++++ extra/CMakeLists.txt 2010-12-23 17:38:51.000000000 +0100 +@@ -75,7 +75,9 @@ + MYSQL_ADD_EXECUTABLE(resolve_stack_dump resolve_stack_dump.c) + TARGET_LINK_LIBRARIES(resolve_stack_dump mysys) + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysql_waitpid mysql_waitpid.c) + TARGET_LINK_LIBRARIES(mysql_waitpid mysys) + ENDIF() ++ENDIF() + diff --git a/databases/percona55-server/files/patch-extra_yassl_taocrypt_src_integer.cpp b/databases/percona55-server/files/patch-extra_yassl_taocrypt_src_integer.cpp new file mode 100644 index 000000000000..e94bf77c990d --- /dev/null +++ b/databases/percona55-server/files/patch-extra_yassl_taocrypt_src_integer.cpp @@ -0,0 +1,11 @@ +--- extra/yassl/taocrypt/src/integer.cpp.orig 2012-04-02 09:37:09.000000000 +0200 ++++ extra/yassl/taocrypt/src/integer.cpp 2012-04-02 09:37:41.000000000 +0200 +@@ -73,7 +73,7 @@ + CPP_TYPENAME AlignedAllocator<T>::pointer AlignedAllocator<T>::allocate( + size_type n, const void *) + { +- if (n > max_size()) ++ if (n > AlignedAllocator<T>::max_size()) + return 0; + if (n == 0) + return 0; diff --git a/databases/percona55-server/files/patch-include_CMakeLists.txt b/databases/percona55-server/files/patch-include_CMakeLists.txt new file mode 100644 index 000000000000..2478ae5fa6e3 --- /dev/null +++ b/databases/percona55-server/files/patch-include_CMakeLists.txt @@ -0,0 +1,10 @@ +--- include/CMakeLists.txt.orig 2011-01-19 23:37:08.000000000 +0100 ++++ include/CMakeLists.txt 2011-02-07 22:40:32.698758463 +0100 +@@ -57,5 +57,7 @@ + ${HEADERS_GEN_CONFIGURE} + ) + ++IF(FALSE) + INSTALL(FILES ${HEADERS} DESTINATION ${INSTALL_INCLUDEDIR} COMPONENT Development) + INSTALL(DIRECTORY mysql/ DESTINATION ${INSTALL_INCLUDEDIR}/mysql COMPONENT Development FILES_MATCHING PATTERN "*.h") ++ENDIF() diff --git a/databases/percona55-server/files/patch-include_my_compare.h b/databases/percona55-server/files/patch-include_my_compare.h new file mode 100644 index 000000000000..093c8ae37789 --- /dev/null +++ b/databases/percona55-server/files/patch-include_my_compare.h @@ -0,0 +1,11 @@ +--- include/my_compare.h.orig 2011-05-10 09:46:46.000000000 +0200 ++++ include/my_compare.h 2011-05-10 09:47:01.000000000 +0200 +@@ -39,7 +39,7 @@ + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH. + */ + +-#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define HA_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define HA_MAX_KEY_SEG 16 /* Max segments for key */ + + #define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24+ 6+6) diff --git a/databases/percona55-server/files/patch-include_myisam.h b/databases/percona55-server/files/patch-include_myisam.h new file mode 100644 index 000000000000..450645400dd5 --- /dev/null +++ b/databases/percona55-server/files/patch-include_myisam.h @@ -0,0 +1,11 @@ +--- include/myisam.h.orig 2009-02-16 23:04:54.000000000 +0100 ++++ include/myisam.h 2009-02-16 23:10:08.000000000 +0100 +@@ -48,7 +48,7 @@ + The following defines can be increased if necessary. + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH. + */ +-#define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define MI_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define MI_MAX_KEY_SEG 16 /* Max segments for key */ + + #define MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH+MI_MAX_KEY_SEG*6+8+8) diff --git a/databases/percona55-server/files/patch-libmysql_CMakeLists.txt b/databases/percona55-server/files/patch-libmysql_CMakeLists.txt new file mode 100644 index 000000000000..7f11bedc9e43 --- /dev/null +++ b/databases/percona55-server/files/patch-libmysql_CMakeLists.txt @@ -0,0 +1,36 @@ +--- libmysql/CMakeLists.txt.orig 2010-12-03 18:58:26.000000000 +0100 ++++ libmysql/CMakeLists.txt 2010-12-23 22:01:37.000000000 +0100 +@@ -153,13 +153,14 @@ + + # Merge several convenience libraries into one big mysqlclient + # and link them together into shared library. +-MERGE_LIBRARIES(mysqlclient STATIC ${LIBS} COMPONENT Development) ++MERGE_LIBRARIES(mysqlclient STATIC ${LIBS} COMPONENT Development NOINSTALL) + + # Visual Studio users need debug static library for debug projects + IF(MSVC) + INSTALL_DEBUG_TARGET(mysqlclient DESTINATION ${INSTALL_LIBDIR}/debug) + ENDIF() + ++IF(FALSE) + IF(UNIX) + MACRO(GET_VERSIONED_LIBNAME LIBNAME EXTENSION VERSION OUTNAME) + SET(DOT_VERSION ".${VERSION}") +@@ -174,9 +175,11 @@ + ENDMACRO() + INSTALL_SYMLINK(${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a mysqlclient ${INSTALL_LIBDIR} Development) + ENDIF() ++ENDIF() + + IF(NOT DISABLE_SHARED) +- MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS} COMPONENT SharedLibraries) ++ MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS} COMPONENT SharedLibraries NOINSTALL) ++IF(FALSE) + IF(UNIX) + # libtool compatability + IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE) +@@ -223,3 +226,4 @@ + ENDFOREACH() + ENDIF() + ENDIF() ++ENDIF() diff --git a/databases/percona55-server/files/patch-libservices_CMakeLists.txt b/databases/percona55-server/files/patch-libservices_CMakeLists.txt new file mode 100644 index 000000000000..fcbcea7aed21 --- /dev/null +++ b/databases/percona55-server/files/patch-libservices_CMakeLists.txt @@ -0,0 +1,9 @@ +--- libservices/CMakeLists.txt.orig 2010-12-23 17:13:03.000000000 +0100 ++++ libservices/CMakeLists.txt 2010-12-23 17:13:17.000000000 +0100 +@@ -22,4 +22,6 @@ + my_thread_scheduler_service.c) + + ADD_LIBRARY(mysqlservices ${MYSQLSERVICES_SOURCES}) ++IF(FALSE) + INSTALL(TARGETS mysqlservices DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) ++ENDIF() diff --git a/databases/percona55-server/files/patch-man_CMakeLists.txt b/databases/percona55-server/files/patch-man_CMakeLists.txt new file mode 100644 index 000000000000..7849c77af111 --- /dev/null +++ b/databases/percona55-server/files/patch-man_CMakeLists.txt @@ -0,0 +1,11 @@ +--- man/CMakeLists.txt.orig 2011-10-22 14:36:06.000000000 +0200 ++++ man/CMakeLists.txt 2011-10-22 14:36:23.000000000 +0200 +@@ -15,8 +15,6 @@ + + # Copy man pages + FILE(GLOB MAN1_FILES *.1) +-FILE(GLOB MAN1_EXCLUDE make_win_bin_dist.1) +-FILE(GLOB MAN1_NDB ndb*.1) + FILE(GLOB MAN8_FILES *.8) + FILE(GLOB MAN8_NDB ndb*.8) + IF(MAN1_FILES) diff --git a/databases/percona55-server/files/patch-mysys_default.c b/databases/percona55-server/files/patch-mysys_default.c new file mode 100644 index 000000000000..816105371bdf --- /dev/null +++ b/databases/percona55-server/files/patch-mysys_default.c @@ -0,0 +1,31 @@ +--- mysys/default.c.orig 2010-11-02 23:01:13.000000000 +0100 ++++ mysys/default.c 2010-11-10 16:39:51.000000000 +0100 +@@ -70,7 +70,7 @@ + + /* Which directories are searched for options (and in which order) */ + +-#define MAX_DEFAULT_DIRS 6 ++#define MAX_DEFAULT_DIRS 7 + #define DEFAULT_DIRS_SIZE (MAX_DEFAULT_DIRS + 1) /* Terminate with NULL */ + static const char **default_directories = NULL; + +@@ -711,7 +711,7 @@ + { + MY_STAT stat_info; + if (!my_stat(name,&stat_info,MYF(0))) +- return 1; ++ return 0; + /* + Ignore world-writable regular files. + This is mainly done to protect us to not read a file created by +@@ -1153,7 +1153,10 @@ + + #if defined(DEFAULT_SYSCONFDIR) + if (DEFAULT_SYSCONFDIR[0]) ++ { + errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs); ++ errors += add_directory(alloc, DEFAULT_SYSCONFDIR "/mysql", dirs); ++ } + #endif /* DEFAULT_SYSCONFDIR */ + + #endif diff --git a/databases/percona55-server/files/patch-scripts_CMakeLists.txt b/databases/percona55-server/files/patch-scripts_CMakeLists.txt new file mode 100644 index 000000000000..de410a1d3549 --- /dev/null +++ b/databases/percona55-server/files/patch-scripts_CMakeLists.txt @@ -0,0 +1,37 @@ +--- scripts/CMakeLists.txt.orig 2011-07-13 21:09:03.000000000 +0200 ++++ scripts/CMakeLists.txt 2011-09-01 09:48:22.000000000 +0200 +@@ -266,6 +266,8 @@ + GET_FILENAME_COMPONENT(lib "${lib}" NAME_WE) + STRING(REGEX REPLACE "^lib" "" lib "${lib}") + SET(${var} "${${var}}-l${lib} " ) ++ ELSEIF(lib STREQUAL "-pthread") ++ SET(${var} "${${var}}-pthread " ) + ELSE() + SET(${var} "${${var}}-l${lib} " ) + ENDIF() +@@ -316,16 +318,11 @@ + # On Unix, most of the files end up in the bin directory + SET(mysql_config_COMPONENT COMPONENT Development) + SET(BIN_SCRIPTS +- msql2mysql +- mysql_config + mysql_fix_extensions + mysql_setpermission + mysql_secure_installation + mysql_zap +- mysqlaccess +- mysqlaccess.conf + mysql_convert_table_format +- mysql_find_rows + mysqlhotcopy + mysqldumpslow + mysqld_multi +@@ -334,7 +331,7 @@ + FOREACH(file ${BIN_SCRIPTS}) + IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh +- ${CMAKE_CURRENT_BINARY_DIR}/${file} ESCAPE_QUOTES @ONLY) ++ ${CMAKE_CURRENT_BINARY_DIR}/${file} @ONLY) + ELSEIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file} + ${CMAKE_CURRENT_BINARY_DIR}/${file} COPYONLY) diff --git a/databases/percona55-server/files/patch-scripts_mysqld_safe.sh b/databases/percona55-server/files/patch-scripts_mysqld_safe.sh new file mode 100644 index 000000000000..2a30469922f0 --- /dev/null +++ b/databases/percona55-server/files/patch-scripts_mysqld_safe.sh @@ -0,0 +1,24 @@ +--- scripts/mysqld_safe.sh.orig 2007-10-08 10:39:23.000000000 +0200 ++++ scripts/mysqld_safe.sh 2007-10-08 10:40:52.000000000 +0200 +@@ -242,10 +242,10 @@ + + if test -z "$MYSQL_HOME" + then +- if test -r "$MY_BASEDIR_VERSION/my.cnf" && test -r "$DATADIR/my.cnf" ++ if test -r "$MY_BASEDIR_VERSION/etc/my.cnf" && test -r "$DATADIR/my.cnf" + then + log_error "WARNING: Found two instances of my.cnf - +-$MY_BASEDIR_VERSION/my.cnf and ++$MY_BASEDIR_VERSION/etc/my.cnf and + $DATADIR/my.cnf + IGNORING $DATADIR/my.cnf" + +@@ -254,7 +254,7 @@ + then + log_error "WARNING: Found $DATADIR/my.cnf + The data directory is a deprecated location for my.cnf, please move it to +-$MY_BASEDIR_VERSION/my.cnf" ++$MY_BASEDIR_VERSION/etc/my.cnf" + MYSQL_HOME=$DATADIR + else + MYSQL_HOME=$MY_BASEDIR_VERSION diff --git a/databases/percona55-server/files/patch-sql_CMakeLists.txt b/databases/percona55-server/files/patch-sql_CMakeLists.txt new file mode 100644 index 000000000000..e4d1b520c529 --- /dev/null +++ b/databases/percona55-server/files/patch-sql_CMakeLists.txt @@ -0,0 +1,18 @@ +--- sql/CMakeLists.txt.orig 2010-12-23 17:31:28.000000000 +0100 ++++ sql/CMakeLists.txt 2010-12-23 17:33:36.000000000 +0100 +@@ -245,6 +245,7 @@ + + IF(INSTALL_LAYOUT STREQUAL "STANDALONE") + ++IF(FALSE) + # We need to create empty directories (data/test) the installation. + # This does not work with current CPack due to http://www.cmake.org/Bug/view.php?id=8767 + # Avoid completely empty directories and install dummy file instead. +@@ -286,6 +287,7 @@ + INSTALL(FILES ${DUMMY_FILE} DESTINATION data/mysql COMPONENT DataFiles) + ENDIF() + ENDIF() ++ENDIF() + + ADD_CUSTOM_TARGET(show-dist-name + COMMAND ${CMAKE_COMMAND} -E echo "${CPACK_PACKAGE_FILE_NAME}" diff --git a/databases/percona55-server/files/patch-sql_sys_vars.cc b/databases/percona55-server/files/patch-sql_sys_vars.cc new file mode 100644 index 000000000000..e8f0caff4aff --- /dev/null +++ b/databases/percona55-server/files/patch-sql_sys_vars.cc @@ -0,0 +1,38 @@ +--- sql/sys_vars.cc.orig 2012-06-15 17:03:32.000000000 +0200 ++++ sql/sys_vars.cc 2012-06-15 17:16:23.000000000 +0200 +@@ -900,7 +900,7 @@ + "connection before closing it", + SESSION_VAR(net_interactive_timeout), + CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); ++ VALID_RANGE(1, INT_MAX32/1000), DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); + + static Sys_var_ulong Sys_join_buffer_size( + "join_buffer_size", +@@ -1401,7 +1401,7 @@ + "Number of seconds to wait for more data from a connection before " + "aborting the read", + SESSION_VAR(net_read_timeout), CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_READ_TIMEOUT), BLOCK_SIZE(1), ++ VALID_RANGE(1, INT_MAX32/1000), DEFAULT(NET_READ_TIMEOUT), BLOCK_SIZE(1), + NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), + ON_UPDATE(fix_net_read_timeout)); + +@@ -1416,7 +1416,7 @@ + "Number of seconds to wait for a block to be written to a connection " + "before aborting the write", + SESSION_VAR(net_write_timeout), CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_WRITE_TIMEOUT), BLOCK_SIZE(1), ++ VALID_RANGE(1, INT_MAX32/1000), DEFAULT(NET_WRITE_TIMEOUT), BLOCK_SIZE(1), + NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), + ON_UPDATE(fix_net_write_timeout)); + +@@ -2257,7 +2257,7 @@ + "The number of seconds the server waits for activity on a " + "connection before closing it", + SESSION_VAR(net_wait_timeout), CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, IF_WIN(INT_MAX32/1000, LONG_TIMEOUT)), ++ VALID_RANGE(1, INT_MAX32/1000), + DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); + + /** propagates changes to the relevant flag of @@optimizer_switch */ diff --git a/databases/percona55-server/files/patch-support-files_CMakeLists.txt b/databases/percona55-server/files/patch-support-files_CMakeLists.txt new file mode 100644 index 000000000000..159e1fa71ba2 --- /dev/null +++ b/databases/percona55-server/files/patch-support-files_CMakeLists.txt @@ -0,0 +1,12 @@ +--- support-files/CMakeLists.txt.orig 2010-12-23 17:38:19.000000000 +0100 ++++ support-files/CMakeLists.txt 2010-12-23 17:41:11.000000000 +0100 +@@ -74,7 +74,9 @@ + INSTALL(FILES magic DESTINATION ${inst_location} COMPONENT SupportFiles) + ENDIF() + ++IF(FALSE) + INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) ++ENDIF() + CONFIGURE_FILE(MySQL-shared-compat.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/MySQL-shared-compat.spec @ONLY) + CONFIGURE_FILE(mysql.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/mysql.spec @ONLY) + CONFIGURE_FILE(mysql.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/mysql.${VERSION}.spec @ONLY) diff --git a/databases/percona55-server/pkg-descr b/databases/percona55-server/pkg-descr new file mode 100644 index 000000000000..9d0e268ad067 --- /dev/null +++ b/databases/percona55-server/pkg-descr @@ -0,0 +1,3 @@ +Percona Server is an enhanced drop-in replacement for MySQL + +WWW: http://www.percona.com/ diff --git a/databases/percona55-server/pkg-message b/databases/percona55-server/pkg-message new file mode 100644 index 000000000000..7e30302334e6 --- /dev/null +++ b/databases/percona55-server/pkg-message @@ -0,0 +1,7 @@ +************************************************************************ + +Remember to run mysql_upgrade (with the optional --datadir=<dbdir> flag) +the first time you start the MySQL server after an upgrade from an +earlier version. + +************************************************************************ diff --git a/databases/percona55-server/pkg-plist b/databases/percona55-server/pkg-plist new file mode 100644 index 000000000000..c389fb45c068 --- /dev/null +++ b/databases/percona55-server/pkg-plist @@ -0,0 +1,140 @@ +@stopdaemon mysql-server +bin/innochecksum +bin/my_print_defaults +bin/myisam_ftdump +bin/myisamchk +bin/myisamlog +bin/myisampack +bin/mysql_convert_table_format +bin/mysql_fix_extensions +bin/mysql_install_db +bin/mysql_plugin +bin/mysql_secure_installation +bin/mysql_setpermission +bin/mysql_tzinfo_to_sql +bin/mysql_upgrade +bin/mysql_zap +bin/mysqlbug +bin/mysqld_multi +bin/mysqld_safe +bin/mysqldumpslow +bin/mysqlhotcopy +bin/mysqltest +bin/perror +bin/replace +bin/resolve_stack_dump +bin/resolveip +lib/mysql/libmysqld.a +lib/mysql/plugin/adt_null.so +lib/mysql/plugin/auth.so +lib/mysql/plugin/auth_test_plugin.so +lib/mysql/plugin/daemon_example.ini +lib/mysql/plugin/ha_archive.so +lib/mysql/plugin/ha_blackhole.so +lib/mysql/plugin/ha_example.so +lib/mysql/plugin/ha_federated.so +lib/mysql/plugin/libdaemon_example.so +lib/mysql/plugin/mypluglib.so +lib/mysql/plugin/qa_auth_client.so +lib/mysql/plugin/qa_auth_interface.so +lib/mysql/plugin/qa_auth_server.so +lib/mysql/plugin/semisync_master.so +lib/mysql/plugin/semisync_slave.so +libexec/mysqld +%%DATADIR%%/binary-configure +%%DATADIR%%/charsets/Index.xml +%%DATADIR%%/charsets/README +%%DATADIR%%/charsets/armscii8.xml +%%DATADIR%%/charsets/ascii.xml +%%DATADIR%%/charsets/cp1250.xml +%%DATADIR%%/charsets/cp1251.xml +%%DATADIR%%/charsets/cp1256.xml +%%DATADIR%%/charsets/cp1257.xml +%%DATADIR%%/charsets/cp850.xml +%%DATADIR%%/charsets/cp852.xml +%%DATADIR%%/charsets/cp866.xml +%%DATADIR%%/charsets/dec8.xml +%%DATADIR%%/charsets/geostd8.xml +%%DATADIR%%/charsets/greek.xml +%%DATADIR%%/charsets/hebrew.xml +%%DATADIR%%/charsets/hp8.xml +%%DATADIR%%/charsets/keybcs2.xml +%%DATADIR%%/charsets/koi8r.xml +%%DATADIR%%/charsets/koi8u.xml +%%DATADIR%%/charsets/latin1.xml +%%DATADIR%%/charsets/latin2.xml +%%DATADIR%%/charsets/latin5.xml +%%DATADIR%%/charsets/latin7.xml +%%DATADIR%%/charsets/macce.xml +%%DATADIR%%/charsets/macroman.xml +%%DATADIR%%/charsets/swe7.xml +%%DATADIR%%/config.huge.ini +%%DATADIR%%/config.medium.ini +%%DATADIR%%/config.small.ini +%%DATADIR%%/czech/errmsg.sys +%%DATADIR%%/danish/errmsg.sys +%%DATADIR%%/dutch/errmsg.sys +%%DATADIR%%/english/errmsg.sys +%%DATADIR%%/errmsg-utf8.txt +%%DATADIR%%/estonian/errmsg.sys +%%DATADIR%%/fill_help_tables.sql +%%DATADIR%%/french/errmsg.sys +%%DATADIR%%/german/errmsg.sys +%%DATADIR%%/greek/errmsg.sys +%%DATADIR%%/hungarian/errmsg.sys +%%DATADIR%%/italian/errmsg.sys +%%DATADIR%%/japanese/errmsg.sys +%%DATADIR%%/korean/errmsg.sys +%%DATADIR%%/magic +%%DATADIR%%/my-huge.cnf +%%DATADIR%%/my-innodb-heavy-4G.cnf +%%DATADIR%%/my-large.cnf +%%DATADIR%%/my-medium.cnf +%%DATADIR%%/my-small.cnf +%%DATADIR%%/mysql-log-rotate +%%DATADIR%%/mysql.server +%%DATADIR%%/mysql_system_tables.sql +%%DATADIR%%/mysql_system_tables_data.sql +%%DATADIR%%/mysql_test_data_timezone.sql +%%DATADIR%%/mysqld_multi.server +%%DATADIR%%/ndb-config-2-node.ini +%%DATADIR%%/norwegian-ny/errmsg.sys +%%DATADIR%%/norwegian/errmsg.sys +%%DATADIR%%/polish/errmsg.sys +%%DATADIR%%/portuguese/errmsg.sys +%%DATADIR%%/romanian/errmsg.sys +%%DATADIR%%/russian/errmsg.sys +%%DATADIR%%/serbian/errmsg.sys +%%DATADIR%%/slovak/errmsg.sys +%%DATADIR%%/spanish/errmsg.sys +%%DATADIR%%/swedish/errmsg.sys +%%DATADIR%%/ukrainian/errmsg.sys +@dirrm lib/mysql/plugin +@dirrmtry lib/mysql +@dirrm %%DATADIR%%/charsets +@dirrm %%DATADIR%%/czech +@dirrm %%DATADIR%%/danish +@dirrm %%DATADIR%%/dutch +@dirrm %%DATADIR%%/english +@dirrm %%DATADIR%%/estonian +@dirrm %%DATADIR%%/french +@dirrm %%DATADIR%%/german +@dirrm %%DATADIR%%/greek +@dirrm %%DATADIR%%/hungarian +@dirrm %%DATADIR%%/italian +@dirrm %%DATADIR%%/japanese +@dirrm %%DATADIR%%/korean +@dirrm %%DATADIR%%/norwegian +@dirrm %%DATADIR%%/norwegian-ny +@dirrm %%DATADIR%%/polish +@dirrm %%DATADIR%%/portuguese +@dirrm %%DATADIR%%/romanian +@dirrm %%DATADIR%%/russian +@dirrm %%DATADIR%%/serbian +@dirrm %%DATADIR%%/slovak +@dirrm %%DATADIR%%/spanish +@dirrm %%DATADIR%%/swedish +@dirrm %%DATADIR%%/ukrainian +@dirrm %%DATADIR%% +@cwd /var +@dirrmtry db/mysql |