commit:     37c0720989f416f12ce2f3c796d2938c329a6a5d
Author:     Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Thu Jul  9 19:55:49 2015 +0000
Commit:     Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Thu Jul  9 19:55:49 2015 +0000
URL:        https://gitweb.gentoo.org/proj/mysql.git/commit/?id=37c07209

Add patched dev-db/mysql

 dev-db/mysql/files/without-clientlibs-tools.patch | 125 ++++++++++++++++
 dev-db/mysql/mysql-5.6.25-r1.ebuild               | 167 ++++++++++++++++++++++
 2 files changed, 292 insertions(+)

diff --git a/dev-db/mysql/files/without-clientlibs-tools.patch 
b/dev-db/mysql/files/without-clientlibs-tools.patch
new file mode 100644
index 0000000..35e60de
--- /dev/null
+++ b/dev-db/mysql/files/without-clientlibs-tools.patch
@@ -0,0 +1,125 @@
+diff -aurN a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt   2015-07-09 09:04:00.118091000 -0400
++++ b/CMakeLists.txt   2015-07-09 09:17:06.291091000 -0400
+@@ -405,8 +405,6 @@
+ MYSQL_CHECK_ZLIB_WITH_COMPRESS()
+ # Add bundled yassl/taocrypt or system openssl.
+ MYSQL_CHECK_SSL()
+-# Add system/bundled editline.
+-MYSQL_CHECK_EDITLINE()
+ # Add libevent
+ MYSQL_CHECK_LIBEVENT()
+ 
+@@ -436,7 +434,10 @@
+   ADD_SUBDIRECTORY(storage/ndb)
+ ENDIF()
+ 
+-ADD_SUBDIRECTORY(include)
++IF(NOT WITHOUT_CLIENTLIBS)
++  ADD_SUBDIRECTORY(include)
++ENDIF(NOT WITHOUT_CLIENTLIBS)
++
+ ADD_SUBDIRECTORY(dbug)
+ ADD_SUBDIRECTORY(strings)
+ ADD_SUBDIRECTORY(vio)
+@@ -462,7 +463,6 @@
+ ENDIF()
+ 
+ ADD_SUBDIRECTORY(extra)
+-ADD_SUBDIRECTORY(client)
+ ADD_SUBDIRECTORY(sql/share)
+ ADD_SUBDIRECTORY(libservices)
+ 
+@@ -470,11 +470,20 @@
+   ADD_SUBDIRECTORY(man)
+ ENDIF()
+ 
++IF(NOT WITHOUT_TOOLS)
++  # Add system/bundled editline
++  MYSQL_CHECK_EDITLINE()
++  ADD_SUBDIRECTORY(client)
++ENDIF(NOT WITHOUT_TOOLS)
++
+ IF(NOT WITHOUT_SERVER)
+   ADD_SUBDIRECTORY(tests)
+   ADD_SUBDIRECTORY(sql)
+   OPTION (WITH_EMBEDDED_SERVER "Compile MySQL with embedded server" OFF)
+   IF(WITH_EMBEDDED_SERVER) 
++   IF(WITHOUT_TOOLS)
++     MYSQL_CHECK_EDITLINE()
++   ENDIF(WITHOUT_TOOLS)
+    ADD_SUBDIRECTORY(libmysqld)
+    ADD_SUBDIRECTORY(libmysqld/examples)
+   ENDIF(WITH_EMBEDDED_SERVER)
+diff -aurN a/extra/CMakeLists.txt b/extra/CMakeLists.txt
+--- a/extra/CMakeLists.txt     2015-05-05 07:05:53.000000000 -0400
++++ b/extra/CMakeLists.txt     2015-07-09 09:18:16.982091000 -0400
+@@ -59,15 +59,16 @@
+   ADD_DEPENDENCIES(GenError copy_openssl_extra)
+ ENDIF()
+ 
++IF(NOT WITHOUT_CLIENTLIBS)
++  MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.c)
++  TARGET_LINK_LIBRARIES(my_print_defaults  mysys mysys_ssl)
++  SET_TARGET_PROPERTIES(my_print_defaults PROPERTIES LINKER_LANGUAGE CXX)
+ 
+-MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.c)
+-TARGET_LINK_LIBRARIES(my_print_defaults  mysys mysys_ssl)
+-SET_TARGET_PROPERTIES(my_print_defaults PROPERTIES LINKER_LANGUAGE CXX)
+-
+-MYSQL_ADD_EXECUTABLE(perror perror.c)
+-ADD_DEPENDENCIES(perror GenError)
+-TARGET_LINK_LIBRARIES(perror mysys mysys_ssl)
+-SET_TARGET_PROPERTIES(perror PROPERTIES LINKER_LANGUAGE CXX)
++  MYSQL_ADD_EXECUTABLE(perror perror.c)
++  ADD_DEPENDENCIES(perror GenError)
++  TARGET_LINK_LIBRARIES(perror mysys mysys_ssl)
++  SET_TARGET_PROPERTIES(perror PROPERTIES LINKER_LANGUAGE CXX)
++ENDIF(NOT WITHOUT_CLIENTLIBS)
+ 
+ MYSQL_ADD_EXECUTABLE(resolveip resolveip.c)
+ TARGET_LINK_LIBRARIES(resolveip mysys mysys_ssl)
+diff -aurN a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt
+--- a/libmysql/CMakeLists.txt  2015-07-09 09:04:01.217091000 -0400
++++ b/libmysql/CMakeLists.txt  2015-07-09 09:22:47.903091000 -0400
+@@ -217,14 +217,14 @@
+ 
+ IF(UNIX)
+   GET_TARGET_NAME(mysqlclient lib_name)
+-  IF(ENABLE_STATIC_LIBS)
++  IF(ENABLE_STATIC_LIBS AND NOT WITHOUT_CLIENTLIBS)
+     INSTALL_SYMLINK(mysqlclient
+       ${lib_name} ${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a
+       ${INSTALL_LIBDIR} Development)
+   ENDIF()
+ ENDIF()
+ 
+-IF(NOT DISABLE_SHARED)
++IF(NOT DISABLE_SHARED AND NOT WITHOUT_CLIENTLIBS)
+   # Merge several convenience libraries into one big mysqlclient
+   # and link them together into shared library.
+   MERGE_LIBRARIES(libmysql SHARED ${LIBS}
+diff -aurN a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
+--- a/scripts/CMakeLists.txt   2015-07-09 09:04:00.401091000 -0400
++++ b/scripts/CMakeLists.txt   2015-07-09 09:20:25.723091000 -0400
+@@ -347,7 +347,6 @@
+   SET(mysql_config_COMPONENT COMPONENT Development)
+   SET(BIN_SCRIPTS
+     msql2mysql
+-    mysql_config
+     mysql_fix_extensions
+     mysql_setpermission
+     mysql_zap
+@@ -360,6 +359,12 @@
+     mysqld_multi
+     mysqld_safe
+   )
++  IF(NOT WITHOUT_CLIENTLIBS)
++    SET(BIN_SCRIPTS
++      ${BIN_SCRIPTS}
++      mysql_config
++    )
++  ENDIF(NOT WITHOUT_CLIENTLIBS)
+   FOREACH(file ${BIN_SCRIPTS})
+     IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh)
+       CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh

diff --git a/dev-db/mysql/mysql-5.6.25-r1.ebuild 
b/dev-db/mysql/mysql-5.6.25-r1.ebuild
new file mode 100644
index 0000000..8572ff1
--- /dev/null
+++ b/dev-db/mysql/mysql-5.6.25-r1.ebuild
@@ -0,0 +1,167 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-5.6.25.ebuild,v 1.1 
2015/06/01 16:18:23 grknight Exp $
+
+EAPI="5"
+
+MY_EXTRAS_VER="20150410-1944Z"
+MY_PV="${PV//_alpha_pre/-m}"
+MY_PV="${MY_PV//_/-}"
+HAS_TOOLS_PATCH="1"
+
+inherit toolchain-funcs mysql-multilib
+# only to make repoman happy. it is really set in the eclass
+IUSE="$IUSE"
+
+# REMEMBER: also update eclass/mysql*.eclass before committing!
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc 
~x86 ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos 
~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+
+# When MY_EXTRAS is bumped, the index should be revised to exclude these.
+EPATCH_EXCLUDE=''
+
+DEPEND="|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )"
+RDEPEND="${RDEPEND}"
+
+# Please do not add a naive src_unpack to this ebuild
+# If you want to add a single patch, copy the ebuild to an overlay
+# and create your own mysql-extras tarball, looking at 000_index.txt
+
+src_prepare() {
+       mysql-multilib_src_prepare
+       einfo "Applying experimental tools patch"
+       epatch "${FILESDIR}/without-clientlibs-tools.patch"
+}
+
+
+# Official test instructions:
+# USE='server embedded extraengine perl ssl static-libs community' \
+# FEATURES='test userpriv -usersandbox' \
+# ebuild mysql-X.X.XX.ebuild \
+# digest clean package
+multilib_src_test() {
+
+       if ! multilib_is_native_abi ; then
+               einfo "Server tests not available on non-native abi".
+               return 0;
+       fi
+
+       local TESTDIR="${BUILD_DIR}/mysql-test"
+       local retstatus_unit
+       local retstatus_tests
+
+       # Bug #213475 - MySQL _will_ object strenously if your machine is named
+       # localhost. Also causes weird failures.
+       [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be 
named localhost"
+
+       if use server ; then
+
+               if [[ $UID -eq 0 ]]; then
+                       die "Testing with FEATURES=-userpriv is no longer 
supported by upstream. Tests MUST be run as non-root."
+               fi
+               has usersandbox $FEATURES && eerror "Some tests may fail with 
FEATURES=usersandbox"
+
+               einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
+               addpredict /this-dir-does-not-exist/t9.MYI
+
+               # Run CTest (test-units)
+               cmake-utils_src_test
+               retstatus_unit=$?
+               [[ $retstatus_unit -eq 0 ]] || eerror "test-unit failed"
+
+               # Create a symlink to provided binaries so the tests can find 
them when client-libs is off
+               if ! use client-libs ; then
+                       ln -srf /usr/bin/my_print_defaults 
"${BUILD_DIR}/client/my_print_defaults" || die
+                       ln -srf /usr/bin/perror "${BUILD_DIR}/client/perror" || 
die
+                       mysql-multilib_disable_test main.perror "String 
mismatch due to not building local perror"
+               fi
+
+               # Ensure that parallel runs don't die
+               export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+               # Enable parallel testing, auto will try to detect number of 
cores
+               # You may set this by hand.
+               # The default maximum is 8 unless MTR_MAX_PARALLEL is increased
+               export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
+
+               # create directories because mysqladmin might right out of order
+               mkdir -p "${T}"/var-tests{,/log}
+
+               # create symlink for the tests to find mysql_tzinfo_to_sql
+               ln -s "${BUILD_DIR}/sql/mysql_tzinfo_to_sql" "${S}/sql/"
+
+               # These are failing in MySQL 5.5/5.6 for now and are believed 
to be
+               # false positives:
+               #
+               # main.information_schema, 
binlog.binlog_statement_insert_delayed,
+               # funcs_1.is_triggers funcs_1.is_tables_mysql,
+               # funcs_1.is_columns_mysql, binlog.binlog_mysqlbinlog_filter,
+               # perfschema.binlog_edge_mix, perfschema.binlog_edge_stmt,
+               # mysqld--help-notwin, funcs_1.is_triggers, 
funcs_1.is_tables_mysql, funcs_1.is_columns_mysql
+               # perfschema.binlog_edge_stmt, perfschema.binlog_edge_mix, 
binlog.binlog_mysqlbinlog_filter
+               # fails due to USE=-latin1 / utf8 default
+               #
+               # main.mysql_client_test:
+               # segfaults at random under Portage only, suspect resource 
limits.
+               #
+               # rpl.rpl_plugin_load
+               # fails due to included file not listed in expected result
+               # appears to be poor planning
+               #
+               # main.mysqlhotcopy_archive main.mysqlhotcopy_myisam
+               # fails due to bad cleanup of previous tests when run in 
parallel
+               # The tool is deprecated anyway
+               # Bug 532288
+               for t in \
+                       binlog.binlog_mysqlbinlog_filter \
+                       binlog.binlog_statement_insert_delayed \
+                       funcs_1.is_columns_mysql \
+                       funcs_1.is_tables_mysql \
+                       funcs_1.is_triggers \
+                       main.information_schema \
+                       main.mysql_client_test \
+                       main.mysqld--help-notwin \
+                       perfschema.binlog_edge_mix \
+                       perfschema.binlog_edge_stmt \
+                       rpl.rpl_plugin_load \
+                       main.mysqlhotcopy_archive main.mysqlhotcopy_myisam \
+               ; do
+                               mysql-multilib_disable_test  "$t" "False 
positives in Gentoo"
+               done
+
+               if ! use extraengine ; then
+                       # bug 401673, 530766
+                       for t in federated.federated_plugin ; do
+                               mysql-multilib_disable_test  "$t" "Test $t 
requires USE=extraengine (Need federated engine)"
+                       done
+               fi
+
+               # Run mysql tests
+               pushd "${TESTDIR}"
+
+               # Set file limits higher so tests run
+               ulimit -n 3000
+
+               # run mysql-test tests
+               perl mysql-test-run.pl --force --vardir="${T}/var-tests" \
+                       --suite-timeout=5000 --reorder
+               retstatus_tests=$?
+               [[ $retstatus_tests -eq 0 ]] || eerror "tests failed"
+               has usersandbox $FEATURES && eerror "Some tests may fail with 
FEATURES=usersandbox"
+
+               popd
+
+               # Cleanup is important for these testcases.
+               pkill -9 -f "${S}/ndb" 2>/dev/null
+               pkill -9 -f "${S}/sql" 2>/dev/null
+
+               failures=""
+               [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
+               [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
+               has usersandbox $FEATURES && eerror "Some tests may fail with 
FEATURES=usersandbox"
+
+               [[ -z "$failures" ]] || die "Test failures: $failures"
+               einfo "Tests successfully completed"
+
+       else
+               einfo "Skipping server tests due to minimal build."
+       fi
+}

Reply via email to