pkgsrc/databases/mysql51-client/Makefile.common

150 lines
4.3 KiB
Text
Raw Normal View History

# $NetBSD: Makefile.common,v 1.32 2014/05/28 10:16:54 markd Exp $
#
# used by databases/mysql51-client/Makefile
# used by databases/mysql51-server/Makefile
Changes 5.1.72: * InnoDB: The row_sel_sec_rec_is_for_clust_rec function would incorrectly prepare to compare a NULL column prefix in a secondary index with a non-NULL column in a clustered index. * InnoDB: An incorrect purge would occur when rolling back an update to a delete-marked record. * InnoDB: InnoDB would rename a user-defined foreign key constraint containing the string “_ibfk_” in its name, resulting in a duplicate constraint. * InnoDB: Rolling back an INSERT after a failed BLOB write would result in an assertion failure. The assertion has been modified to allow NULL BLOB pointers if an error occurs during a BLOB write. * InnoDB: The srv_master_thread background thread, which monitors server activity and performs activities such as page flushing when the server is inactive or in a shutdown state, runs on a one second delay loop. srv_master_thread would fail to check if the server is in a shutdown state before sleeping. * InnoDB: An infinite loop could occur in buf_page_get_gen when handling compressed-only pages. * Within a stored program, comparison of the value of a scalar subquery with an IN clause resulted in an error for the first execution and raised an assertion for the second execution. * The my_strtoll10() function could incorrectly convert some long string-format numbers to numeric values and fail to set the overflow flag. * For queries that accessed an INFORMATION_SCHEMA table in a subquery, and attempt to lock a mutex that had already been locked could cause a server crash. * For DIV expressions, assignment of the result to multiple variables could cause a server crash. * mysqldump wrote SET statements as SET OPTION, which failed when reloaded because the deprecated OPTION keyword has been removed from SET syntax. * If one connection changed its default database and simultaneously another connection executed SHOW PROCESSLIST, the second connection could access invalid memory when attempting to display the first connection's default database. memory.
2013-10-01 13:00:39 +02:00
DISTNAME= mysql-5.1.72
CATEGORIES= databases
MASTER_SITES= ${MASTER_SITE_MYSQL:=MySQL-5.1/}
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.mysql.com/
LICENSE= gnu-gpl-v2
USE_LIBTOOL= yes
GNU_CONFIGURE= yes
.include "../../mk/bsd.prefs.mk"
.include "options.mk"
EXTRACT_USING= bsdtar
# MYSQL_USER username of the database administrator
# MYSQL_GROUP group of the database administrator
# MYSQL_DATADIR home directory of the database administrator and
# location of the databases
# MYSQL_PIDFILE process ID file
MYSQL_USER?= mysql
MYSQL_GROUP?= mysql
MYSQL_DATADIR?= ${VARBASE}/mysql
MYSQL_PIDFILE?= ${MYSQL_DATADIR}/${HOST}.pid
PKG_USERS_VARS+= MYSQL_USER
PKG_GROUPS_VARS+= MYSQL_GROUP
# MYSQL_CHARSET default character set
# MYSQL_EXTRA_CHARSET additional character set to be compiled in.
MYSQL_CHARSET?= latin1
MYSQL_EXTRA_CHARSET?= all
CONFIGURE_ARGS+= --enable-thread-safe-client
Changes 5.1.71: Functionality Added or Changed * comp_err now checks to make sure that new errors are not being added to MySQL 5.1 or 5.5 because the set of errors for these series is frozen. Bugs Fixed * InnoDB: During an insert buffer merge, InnoDB would invoke lock_rec_restore_from_page_infimum() on a potentially invalid record pointer. * InnoDB: The page_zip_validate() consistency check would fail after compressing a page, in page_zip_compress(). This problem was caused by page_zip_decompress(), which would fail to set heap_no correctly when a record contained no user data bytes. A record with no user data bytes occurs when, for example, a primary key is an empty string and all secondary index fields are NULL or an empty string. * InnoDB: The pthread_mutex, commit_threads_m, which was initialized but never used, has been removed from the code base. * Partitioning: When dropping a partitioned table, the table's .par file was deleted first, before the table definition or data. This meant that, if the server failed during the drop operation, the table could be left in an inconsistent state in which it could neither be accessed nor dropped. * Shared-compatibility conflict errors occurred for RPM install operations, even if no shared-compatibility RPMs were already installed. * A user variable referenced during execution of a prepared statement is set to memory that is freed at the end of execution. A second execution of the statement could result in Valgrind warnings when accessing this memory. * Misoptimization of left expressions in prepared statements could cause a server exit. * Subsequent to Prepared statement needs to be re-prepared errors, inserts into DECIMAL columns caused a server exit. * Assigning the result of a subquery to a user variable raised an assertion when the outer query included DISTINCT and GROUP BY.
2013-08-04 12:20:24 +02:00
CONFIGURE_ARGS+= --localstatedir=${MYSQL_DATADIR}
CONFIGURE_ARGS+= --without-libwrap
CONFIG_SHELL= ${TOOLS_PATH.bash}
.if ${OPSYS} == "IRIX"
CFLAGS+= -DIRIX5 -DNEEDS_BSTRING_H
# libgen is incorrectly detected
CONFIGURE_ENV+= ac_cv_lib_gen_p2open="no"
.endif
BUILD_DEFS+= VARBASE
# We always use our own readline. Note that these --without-* settings
# are confusing, but they just mean "don't use the included readline
# or libedit".
CONFIGURE_ARGS+= --without-readline
CONFIGURE_ARGS+= --without-libedit
# Speed up production one-time builds; see "./configure --help" for
# more information on using or disabling this option.
CONFIGURE_ARGS+= --disable-dependency-tracking
CONFIGURE_ARGS+= --without-debug
CONFIGURE_ARGS+= --with-low-memory
Changes 5.1.71: Functionality Added or Changed * comp_err now checks to make sure that new errors are not being added to MySQL 5.1 or 5.5 because the set of errors for these series is frozen. Bugs Fixed * InnoDB: During an insert buffer merge, InnoDB would invoke lock_rec_restore_from_page_infimum() on a potentially invalid record pointer. * InnoDB: The page_zip_validate() consistency check would fail after compressing a page, in page_zip_compress(). This problem was caused by page_zip_decompress(), which would fail to set heap_no correctly when a record contained no user data bytes. A record with no user data bytes occurs when, for example, a primary key is an empty string and all secondary index fields are NULL or an empty string. * InnoDB: The pthread_mutex, commit_threads_m, which was initialized but never used, has been removed from the code base. * Partitioning: When dropping a partitioned table, the table's .par file was deleted first, before the table definition or data. This meant that, if the server failed during the drop operation, the table could be left in an inconsistent state in which it could neither be accessed nor dropped. * Shared-compatibility conflict errors occurred for RPM install operations, even if no shared-compatibility RPMs were already installed. * A user variable referenced during execution of a prepared statement is set to memory that is freed at the end of execution. A second execution of the statement could result in Valgrind warnings when accessing this memory. * Misoptimization of left expressions in prepared statements could cause a server exit. * Subsequent to Prepared statement needs to be re-prepared errors, inserts into DECIMAL columns caused a server exit. * Assigning the result of a subquery to a user variable raised an assertion when the outer query included DISTINCT and GROUP BY.
2013-08-04 12:20:24 +02:00
CONFIGURE_ARGS+= --with-zlib-dir=${BUILDLINK_PREFIX.zlib}
CONFIGURE_ARGS+= --with-charset=${MYSQL_CHARSET:Q}
CONFIGURE_ARGS+= --with-extra-charsets=${MYSQL_EXTRA_CHARSET:Q}
.if !empty(MACHINE_ARCH:Mi386) && ${OPSYS} != "Interix" && \
${OPSYS} != "SunOS" && ${OPSYS} != "Darwin"
CONFIGURE_ARGS+= --enable-assembler
.endif
# MySQL 5.1 depends on builtin functions which enabled with i486 and
# later with GCC.
.if ${OPSYS} == "NetBSD" && !empty(MACHINE_ARCH:Mi386)
GNU_ARCH.i386= i486
CFLAGS+= -march=i486
.endif
.if ${OPSYS} == "NetBSD"
CONFIGURE_ENV+= ac_cv_func_gethostbyname_r="no"
.endif
CONFIGURE_ENV+= mysql_cv_compress="yes"
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
.include "../../mk/pthread.buildlink3.mk"
.if defined(PTHREAD_TYPE) && (${PTHREAD_TYPE} == "pth")
CFLAGS+= -DSIGNALS_DONT_BREAK_READ
CXXFLAGS+= -DSIGNALS_DONT_BREAK_READ
CONFIGURE_ENV+= ac_cv_func_pthread_setschedparam=no
CONFIGURE_ENV+= ac_cv_func_pthread_attr_setschedparam=no
.endif
USE_LANGUAGES= c c++
USE_TOOLS+= autoconf bash autoheader gmake perl:run
LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/mysql
# reset the platform diff on SunOS unless it's a GNU diff
# which is required by the MySQL build
.if ${OPSYS} == "SunOS" && empty(TOOLS_PLATFORM.diff:Mgdiff)
TOOLS_PLATFORM.diff= # empty
.endif
Changes 5.1.71: Functionality Added or Changed * comp_err now checks to make sure that new errors are not being added to MySQL 5.1 or 5.5 because the set of errors for these series is frozen. Bugs Fixed * InnoDB: During an insert buffer merge, InnoDB would invoke lock_rec_restore_from_page_infimum() on a potentially invalid record pointer. * InnoDB: The page_zip_validate() consistency check would fail after compressing a page, in page_zip_compress(). This problem was caused by page_zip_decompress(), which would fail to set heap_no correctly when a record contained no user data bytes. A record with no user data bytes occurs when, for example, a primary key is an empty string and all secondary index fields are NULL or an empty string. * InnoDB: The pthread_mutex, commit_threads_m, which was initialized but never used, has been removed from the code base. * Partitioning: When dropping a partitioned table, the table's .par file was deleted first, before the table definition or data. This meant that, if the server failed during the drop operation, the table could be left in an inconsistent state in which it could neither be accessed nor dropped. * Shared-compatibility conflict errors occurred for RPM install operations, even if no shared-compatibility RPMs were already installed. * A user variable referenced during execution of a prepared statement is set to memory that is freed at the end of execution. A second execution of the statement could result in Valgrind warnings when accessing this memory. * Misoptimization of left expressions in prepared statements could cause a server exit. * Subsequent to Prepared statement needs to be re-prepared errors, inserts into DECIMAL columns caused a server exit. * Assigning the result of a subquery to a user variable raised an assertion when the outer query included DISTINCT and GROUP BY.
2013-08-04 12:20:24 +02:00
SUBST_CLASSES+= mk
SUBST_STAGE.mk= pre-configure
SUBST_FILES.mk= dbug/Makefile.in heap/Makefile.in \
mysys/Makefile.in strings/Makefile.in
SUBST_SED.mk= -e "/^install-exec:/s/install-pkglibLIBRARIES//"
SUBST_MESSAGE.mk= Fixing Makefiles.
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.
# Fix broken shared library detection under Mac OS X
.if ${OPSYS} == "Darwin"
SUBST_CLASSES+= dylib
SUBST_STAGE.dylib= pre-configure
SUBST_FILES.dylib= configure
SUBST_SED.dylib= -e "s|\\\$$shrext_cmds|\\.dylib|g"
.endif
pre-configure:
${RM} -f ${WRKSRC}/configure~
cd ${WRKSRC} && autoconf && autoheader
.include "../../devel/zlib/buildlink3.mk"