b0d7a68168
Changes in MySQL 5.6.48 Bugs Fixed InnoDB: A tablespace import operation that failed due to the source and destination tables being defined with different DATA DIRECTORY clauses reported an insufficiently descriptive schema mismatch error. Moreover, if a .cfg file was not present, the same operation would raise an assertion failure. A more informative error message is now reported in both cases before the import operation is terminated due to the data directory mismatch. InnoDB: Updating certain InnoDB system variables that take string values raised invalid read errors during Valgrind testing. Replication: In the event of an unplanned disconnection of a replication slave from the master, the reference to the master's dump thread might not be removed from the list of registered slaves, in which case statements that accessed the list of slaves would fail. The issue has now been fixed. Replication: With the settings binlog_format=MIXED, tx_isolation=READ-COMMITTED, and binlog_row_image=FULL, an INSERT ... SELECT query involving a transactional storage engine omitted any columns with a null value from the row image written to the binary log. This happened because when processing INSERT ... SELECT statements, the columns were marked for inserts before the binary logging format was selected. The issue has now been fixed. The Event Scheduler had a memory leak. Under certain circumstances, a memcached command could result in reading an uninitialized memory buffer, causing a failure. CONCAT() and CONCAT_WS() could produce incorrect results in rare cases due to incorrect substring handling. Scheduling of events could be disturbed by removing events. Client programs could load authentication plugins from outside the plugin library. A query with a WHERE clause whose predicate contained a numeric value in scientific notation was not handled correctly. In addition, attempting to insert a particular integer specified as a string caused a server exit when the string-to-integer conversion was not successful. The client library could dereference a null pointer while fetching result set metadata from the server.
147 lines
4.7 KiB
Text
147 lines
4.7 KiB
Text
# $NetBSD: Makefile.common,v 1.57 2020/07/07 20:18:20 adam Exp $
|
|
#
|
|
# used by databases/mysql56-client/Makefile
|
|
# used by databases/mysql56-server/Makefile
|
|
|
|
DISTNAME= mysql-5.6.48
|
|
CATEGORIES= databases
|
|
MASTER_SITES= ${MASTER_SITE_MYSQL:=MySQL-5.6/}
|
|
|
|
MAINTAINER?= pkgsrc-users@NetBSD.org
|
|
HOMEPAGE= https://www.mysql.com/
|
|
LICENSE= gnu-gpl-v2
|
|
|
|
DISTINFO_FILE?= ${.CURDIR}/../../databases/mysql56-client/distinfo
|
|
PATCHDIR?= ${.CURDIR}/../../databases/mysql56-client/patches
|
|
|
|
USE_CMAKE= yes
|
|
USE_LANGUAGES= c c++
|
|
USE_TOOLS+= bash gmake perl:run
|
|
USE_GCC_RUNTIME= yes
|
|
|
|
CHECK_PORTABILITY_SKIP+= packaging/deb-in/mysql-packagesource-server.config.in
|
|
|
|
.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}
|
|
|
|
CFLAGS.IRIX+= -DIRIX5 -DNEEDS_BSTRING_H
|
|
|
|
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}
|
|
|
|
CMAKE_ARGS+= -DWITH_ZLIB="system"
|
|
CMAKE_ARGS+= -DDEFAULT_CHARSET=${MYSQL_CHARSET}
|
|
CMAKE_ARGS+= -DDEFAULT_COLLATION=${MYSQL_COLLATION}
|
|
CMAKE_ARGS+= -DWITH_EXTRA_CHARSETS=${MYSQL_EXTRA_CHARSET:Q}
|
|
# Avoid disclosure of files from a client to a malicious server, described here:
|
|
# https://gwillem.gitlab.io/2019/01/17/adminer-4.6.2-file-disclosure-vulnerability/
|
|
CMAKE_ARGS+= -DENABLED_LOCAL_INFILE=OFF
|
|
|
|
# MySQL 5 depends on builtin functions enabled with i486 and later with GCC.
|
|
.if ${OPSYS} == "NetBSD" && ${MACHINE_ARCH} == "i386"
|
|
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
|
|
CFLAGS+= -D__STDC_FORMAT_MACROS=1 # always defined too late
|
|
|
|
.if ${OPSYS} != "Interix"
|
|
CFLAGS+= -fPIC -DPIC
|
|
CXXFLAGS+= -fPIC -DPIC
|
|
.endif
|
|
|
|
CMAKE_ARGS.SunOS+= -DFORCE_UNSUPPORTED_COMPILER=YES
|
|
|
|
# Force HAVE_CURSES_H on Solaris since the configure script is broken
|
|
# and does not properly detect this, breaking the build later on. Also
|
|
# explicitly disable epoll support as it is Linux-specific.
|
|
CMAKE_ARGS.SunOS+= -DHAVE_SYS_EPOLL_H=NO
|
|
CMAKE_ARGS.SunOS+= -DEVENT__HAVE_EPOLL=NO
|
|
CFLAGS.SunOS+= -DHAVE_CURSES_H
|
|
CXXFLAGS.SunOS+= -DHAVE_CURSES_H
|
|
|
|
.include "../../mk/pthread.buildlink3.mk"
|
|
|
|
.if defined(PTHREAD_TYPE) && (${PTHREAD_TYPE} == "pth")
|
|
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
|
|
SUBST_FILES.scr+= scripts/mysql_secure_installation.sh
|
|
SUBST_FILES.scr+= scripts/mysqld_safe.sh
|
|
SUBST_FILES.scr+= 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_SED.scr+= -e "s,@SHELL_PATH@,${RCD_SCRIPTS_SHELL},g"
|
|
SUBST_MESSAGE.scr= Fixing scripts.
|
|
SUBST_NOOP_OK.scr= yes # since RCD_SCRIPTS_SHELL may be /bin/sh
|
|
|
|
SUBST_CLASSES+= fixpaths
|
|
SUBST_STAGE.fixpaths= post-install
|
|
SUBST_FILES.fixpaths= ${DESTDIR}${PREFIX}/bin/mysqlbug
|
|
SUBST_FILES.fixpaths+= ${DESTDIR}${PREFIX}/share/doc/mysql/INFO_BIN
|
|
SUBST_SED.fixpaths= -e "s,${WRAPPER_BINDIR}/gcc,${CCPATH},g"
|
|
SUBST_SED.fixpaths+= -e "s,${WRAPPER_BINDIR}/g++,${CXXPATH},g"
|
|
SUBST_NOOP_OK.fixpaths= yes # not needed for mysql-client-5.6.47 on NetBSD
|
|
|
|
# Don't use the base system "libedit" under NetBSD because MySQL expects
|
|
# an incompatible prototype for "rl_completion_entry_function".
|
|
.if ${OPSYS} == "NetBSD"
|
|
USE_BUILTIN.editline= no
|
|
.endif
|
|
|
|
.include "../../mk/readline.buildlink3.mk"
|
|
.if ${READLINE_TYPE} == "readline"
|
|
CMAKE_ARGS+= -DWITH_READLINE="system"
|
|
.else
|
|
CMAKE_ARGS+= -DWITH_EDITLINE="system"
|
|
.endif
|
|
|
|
.include "../../mk/curses.buildlink3.mk"
|
|
.include "../../devel/zlib/buildlink3.mk"
|