2017-01-07 21:34:46 +01:00
|
|
|
# Created by: Mahdi Mokhtari <mokhi64@gmail.com>
|
|
|
|
# $FreeBSD$
|
|
|
|
|
|
|
|
PORTNAME?= mysql
|
databases/mysql80-{client, server}: Update to latest release 8.0.19
- New FPROFILE_GENERATE and FPROFILE_USE CMake options are available for experimenting with profile guided optimization (PGO) with GCC. See the cmake/fprofile.cmake in a MySQL source distribution for information about using them. These options have been tested with GCC 8 and 9, and with Clang.
- Enabling FPROFILE_USE also enables WITH_LTO (link time optimization).
- Innodb_system_rows_read, Innodb_system_rows_inserted, Innodb_system_rows_deleted status variables were added for counting row operations on InnoDB tables that belong to system-created schemas. The new status variables are similar to the existing Innodb_rows_read, Innodb_rows_inserted, Innodb_rows_deleted status variables, which count operations on InnoDB tables that belong to both user-created and system-created schemas.
- The new status variables are useful in replication environments where relay_log_info_repository and master_info_repository variables are set to TABLE, resulting in higher row operation counts on slaves due to operations performed on the slave_master_info, slave_replay_log_info, and slave_worker_info tables, which belong to the system-created mysql schema. For a valid comparison of master and slave row operation counts, operations on tables in system-created schemas can now be excluded using the count data provided by the new status variables.
More infos: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-19.html
Submitted by: fluffy
Approved by: mmokhi (maintainer, implicit)
Sponsored by: Netzkommune GmbH
2020-01-15 21:06:49 +01:00
|
|
|
PORTVERSION= 8.0.19
|
2020-01-22 06:53:20 +01:00
|
|
|
PORTREVISION?= 1
|
2019-10-09 12:34:56 +02:00
|
|
|
CATEGORIES= databases
|
2017-01-07 21:34:46 +01:00
|
|
|
MASTER_SITES= MYSQL/MySQL-8.0
|
|
|
|
PKGNAMESUFFIX?= 80-server
|
|
|
|
DISTNAME= ${PORTNAME}-boost-${PORTVERSION}${DISTVERSIONSUFFIX}
|
|
|
|
|
2017-02-11 05:44:43 +01:00
|
|
|
MAINTAINER= mmokhi@FreeBSD.org
|
2017-01-07 21:34:46 +01:00
|
|
|
COMMENT?= Multithreaded SQL database (server)
|
|
|
|
|
|
|
|
LICENSE= GPLv2
|
|
|
|
|
|
|
|
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}${DISTVERSIONSUFFIX}
|
|
|
|
|
|
|
|
SLAVEDIRS= databases/mysql80-client
|
2019-01-14 00:24:27 +01:00
|
|
|
USES= bison:build cmake:noninja compiler:c++14-lang cpe \
|
2020-01-08 17:47:12 +01:00
|
|
|
libedit localbase ncurses perl5 pkgconfig shebangfix ssl
|
2017-01-07 21:34:46 +01:00
|
|
|
|
|
|
|
USE_PERL5= run
|
|
|
|
|
|
|
|
MY_DBDIR= /var/db/mysql
|
|
|
|
MY_SECDIR= /var/db/mysql_secure
|
|
|
|
MY_TMPDIR= /var/db/mysql_tmpdir
|
|
|
|
|
2020-01-08 17:47:12 +01:00
|
|
|
LIB_DEPENDS+= libcurl.so:ftp/curl \
|
|
|
|
libevent.so:devel/libevent \
|
databases/mysql80-{client,server}: Upgrade the ports to GA version 8.0.11
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
2018-05-12 17:35:25 +02:00
|
|
|
libicutu.so:devel/icu \
|
|
|
|
liblz4.so:archivers/liblz4 \
|
2020-01-08 17:47:12 +01:00
|
|
|
libzstd.so:archivers/zstd \
|
2019-09-19 14:33:40 +02:00
|
|
|
libprotobuf.so:devel/protobuf \
|
|
|
|
libunwind.so:devel/libunwind
|
|
|
|
|
|
|
|
BUILD_DEPENDS= liblz4>0:archivers/liblz4 \
|
|
|
|
libunwind>0:devel/libunwind
|
2017-01-07 21:34:46 +01:00
|
|
|
|
|
|
|
CMAKE_BUILD_TYPE= Release
|
2017-10-06 17:44:18 +02:00
|
|
|
CFLAGS+= -fPIC
|
2017-01-07 21:34:46 +01:00
|
|
|
|
|
|
|
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" \
|
2019-01-14 00:24:27 +01:00
|
|
|
-DINSTALL_INFODIR="${INFO_PATH}" \
|
2017-01-07 21:34:46 +01:00
|
|
|
-DINSTALL_LIBDIR="lib/mysql" \
|
|
|
|
-DINSTALL_MANDIR="man" \
|
|
|
|
-DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \
|
|
|
|
-DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \
|
|
|
|
-DINSTALL_MYSQLSHAREDIR="share/mysql" \
|
2020-01-08 17:47:12 +01:00
|
|
|
-DINSTALL_MYSQLTESTDIR="" \
|
2017-01-07 21:34:46 +01:00
|
|
|
-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" \
|
2019-09-19 14:33:40 +02:00
|
|
|
-DWITH_SYSTEM_LIBS=1 \
|
2017-01-07 21:34:46 +01:00
|
|
|
-DWITH_EDITLINE=system \
|
|
|
|
-DWITH_LIBEVENT=system \
|
|
|
|
-DWITH_LZ4=system \
|
databases/mysql80-{client,server}: Upgrade the ports to GA version 8.0.11
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
2018-05-12 17:35:25 +02:00
|
|
|
-DWITH_ICU=system \
|
2020-01-08 17:47:12 +01:00
|
|
|
-DWITH_CURL=system \
|
|
|
|
-DWITH_ZLIB=system \
|
|
|
|
-DWITH_ZSTD=system \
|
databases/mysql80-{client,server}: Upgrade the ports to GA version 8.0.11
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
2018-05-12 17:35:25 +02:00
|
|
|
-DWITH_PROTOBUF=system \
|
2020-01-08 17:47:12 +01:00
|
|
|
-DWITH_SSL=${OPENSSLBASE} \
|
2019-01-14 00:24:27 +01:00
|
|
|
-DBUILD_BUNDLED_ZLIB=0 \
|
2019-09-19 14:33:40 +02:00
|
|
|
-DBUILD_BUNDLED_LZ4=0 \
|
2017-01-07 21:34:46 +01:00
|
|
|
|
|
|
|
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-* \
|
2017-08-14 07:37:21 +02:00
|
|
|
mysqlwsrep* \
|
2017-01-07 21:34:46 +01:00
|
|
|
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
|
|
|
|
|
2020-01-08 17:47:12 +01:00
|
|
|
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
|
2017-01-07 21:34:46 +01:00
|
|
|
|
|
|
|
CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON"
|
2020-01-08 17:47:12 +01:00
|
|
|
CMAKE_ARGS+= -DWITHOUT_CLIENTLIBS="ON"
|
2017-01-07 21:34:46 +01:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2017-02-22 18:25:22 +01:00
|
|
|
PERFSCHM_SUB_LIST+= PERFSCHEMRC=""
|
|
|
|
PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--skip-performance-schema"
|
|
|
|
FEDERATED_SUB_LIST+= FEDER="--federated"
|
|
|
|
FEDERATED_SUB_LIST_OFF+= FEDER=""
|
2017-01-07 21:34:46 +01:00
|
|
|
.endif
|
|
|
|
|
2018-04-04 23:01:28 +02:00
|
|
|
.include <bsd.port.options.mk>
|
|
|
|
|
2018-04-11 16:42:06 +02:00
|
|
|
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200057
|
2018-04-04 23:01:28 +02:00
|
|
|
SUB_LIST+= LEGACY_LIMITS="@comment " MODERN_LIMITS=""
|
2018-04-11 16:42:06 +02:00
|
|
|
.else
|
|
|
|
SUB_LIST+= LEGACY_LIMITS="" MODERN_LIMITS="@comment "
|
2018-04-04 23:01:28 +02:00
|
|
|
.endif
|
|
|
|
|
2017-01-07 21:34:46 +01:00
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
|
|
|
|
post-extract:
|
|
|
|
@${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h
|
|
|
|
|
|
|
|
.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>
|