diff options
Diffstat (limited to 'databases/mysql94-server/Makefile')
| -rw-r--r-- | databases/mysql94-server/Makefile | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/databases/mysql94-server/Makefile b/databases/mysql94-server/Makefile new file mode 100644 index 000000000000..c7a7b6626c3d --- /dev/null +++ b/databases/mysql94-server/Makefile @@ -0,0 +1,182 @@ +PORTNAME?= mysql +PORTVERSION= 9.4.0 +PORTREVISION?= 0 +CATEGORIES= databases +MASTER_SITES= MYSQL/MySQL-9.4 +PKGNAMESUFFIX?= 94-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/mysql91-client + +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 + +LIB_DEPENDS+= libcurl.so:ftp/curl \ + libicutu.so:devel/icu \ + liblz4.so:archivers/liblz4 \ + libhidapi.so:comms/hidapi \ + libfido2.so:security/libfido2 \ + ${LIB_DEPENDS_${ARCH}} +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 + +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_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" \ + -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 \ + -DWITH_LZ4=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:94 + +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+= -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 <bsd.port.options.mk> + +CXXFLAGS+= -malign-double + +.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> |
