acca27b6ca
Fix build with LibreSSL and OpenSSL-devel ports as well MySQL 8.0.11 is the General Availability (GA) version of MySQL 8. MySQL since this version supports FIPS-mode, if compiled using OpenSSL, AND an OpenSSL library and FIPS Object Module are available at runtime. FIPS mode imposes conditions on cryptographic operations such as restrictions on acceptable encryption algorithms or requirements for longer key lengths. The --ssl-fips-mode client option enables control of FIPS mode on the client side for: mysql, mysqladmin, mysqlbinlog, mysqlcheck, mysqldump, mysqlimport, mysqlpump, ... This update includes bugfixes including (not limited to): -InnoDB: The server was stopped before a fatal error message was written to the error log. -InnoDB: An incorrect GROUP BY result was returned when using the TempTable storage engine and a NO PAD collation. -InnoDB: The data retrieved from INFORMATION_SCHEMA.INNODB_COLUMNS was incorrect for tables containing a virtual column. Full Release-Notes are available at: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html
174 lines
5.3 KiB
Makefile
174 lines
5.3 KiB
Makefile
# Created by: Mahdi Mokhtari <mokhi64@gmail.com>
|
|
# $FreeBSD$
|
|
|
|
PORTNAME?= mysql
|
|
PORTVERSION= 8.0.11
|
|
PORTREVISION?= 0
|
|
CATEGORIES= databases ipv6
|
|
MASTER_SITES= MYSQL/MySQL-8.0
|
|
PKGNAMESUFFIX?= 80-server
|
|
DISTNAME= ${PORTNAME}-boost-${PORTVERSION}${DISTVERSIONSUFFIX}
|
|
|
|
MAINTAINER= mmokhi@FreeBSD.org
|
|
COMMENT?= Multithreaded SQL database (server)
|
|
|
|
LICENSE= GPLv2
|
|
|
|
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}${DISTVERSIONSUFFIX}
|
|
|
|
SLAVEDIRS= databases/mysql80-client
|
|
USES= bison:build cmake:outsource,noninja compiler:c11 compiler:c++11-lib \
|
|
cpe libedit localbase perl5 shebangfix ssl
|
|
|
|
USE_PERL5= run
|
|
|
|
MY_DBDIR= /var/db/mysql
|
|
MY_SECDIR= /var/db/mysql_secure
|
|
MY_TMPDIR= /var/db/mysql_tmpdir
|
|
|
|
LIB_DEPENDS+= libevent.so:devel/libevent \
|
|
libicutu.so:devel/icu \
|
|
liblz4.so:archivers/liblz4 \
|
|
libre2.so:devel/re2 \
|
|
libprotobuf.so:devel/protobuf
|
|
|
|
CMAKE_BUILD_TYPE= Release
|
|
CFLAGS+= -fPIC
|
|
|
|
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" \
|
|
-DINSTALL_LIBDIR="lib/mysql" \
|
|
-DINSTALL_MANDIR="man" \
|
|
-DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \
|
|
-DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \
|
|
-DINSTALL_MYSQLSHAREDIR="share/mysql" \
|
|
-DINSTALL_MYSQLTESTDIR="share/mysql/tests" \
|
|
-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_EDITLINE=system \
|
|
-DWITH_LIBEVENT=system \
|
|
-DWITH_LZ4=system \
|
|
-DWITH_ZLIB=system \
|
|
-DWITH_ICU=system \
|
|
-DWITH_RE2=system \
|
|
-DWITH_PROTOBUF=system \
|
|
-DINSTALL_MYSQLTESTDIR=0
|
|
|
|
SHEBANG_FILES= scripts/*.pl* scripts/*.sh
|
|
|
|
.ifdef USE_MYSQL
|
|
.error 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} \
|
|
MYSQL80_LIBVER=${MYSQL80_LIBVER}
|
|
|
|
# MySQL-Server part
|
|
.if !defined(CLIENT_ONLY)
|
|
USES+= mysql:80
|
|
|
|
CONFLICTS_INSTALL= mysql8[1-9]-server-* \
|
|
mysql[0-79][0-9]-server-* \
|
|
mysqlwsrep* \
|
|
mariadb[0-9][0-9]-server-* \
|
|
percona[0-9][0-9]-server-*
|
|
|
|
USE_RC_SUBR= mysql-server
|
|
|
|
SUB_FILES= my.cnf.sample
|
|
|
|
USERS= mysql
|
|
GROUPS= mysql
|
|
|
|
USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin
|
|
|
|
MMAN1= my_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 myisampack.1 \
|
|
mysql.server.1 mysql_convert_table_format.1 mysql_fix_extensions.1 \
|
|
mysql_install_db.1 mysql_plugin.1 mysql_secure_installation.1 mysql_setpermission.1 \
|
|
mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql_zap.1 mysqlbug.1 \
|
|
mysqld_multi.1 mysqld_safe.1 mysqldumpslow.1 mysqlhotcopy.1 mysqlman.1 \
|
|
mysqltest.1 perror.1 replace.1 resolve_stack_dump.1 resolveip.1
|
|
|
|
CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON"
|
|
|
|
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>
|
|
|
|
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200057
|
|
SUB_LIST+= LEGACY_LIMITS="@comment " MODERN_LIMITS=""
|
|
.else
|
|
SUB_LIST+= LEGACY_LIMITS="" MODERN_LIMITS="@comment "
|
|
.endif
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${SSL_DEFAULT} == base
|
|
CMAKE_ARGS+= -DWITH_SSL=system
|
|
.else
|
|
CMAKE_ARGS+= -DWITH_SSL=${OPENSSLBASE}
|
|
.endif
|
|
|
|
post-extract:
|
|
@${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h
|
|
|
|
post-patch:
|
|
@${REINPLACE_CMD} 's/*.1/${MMAN1}/' ${WRKSRC}/man/CMakeLists.txt
|
|
|
|
.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>
|