557bb81eb6
CMake support was updated to handle CMake version 3. The timed_mutexes system variable has no effect and is deprecated. Bugs Fixed InnoDB: Opening a parent table that has thousands of child tables could result in a long semaphore wait condition. Partitioning: Selecting from a table having multiple columns in its primary key and partitioned by LIST COLUMNS(R), where R was the last (rightmost) column listed in the primary key definition, returned an incorrect result. Replication: When using row-based replication, updating or deleting a row on the master that did not exist on the slave led to failure of the slave when it tried to process the change. This problem occurred with InnoDB tables lacking a primary key. Replication: Quotation marks were not always handled correctly by LOAD DATA INFILE when written into the binary log. Replication: A group of threads involved in acquiring locks could deadlock when the following events occurred: Dump thread reconnects from slave; on master, a new dump thread tries to kill zombie dump threads; having acquired the thread's LOCK_thd_data, it is about to acquire LOCK_log. Application thread executing show binary logs, having acquired LOCK_log and about to acquire LOCK_index. Application thread executing PURGE BINARY LOGS; having acquired LOCK_index, it is about to acquire LOCK_thread_count. Application thread executing SHOW PROCESSLIST (or SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST), having acquired LOCK_thread_count and about to acquire the zombie dump thread's LOCK_thd_data.
130 lines
3.9 KiB
Text
130 lines
3.9 KiB
Text
# $NetBSD: Makefile.common,v 1.39 2014/08/10 14:27:40 adam Exp $
|
|
#
|
|
# used by databases/mysql55-client/Makefile
|
|
# used by databases/mysql55-server/Makefile
|
|
|
|
DISTNAME= mysql-5.5.39
|
|
CATEGORIES= databases
|
|
MASTER_SITES= ${MASTER_SITE_MYSQL:=MySQL-5.5/}
|
|
|
|
MAINTAINER?= pkgsrc-users@NetBSD.org
|
|
HOMEPAGE= http://www.mysql.com/
|
|
LICENSE= gnu-gpl-v2
|
|
|
|
DISTINFO_FILE?= ${.CURDIR}/../../databases/mysql55-client/distinfo
|
|
PATCHDIR?= ${.CURDIR}/../../databases/mysql55-client/patches
|
|
|
|
USE_CMAKE= yes
|
|
USE_LANGUAGES= c c++
|
|
USE_TOOLS+= bash gmake perl:run
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
.include "options.mk"
|
|
|
|
# MYSQL_USER username of the database administrator
|
|
# MYSQL_GROUP group of the database administrator
|
|
# MYSQL_DATADIR home directory (location of the databases)
|
|
# MYSQL_PIDFILE process ID file
|
|
# MYSQL_CHARSET default character set
|
|
# MYSQL_EXTRA_CHARSET additional character set to be compiled in
|
|
MYSQL_USER?= mysql
|
|
MYSQL_GROUP?= mysql
|
|
MYSQL_DATADIR?= ${VARBASE}/mysql
|
|
MYSQL_PIDFILE?= ${MYSQL_DATADIR}/${HOST}.pid
|
|
MYSQL_CHARSET?= latin1
|
|
MYSQL_COLLATION?= latin1_swedish_ci
|
|
MYSQL_EXTRA_CHARSET?= all
|
|
|
|
PKG_USERS_VARS+= MYSQL_USER
|
|
PKG_GROUPS_VARS+= MYSQL_GROUP
|
|
|
|
CONFIG_SHELL= ${TOOLS_PATH.bash}
|
|
|
|
.if ${OPSYS} == "IRIX"
|
|
CFLAGS+= -DIRIX5 -DNEEDS_BSTRING_H
|
|
.endif
|
|
|
|
BUILD_DEFS+= VARBASE
|
|
|
|
# paths
|
|
CMAKE_ARGS+= -DINSTALL_DOCDIR="share/doc/mysql"
|
|
CMAKE_ARGS+= -DINSTALL_DOCREADMEDIR="share/doc/mysql"
|
|
CMAKE_ARGS+= -DINSTALL_INCLUDEDIR="include/mysql"
|
|
CMAKE_ARGS+= -DINSTALL_INFODIR="info"
|
|
CMAKE_ARGS+= -DINSTALL_MANDIR="${PKGMANDIR}"
|
|
CMAKE_ARGS+= -DINSTALL_MYSQLSHAREDIR="share/mysql"
|
|
CMAKE_ARGS+= -DINSTALL_MYSQLTESTDIR="share/mysql/test"
|
|
CMAKE_ARGS+= -DINSTALL_PLUGINDIR="lib/mysql/plugin"
|
|
CMAKE_ARGS+= -DINSTALL_SBINDIR="sbin"
|
|
CMAKE_ARGS+= -DINSTALL_SCRIPTDIR="bin"
|
|
CMAKE_ARGS+= -DINSTALL_SQLBENCHDIR="share/mysql/sql-bench"
|
|
CMAKE_ARGS+= -DINSTALL_SUPPORTFILESDIR="share/mysql"
|
|
CMAKE_ARGS+= -DMYSQL_DATADIR=${MYSQL_DATADIR}
|
|
|
|
# always use our own readline, not MySQL bundled one
|
|
CMAKE_ARGS+= -DWITH_LIBEDIT=OFF
|
|
CMAKE_ARGS+= -DWITH_READLINE=OFF
|
|
CMAKE_ARGS+= -DDEFAULT_CHARSET=${MYSQL_CHARSET:Q}
|
|
CMAKE_ARGS+= -DDEFAULT_COLLATION=${MYSQL_COLLATION:Q}
|
|
CMAKE_ARGS+= -DWITH_EXTRA_CHARSETS=${MYSQL_EXTRA_CHARSET:Q}
|
|
BROKEN_READLINE_DETECTION= yes # At least on RHEL 5.6
|
|
|
|
# MySQL 5 depends on builtin functions enabled with i486 and later with GCC.
|
|
.if ${OPSYS} == "NetBSD" && !empty(MACHINE_ARCH:Mi386)
|
|
GNU_ARCH.i386= i486
|
|
CFLAGS+= -march=i486
|
|
.endif
|
|
|
|
# Ensure the correct DTrace ABI is used.
|
|
.if !empty(ABI)
|
|
CMAKE_ARGS+= -DDTRACE_FLAGS="-${ABI}"
|
|
.endif
|
|
|
|
CPPFLAGS+= -Dunix
|
|
CFLAGS+= -DUSE_OLD_FUNCTIONS # 3.23.x compat
|
|
|
|
.if ${OPSYS} != "Interix"
|
|
CFLAGS+= -fPIC -DPIC
|
|
CXXFLAGS+= -fPIC -DPIC
|
|
.endif
|
|
|
|
# force HAVE_CURSES_H on Solaris since the configure script is broken
|
|
# and does not properly detect this, breaking the build later on.
|
|
.if ${OPSYS} == "SunOS"
|
|
CFLAGS+= -DHAVE_CURSES_H
|
|
CXXFLAGS+= -DHAVE_CURSES_H
|
|
.endif
|
|
|
|
# SCO OpenServer 5.0.7/3.2's readdir_r has 2 arguments and return struct dirent.
|
|
.if ${OS_VARIANT} == "SCOOSR5"
|
|
CMAKE_ARGS+= -DHAVE_READDIR_R=OFF
|
|
.endif
|
|
|
|
.include "../../mk/pthread.buildlink3.mk"
|
|
|
|
.if (defined(PTHREAD_TYPE) && (${PTHREAD_TYPE} == "pth")) || \
|
|
${OS_VARIANT} == "SCOOSR5"
|
|
CFLAGS+= -DSIGNALS_DONT_BREAK_READ
|
|
CXXFLAGS+= -DSIGNALS_DONT_BREAK_READ
|
|
.endif
|
|
|
|
LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/mysql
|
|
|
|
SUBST_CLASSES+= scr
|
|
SUBST_STAGE.scr= pre-configure
|
|
SUBST_FILES.scr= scripts/mysql_install_db.sh scripts/mysqld_safe.sh \
|
|
scripts/mysql_secure_installation.sh \
|
|
support-files/mysql.server.sh
|
|
SUBST_SED.scr= -e "s,chown,${CHOWN},g"
|
|
SUBST_SED.scr+= -e "s,/bin/sh,${RCD_SCRIPTS_SHELL},g"
|
|
SUBST_MESSAGE.scr= Fixing scripts.
|
|
|
|
.include "../../mk/readline.buildlink3.mk"
|
|
|
|
.if !empty(READLINE_TYPE:Mreadline)
|
|
CMAKE_ARGS+= -DREADLINE_FOUND=system
|
|
.endif
|
|
CMAKE_ARGS+= -DREADLINE_INCLUDE_DIR=${BUILDLINK_PREFIX.editlinereadline}/include/readline
|
|
|
|
.include "../../devel/zlib/buildlink3.mk"
|