pkgsrc/databases/mysql55-client/Makefile.common
adam 557bb81eb6 Changes 5.5.39:
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.
2014-08-10 14:27:40 +00:00

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"