mirror of
https://git.freebsd.org/ports.git
synced 2025-04-28 09:36:41 -04:00
Bugs Fixed InnoDB: Fixed a potential memory leak in several places in the innobase code. (Bug #37403052) InnoDB: Under certain circumstances, MySQL could crash during shutdown due to pages which were still fixed or dirty. Errors similar to the following were logged: [ERROR] [MY-011908] [InnoDB] [FATAL] Page [page id: space=46, page number=75] still fixed or dirty [ERROR] [MY-013183] [InnoDB] Assertion failure: buf0buf.cc:5889:ib::fatal triggered thread 139963705668608 (Bug #37391519) References: See also: Bug #35115601. InnoDB: CHECK TABLE for spatial indexes did not verify the MBR against the geometry MBR stored in the clustered index record. This could result in incorrect behaviour of spatial indexes. As of this release, CHECK TABLE EXTENDED verifies the MBR matches the MBR stored in the clustered index record. (Bug #37359538) InnoDB: Fixed an issue relating to pessimistic row update. Our thanks to Mengchu Shi and the team at Alibaba for the contribution. (Bug #37292404) InnoDB: The CHECK TABLE operation could incorrectly report corruption in spatial indexes. (Bug #37286473) InnoDB: Fixed an issue relating to InnoDB redo log recovery. (Bug InnoDB: Fixed an issue relating to reading index_id values. (Bug InnoDB: Fixed an issue relating to lower_case_table_names. (Bug Full Changelog see: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-42.html PR: 286108 Sponsored by: Netzkommune GmbH
213 lines
6.8 KiB
Makefile
213 lines
6.8 KiB
Makefile
PORTNAME?= mysql
|
|
PORTVERSION= 8.0.42
|
|
PORTREVISION?= 0
|
|
CATEGORIES= databases
|
|
MASTER_SITES= MYSQL/MySQL-8.0
|
|
PKGNAMESUFFIX?= 80-server
|
|
DISTNAME= ${PORTNAME}-boost-${PORTVERSION}${DISTVERSIONSUFFIX}
|
|
|
|
MAINTAINER= joneum@FreeBSD.org
|
|
COMMENT?= Multithreaded SQL database (server)
|
|
WWW= https://www.mysql.com/
|
|
|
|
LICENSE= GPLv2
|
|
|
|
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}${DISTVERSIONSUFFIX}
|
|
|
|
SLAVEDIRS= databases/mysql80-client
|
|
USES= bison:build cmake:noninja cpe groff:run libedit localbase \
|
|
ncurses perl5 pkgconfig shebangfix ssl
|
|
|
|
CPE_VENDOR= oracle
|
|
|
|
USE_CXXSTD= c++17
|
|
USE_PERL5= run
|
|
|
|
MY_DBDIR= /var/db/mysql
|
|
MY_SECDIR= /var/db/mysql_secure
|
|
MY_TMPDIR= /var/db/mysql_tmpdir
|
|
|
|
LIB_DEPENDS+= libcurl.so:ftp/curl \
|
|
libevent.so:devel/libevent \
|
|
libicutu.so:devel/icu \
|
|
liblz4.so:archivers/liblz4 \
|
|
libfido2.so:security/libfido2 \
|
|
libhidapi.so:comms/hidapi \
|
|
${LIB_DEPENDS_${ARCH}}
|
|
LIB_DEPENDS_aarch64= libunwind.so:devel/libunwind
|
|
LIB_DEPENDS_amd64= libunwind.so:devel/libunwind
|
|
LIB_DEPENDS_armv7= libunwind.so:devel/libunwind
|
|
LIB_DEPENDS_i386= libunwind.so:devel/libunwind
|
|
LIB_DEPENDS_powerpc= libunwind.so:devel/libunwind
|
|
LIB_DEPENDS_powerpc64= libunwind.so:devel/libunwind
|
|
LIB_DEPENDS_powerpc64le= libunwind.so:devel/libunwind
|
|
|
|
BUILD_DEPENDS= liblz4>0:archivers/liblz4 \
|
|
${BUILD_DEPENDS_${ARCH}}
|
|
BUILD_DEPENDS_aarch64= libunwind>0:devel/libunwind
|
|
BUILD_DEPENDS_amd64= libunwind>0:devel/libunwind
|
|
BUILD_DEPENDS_armv7= libunwind>0:devel/libunwind
|
|
BUILD_DEPENDS_i386= libunwind>0:devel/libunwind
|
|
BUILD_DEPENDS_powerpc= libunwind>0:devel/libunwind
|
|
BUILD_DEPENDS_powerpc64= libunwind>0:devel/libunwind
|
|
BUILD_DEPENDS_powerpc64le= libunwind>0:devel/libunwind
|
|
|
|
CMAKE_BUILD_TYPE= Release
|
|
CFLAGS+= -fPIC
|
|
CFLAGS_aarch64?= -march=armv8-a+crc+crypto
|
|
|
|
CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \
|
|
-DINSTALL_LDCONFIGDIR="${LOCALBASE}/libdata/ldconfig" \
|
|
-DINSTALL_PKGCONFIGDIR="${LOCALBASE}/libdata/pkgconfig" \
|
|
-DINSTALL_DOCDIR="share/doc/mysql" \
|
|
-DINSTALL_DOCREADMEDIR="share/doc/mysql" \
|
|
-DINSTALL_INCLUDEDIR="include/mysql" \
|
|
-DINSTALL_INFODIR="${INFO_PATH}" \
|
|
-DINSTALL_LIBDIR="lib/mysql" \
|
|
-DINSTALL_PRIV_LIBDIR="lib/mysql/private" \
|
|
-DINSTALL_MANDIR="share/man" \
|
|
-DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \
|
|
-DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \
|
|
-DINSTALL_MYSQLSHAREDIR="share/mysql" \
|
|
-DINSTALL_MYSQLTESTDIR="" \
|
|
-DINSTALL_PLUGINDIR="lib/mysql/plugin" \
|
|
-DINSTALL_SBINDIR="libexec" \
|
|
-DINSTALL_SCRIPTDIR="bin" \
|
|
-DINSTALL_SECURE_FILE_PRIVDIR="${MY_SECDIR}" \
|
|
-DINSTALL_SHAREDIR="share" \
|
|
-DINSTALL_SUPPORTFILESDIR="share/mysql" \
|
|
-DMYSQL_KEYRINGDIR="${ETCDIR}/keyring" \
|
|
-DWITH_BOOST="${WRKSRC}/boost" \
|
|
-DWITH_SYSTEM_LIBS=1 \
|
|
-DWITH_EDITLINE=system \
|
|
-DWITH_LIBEVENT=system \
|
|
-DWITH_LZ4=system \
|
|
-DWITH_ICU=system \
|
|
-DWITH_CURL=system \
|
|
-DWITH_ZSTD=bundled \
|
|
-DWITH_PROTOBUF=bundled \
|
|
-DWITH_SSL=system \
|
|
-DWITH_AUTHENTICATION_FIDO=1 \
|
|
-DBUILD_BUNDLED_ZLIB=0 \
|
|
-DBUILD_BUNDLED_LZ4=0
|
|
|
|
# The Mroonga, RocksDB, and TokuDB storage engines are disabled.
|
|
# Mroonga is only buildable on little endian archs.
|
|
# RocksDB is only buildable on little endian archs and requires POSIX timers.
|
|
# TokuDB is only buildable on 64-bit little endian archs.
|
|
CMAKE_ARGS+= -DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
|
|
-DWITHOUT_ROCKSDB_STORAGE_ENGINE=1 \
|
|
-DWITHOUT_TOKUDB_STORAGE_ENGINE=1
|
|
|
|
SHEBANG_FILES= scripts/*.pl* scripts/*.sh
|
|
|
|
.ifdef USE_MYSQL
|
|
IGNORE= You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again.
|
|
.endif
|
|
|
|
SUB_LIST= MY_DBDIR=${MY_DBDIR} \
|
|
MY_SECDIR=${MY_SECDIR} \
|
|
MY_TMPDIR=${MY_TMPDIR}
|
|
|
|
PLIST_SUB= MY_DBDIR=${MY_DBDIR} \
|
|
MY_SECDIR=${MY_SECDIR} \
|
|
MY_TMPDIR=${MY_TMPDIR}
|
|
|
|
# MySQL-Server part
|
|
.if !defined(CLIENT_ONLY)
|
|
USES+= mysql:80
|
|
|
|
CONFLICTS_INSTALL= mysql*-server \
|
|
mysqlwsrep*-server \
|
|
mariadb*-server \
|
|
percona*-server
|
|
|
|
USE_RC_SUBR= mysql-server
|
|
|
|
SUB_FILES= my.cnf.sample pkg-message
|
|
|
|
USERS= mysql
|
|
GROUPS= mysql
|
|
|
|
USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin
|
|
|
|
MMAN1= ibd2sdi.1 innochecksum.1 my_print_defaults.1 myisam_ftdump.1 myisamchk.1 \
|
|
myisamlog.1 myisampack.1 mysql_secure_installation.1 mysql_ssl_rsa_setup.1 \
|
|
mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql.server.1 mysqldumpslow.1 mysqld_multi.1 \
|
|
mysqld_safe.1 mysqlrouter_passwd.1 mysqlrouter_plugin_info.1 mysqlrouter.1
|
|
MMAN8= mysqld.8
|
|
|
|
CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON"
|
|
CMAKE_ARGS+= -DWITHOUT_CLIENTLIBS="ON"
|
|
# Disable unit tests, it fails on !amd64 and <13.0 due to c++17 rules
|
|
CMAKE_ARGS+= -DWITH_UNIT_TESTS="OFF"
|
|
|
|
OPTIONS_GROUP= STORAGE
|
|
OPTIONS_GROUP_STORAGE= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA
|
|
OPTIONS_SUB= YES
|
|
STORAGE_DESC= Permissible "Storage Engines" (to compile statically into the server)
|
|
ARCHIVE_DESC= Compile "Archive Storage" statically in server
|
|
BLACKHOLE_DESC= Compile "Blackhole Storage" statically in server
|
|
EXAMPLE_DESC= Compile "Example Storage" statically in server
|
|
FEDERATED_DESC= Compile "Federated Storage" statically in server
|
|
INNOBASE_DESC= Compile "InnoDB Storage" statically in server
|
|
PARTITION_DESC= Compile "Partitioning support Storage" statically in server
|
|
PERFSCHEMA_DESC= Compile "Performance Schema Storage" statically in server
|
|
|
|
ARCHIVE_CMAKE_ON= -DWITH_ARCHIVE_STORAGE_ENGINE=1
|
|
BLACKHOLE_CMAKE_ON= -DWITH_BLACKHOLE_STORAGE_ENGINE=1
|
|
EXAMPLE_CMAKE_ON= -DWITH_EXAMPLE_STORAGE_ENGINE=1
|
|
FEDERATED_CMAKE_ON= -DWITH_FEDERATED_STORAGE_ENGINE=1
|
|
INNOBASE_CMAKE_ON= -DWITH_INNOBASE_STORAGE_ENGINE=1
|
|
PARTITION_CMAKE_ON= -DWITH_PARTITION_STORAGE_ENGINE=1
|
|
PERFSCHEMA_CMAKE_ON= -DWITH_PERFSCHEMA_STORAGE_ENGINE=1
|
|
|
|
OPTIONS_GROUP+= FEATURES
|
|
OPTIONS_GROUP_FEATURES= PERFSCHM
|
|
FEATURES_DESC= Default features knobs
|
|
PERFSCHM_DESC= Enable "Performance Schema" by default (High RAM usage)
|
|
OPTIONS_DEFAULT+= PERFSCHM
|
|
|
|
PERFSCHM_SUB_LIST+= PERFSCHEMRC=""
|
|
PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--skip-performance-schema"
|
|
FEDERATED_SUB_LIST+= FEDER="--federated"
|
|
FEDERATED_SUB_LIST_OFF+= FEDER=""
|
|
.endif
|
|
|
|
.include <bsd.port.options.mk>
|
|
|
|
# Since 8.0.20 release innodb engine uses new memory alligned allocator
|
|
# which is broken on i386 due to different size of types and caused a
|
|
# 'static_assert(alignof(T) <= alignof(std::max_align_t))' error
|
|
.if ${ARCH} == i386
|
|
#CMAKE_ARGS+= -DDISABLE_PSI_MEMORY=1
|
|
SSP_UNSAFE= yes
|
|
.endif
|
|
|
|
.if ${ARCH} == powerpc
|
|
LDFLAGS+= -latomic
|
|
USES+= compiler:gcc-c++11-lib
|
|
.else
|
|
USES+= compiler:c++17-lang
|
|
.endif
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
post-extract:
|
|
@${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h
|
|
|
|
# XXX MBi alignment issue
|
|
.if ${ARCH} == i386
|
|
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-boost-boost_1_77_0-boost-move-detail-type_traits.hpp
|
|
.endif
|
|
|
|
.if !defined(CLIENT_ONLY)
|
|
post-install:
|
|
${MKDIR} ${STAGEDIR}${ETCDIR}
|
|
${INSTALL_DATA} ${WRKDIR}/my.cnf.sample ${STAGEDIR}${ETCDIR}/my.cnf.sample
|
|
${MKDIR} ${STAGEDIR}${ETCDIR}/keyring
|
|
${MKDIR} ${STAGEDIR}${MY_SECDIR}
|
|
${MKDIR} ${STAGEDIR}${MY_TMPDIR}
|
|
.endif
|
|
|
|
.include <bsd.port.post.mk>
|