diff --git a/databases/mysql80-server/Makefile b/databases/mysql80-server/Makefile index 5d98582372ff..aea9df8ea785 100644 --- a/databases/mysql80-server/Makefile +++ b/databases/mysql80-server/Makefile @@ -1,222 +1,222 @@ PORTNAME?= mysql PORTVERSION= 8.0.46 -PORTREVISION?= 2 +PORTREVISION?= 3 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 DEPRECATED= EOLed upstream, switch to newer version EXPIRATION_DATE=2026-12-31 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 CPE_PRODUCT?= mysql_server 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 mysqlrouter SUB_FILES= my.cnf.sample mysqlrouter.conf.sample pkg-message USERS= mysql mysqlrouter GROUPS= mysql mysqlrouter 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 # 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 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}${PREFIX}/etc/mysqlrouter ${INSTALL_DATA} ${WRKDIR}/mysqlrouter.conf.sample \ ${STAGEDIR}${PREFIX}/etc/mysqlrouter/mysqlrouter.conf.sample ${MKDIR} ${STAGEDIR}${ETCDIR}/keyring ${MKDIR} ${STAGEDIR}${MY_SECDIR} ${MKDIR} ${STAGEDIR}${MY_TMPDIR} ${MKDIR} ${STAGEDIR}${DOCSDIR} ${MV} ${STAGEDIR}${PREFIX}/LICENSE.router ${STAGEDIR}${PREFIX}/README.router ${STAGEDIR}${DOCSDIR} .endif .include diff --git a/databases/mysql80-server/files/mysql-server.in b/databases/mysql80-server/files/mysql-server.in index c79874df9f2c..73e5bcf282ce 100644 --- a/databases/mysql80-server/files/mysql-server.in +++ b/databases/mysql80-server/files/mysql-server.in @@ -1,78 +1,79 @@ #!/bin/sh # PROVIDE: mysql # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following line to /etc/rc.conf to enable mysql: # mysql_enable (bool): Set to "NO" by default. # Set it to "YES" to enable MySQL. # mysql_dbdir (str): Default to "%%MY_DBDIR%%" # Base database directory. # mysql_confdir (str): Default to "%%ETCDIR%%" # Base configuration directory. # mysql_optfile (str): Server-specific option file. # Set it in the rc.conf or default behaviour of # `mysqld_safe` itself, will be picking # ${mysql_confdir}/my.cnf if it exists. # mysql_pidfile (str): Custom PID file path and name. # Default to "${mysql_dbdir}/${hostname}.pid". # mysql_args (str): Custom additional arguments to be passed # to mysqld_safe (default empty). # . /etc/rc.subr name="mysql" rcvar=mysql_enable load_rc_config $name : ${mysql_enable="NO"} +: ${mysql_svcj_options="net_basic"} : ${mysql_dbdir="%%MY_DBDIR%%"} : ${mysql_confdir="%%ETCDIR%%"} if [ -f "${mysql_confdir}/my.cnf" ]; then : ${mysql_optfile="${mysql_confdir}/my.cnf"} elif [ -f "${mysql_dbdir}/my.cnf" ]; then : ${mysql_optfile="${mysql_dbdir}/my.cnf"} fi if [ ! -z "${mysql_optfile}" ]; then mysql_extra="--defaults-extra-file=${mysql_optfile}" fi mysql_user="mysql" : ${hostname:=`/bin/hostname`} pidfile=${mysql_pidfile:-"${mysql_dbdir}/${hostname}.pid"} command="/usr/sbin/daemon" command_args="-c -f %%PREFIX%%/bin/mysqld_safe ${mysql_extra} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --pid-file=${pidfile} --user=${mysql_user} ${mysql_args} %%FEDER%% %%PERFSCHEMRC%%" procname="%%PREFIX%%/libexec/mysqld" start_precmd="${name}_prestart" start_postcmd="${name}_poststart" mysqld_init="${procname}" mysqld_init_args="${mysql_extra} --initialize-insecure --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --user=${mysql_user}" mysql_create_auth_tables() { eval $mysqld_init $mysqld_init_args >/dev/null 2>/dev/null } mysql_prestart() { if [ ! -d "${mysql_dbdir}/mysql/." ]; then mysql_create_auth_tables || return 1 fi return 0 } mysql_poststart() { local timeout=15 while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do timeout=$(( timeout - 1 )) sleep 1 done return 0 } run_rc_command "$1" diff --git a/databases/mysql84-server/Makefile b/databases/mysql84-server/Makefile index b83848886cdf..37d6a420d646 100644 --- a/databases/mysql84-server/Makefile +++ b/databases/mysql84-server/Makefile @@ -1,180 +1,180 @@ PORTNAME?= mysql PORTVERSION= 8.4.11 -PORTREVISION?= 2 +PORTREVISION?= 3 CATEGORIES= databases MASTER_SITES= MYSQL/MySQL-8.4 PKGNAMESUFFIX?= 84-server MAINTAINER= joneum@FreeBSD.org COMMENT?= Multithreaded SQL database (server) WWW= https://www.mysql.com/ LICENSE= GPLv2 # MySQL8.2+ supports only 64-bit platforms # Review list after 13.x EoL NOT_FOR_ARCHS= armv6 armv7 i386 powerpc USES= bison:build cmake:noninja cpe groff:run libedit localbase \ ncurses perl5 pkgconfig shebangfix ssl compiler:c++20-lang WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}${DISTVERSIONSUFFIX} SLAVEDIRS= databases/mysql84-client CPE_PRODUCT?= mysql_server CPE_VENDOR= oracle USE_CXXSTD= c++20 USE_PERL5= run MY_DBDIR= /var/db/mysql MY_SECDIR= /var/db/mysql_secure MY_TMPDIR= /var/db/mysql_tmpdir .if defined(CLIENT_ONLY) BUILD_DEPENDS+= curl>0:ftp/curl \ icu>0:devel/icu \ liblz4>0:archivers/liblz4 LIB_DEPENDS+= libfido2.so:security/libfido2 \ ${LIB_DEPENDS_${ARCH}} .else LIB_DEPENDS+= libcurl.so:ftp/curl \ libicutu.so:devel/icu \ liblz4.so:archivers/liblz4 \ ${LIB_DEPENDS_${ARCH}} .endif LIB_DEPENDS_aarch64= libunwind.so:devel/libunwind LIB_DEPENDS_amd64= libunwind.so:devel/libunwind LIB_DEPENDS_powerpc64= libunwind.so:devel/libunwind LIB_DEPENDS_powerpc64le= libunwind.so: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" \ -DWITH_BOOST="${WRKSRC}/boost" \ -DWITH_SYSTEM_LIBS=1 \ -DWITH_EDITLINE=system \ -DWITH_LZ4=system \ -DWITH_ICU=system \ -DWITH_CURL=system \ -DWITH_ZSTD=bundled \ -DWITH_PROTOBUF=bundled \ -DWITH_SSL=system \ -DWITH_ZLIB=system 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:84 CONFLICTS_INSTALL= mysql*-server \ mysqlwsrep*-server \ mariadb*-server \ percona*-server USE_RC_SUBR= mysql-server mysqlrouter SUB_FILES= my.cnf.sample mysqlrouter.conf.sample pkg-message USERS= mysql mysqlrouter GROUPS= mysql mysqlrouter USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin 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="" # todo, likely broken, see # https://dev.mysql.com/doc/refman/8.4/en/source-configuration-options.html PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--skip-performance-schema" FEDERATED_SUB_LIST+= FEDER="--federated" FEDERATED_SUB_LIST_OFF+= FEDER="" .endif .include CXXFLAGS+= -malign-double .include 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}${PREFIX}/etc/mysqlrouter ${INSTALL_DATA} ${WRKDIR}/mysqlrouter.conf.sample \ ${STAGEDIR}${PREFIX}/etc/mysqlrouter/mysqlrouter.conf.sample ${MKDIR} ${STAGEDIR}${ETCDIR}/keyring ${MKDIR} ${STAGEDIR}${MY_SECDIR} ${MKDIR} ${STAGEDIR}${MY_TMPDIR} ${MKDIR} ${STAGEDIR}${DOCSDIR} ${MV} ${STAGEDIR}${PREFIX}/LICENSE.router ${STAGEDIR}${PREFIX}/README.router ${STAGEDIR}${DOCSDIR} .endif .include diff --git a/databases/mysql84-server/files/mysql-server.in b/databases/mysql84-server/files/mysql-server.in index c79874df9f2c..73e5bcf282ce 100644 --- a/databases/mysql84-server/files/mysql-server.in +++ b/databases/mysql84-server/files/mysql-server.in @@ -1,78 +1,79 @@ #!/bin/sh # PROVIDE: mysql # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following line to /etc/rc.conf to enable mysql: # mysql_enable (bool): Set to "NO" by default. # Set it to "YES" to enable MySQL. # mysql_dbdir (str): Default to "%%MY_DBDIR%%" # Base database directory. # mysql_confdir (str): Default to "%%ETCDIR%%" # Base configuration directory. # mysql_optfile (str): Server-specific option file. # Set it in the rc.conf or default behaviour of # `mysqld_safe` itself, will be picking # ${mysql_confdir}/my.cnf if it exists. # mysql_pidfile (str): Custom PID file path and name. # Default to "${mysql_dbdir}/${hostname}.pid". # mysql_args (str): Custom additional arguments to be passed # to mysqld_safe (default empty). # . /etc/rc.subr name="mysql" rcvar=mysql_enable load_rc_config $name : ${mysql_enable="NO"} +: ${mysql_svcj_options="net_basic"} : ${mysql_dbdir="%%MY_DBDIR%%"} : ${mysql_confdir="%%ETCDIR%%"} if [ -f "${mysql_confdir}/my.cnf" ]; then : ${mysql_optfile="${mysql_confdir}/my.cnf"} elif [ -f "${mysql_dbdir}/my.cnf" ]; then : ${mysql_optfile="${mysql_dbdir}/my.cnf"} fi if [ ! -z "${mysql_optfile}" ]; then mysql_extra="--defaults-extra-file=${mysql_optfile}" fi mysql_user="mysql" : ${hostname:=`/bin/hostname`} pidfile=${mysql_pidfile:-"${mysql_dbdir}/${hostname}.pid"} command="/usr/sbin/daemon" command_args="-c -f %%PREFIX%%/bin/mysqld_safe ${mysql_extra} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --pid-file=${pidfile} --user=${mysql_user} ${mysql_args} %%FEDER%% %%PERFSCHEMRC%%" procname="%%PREFIX%%/libexec/mysqld" start_precmd="${name}_prestart" start_postcmd="${name}_poststart" mysqld_init="${procname}" mysqld_init_args="${mysql_extra} --initialize-insecure --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --user=${mysql_user}" mysql_create_auth_tables() { eval $mysqld_init $mysqld_init_args >/dev/null 2>/dev/null } mysql_prestart() { if [ ! -d "${mysql_dbdir}/mysql/." ]; then mysql_create_auth_tables || return 1 fi return 0 } mysql_poststart() { local timeout=15 while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do timeout=$(( timeout - 1 )) sleep 1 done return 0 } run_rc_command "$1" diff --git a/databases/mysql97-server/Makefile b/databases/mysql97-server/Makefile index fb2ee8a1b92e..97f1fb041040 100644 --- a/databases/mysql97-server/Makefile +++ b/databases/mysql97-server/Makefile @@ -1,178 +1,178 @@ PORTNAME?= mysql PORTVERSION= 9.7.2 -PORTREVISION?= 2 +PORTREVISION?= 3 CATEGORIES= databases MASTER_SITES= MYSQL/MySQL-9.7 PKGNAMESUFFIX?= 97-server MAINTAINER= joneum@FreeBSD.org COMMENT?= Multithreaded SQL database (server) WWW= https://www.mysql.com/ LICENSE= GPLv2 # Tracks one MySQL release series; the others are separate mysql*-server ports. # repology merges all series into one project and measures against the newest # train upstream ships, so its outdated report is an artifact, not an update. # MySQL8.2+ supports only 64-bit platforms # Review list after 13.x EoL NOT_FOR_ARCHS= armv6 armv7 i386 powerpc USES= bison:build cmake:noninja cpe groff:run libedit localbase \ ncurses perl5 pkgconfig shebangfix ssl compiler:c++20-lang WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}${DISTVERSIONSUFFIX} SLAVEDIRS= databases/mysql97-client CPE_PRODUCT?= mysql_server CPE_VENDOR= oracle USE_CXXSTD= c++20 USE_PERL5= run MY_DBDIR= /var/db/mysql MY_SECDIR= /var/db/mysql_secure MY_TMPDIR= /var/db/mysql_tmpdir .if defined(CLIENT_ONLY) BUILD_DEPENDS+= curl>0:ftp/curl \ icu>0:devel/icu \ liblz4>0:archivers/liblz4 LIB_DEPENDS+= libfido2.so:security/libfido2 .else LIB_DEPENDS+= libcurl.so:ftp/curl \ libicutu.so:devel/icu \ liblz4.so:archivers/liblz4 .endif 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" \ -DWITH_BOOST="${WRKSRC}/boost" \ -DWITH_SYSTEM_LIBS=1 \ -DWITH_EDITLINE=system \ -DWITH_LZ4=system \ -DWITH_ICU=system \ -DWITH_CURL=system \ -DWITH_ZSTD=bundled \ -DWITH_PROTOBUF=bundled \ -DWITH_SSL=system \ -DWITH_ZLIB=system 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:97 CONFLICTS_INSTALL= mysql*-server \ mysqlwsrep*-server \ mariadb*-server \ percona*-server USE_RC_SUBR= mysql-server mysqlrouter SUB_FILES= my.cnf.sample mysqlrouter.conf.sample pkg-message USERS= mysql mysqlrouter GROUPS= mysql mysqlrouter USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin 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="" # todo, likely broken, see # https://dev.mysql.com/doc/refman/8.4/en/source-configuration-options.html PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--skip-performance-schema" FEDERATED_SUB_LIST+= FEDER="--federated" FEDERATED_SUB_LIST_OFF+= FEDER="" .endif .include CXXFLAGS+= -malign-double .include 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}${PREFIX}/etc/mysqlrouter ${INSTALL_DATA} ${WRKDIR}/mysqlrouter.conf.sample \ ${STAGEDIR}${PREFIX}/etc/mysqlrouter/mysqlrouter.conf.sample ${MKDIR} ${STAGEDIR}${ETCDIR}/keyring ${MKDIR} ${STAGEDIR}${MY_SECDIR} ${MKDIR} ${STAGEDIR}${MY_TMPDIR} ${MKDIR} ${STAGEDIR}${DOCSDIR} ${MV} ${STAGEDIR}${PREFIX}/LICENSE.router ${STAGEDIR}${PREFIX}/README.router ${STAGEDIR}${DOCSDIR} .endif .include diff --git a/databases/mysql97-server/files/mysql-server.in b/databases/mysql97-server/files/mysql-server.in index c79874df9f2c..73e5bcf282ce 100644 --- a/databases/mysql97-server/files/mysql-server.in +++ b/databases/mysql97-server/files/mysql-server.in @@ -1,78 +1,79 @@ #!/bin/sh # PROVIDE: mysql # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following line to /etc/rc.conf to enable mysql: # mysql_enable (bool): Set to "NO" by default. # Set it to "YES" to enable MySQL. # mysql_dbdir (str): Default to "%%MY_DBDIR%%" # Base database directory. # mysql_confdir (str): Default to "%%ETCDIR%%" # Base configuration directory. # mysql_optfile (str): Server-specific option file. # Set it in the rc.conf or default behaviour of # `mysqld_safe` itself, will be picking # ${mysql_confdir}/my.cnf if it exists. # mysql_pidfile (str): Custom PID file path and name. # Default to "${mysql_dbdir}/${hostname}.pid". # mysql_args (str): Custom additional arguments to be passed # to mysqld_safe (default empty). # . /etc/rc.subr name="mysql" rcvar=mysql_enable load_rc_config $name : ${mysql_enable="NO"} +: ${mysql_svcj_options="net_basic"} : ${mysql_dbdir="%%MY_DBDIR%%"} : ${mysql_confdir="%%ETCDIR%%"} if [ -f "${mysql_confdir}/my.cnf" ]; then : ${mysql_optfile="${mysql_confdir}/my.cnf"} elif [ -f "${mysql_dbdir}/my.cnf" ]; then : ${mysql_optfile="${mysql_dbdir}/my.cnf"} fi if [ ! -z "${mysql_optfile}" ]; then mysql_extra="--defaults-extra-file=${mysql_optfile}" fi mysql_user="mysql" : ${hostname:=`/bin/hostname`} pidfile=${mysql_pidfile:-"${mysql_dbdir}/${hostname}.pid"} command="/usr/sbin/daemon" command_args="-c -f %%PREFIX%%/bin/mysqld_safe ${mysql_extra} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --pid-file=${pidfile} --user=${mysql_user} ${mysql_args} %%FEDER%% %%PERFSCHEMRC%%" procname="%%PREFIX%%/libexec/mysqld" start_precmd="${name}_prestart" start_postcmd="${name}_poststart" mysqld_init="${procname}" mysqld_init_args="${mysql_extra} --initialize-insecure --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --user=${mysql_user}" mysql_create_auth_tables() { eval $mysqld_init $mysqld_init_args >/dev/null 2>/dev/null } mysql_prestart() { if [ ! -d "${mysql_dbdir}/mysql/." ]; then mysql_create_auth_tables || return 1 fi return 0 } mysql_poststart() { local timeout=15 while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do timeout=$(( timeout - 1 )) sleep 1 done return 0 } run_rc_command "$1"