1 # Created by: Mahdi Mokhtari <mokhi64@gmail.com>
6 DISTVERSIONSUFFIX?= -dmr
8 CATEGORIES= databases ipv6
9 MASTER_SITES= MYSQL/MySQL-8.0
10 PKGNAMESUFFIX?= 80-server
11 DISTNAME= ${PORTNAME}-boost-${PORTVERSION}${DISTVERSIONSUFFIX}
13 MAINTAINER= mmokhi@FreeBSD.org
14 COMMENT?= Multithreaded SQL database (server)
18 WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}${DISTVERSIONSUFFIX}
20 SLAVEDIRS= databases/mysql80-client
21 USES= bison:build cmake:outsource compiler:c11 compiler:c++11-lib \
22 cpe libedit localbase perl5 shebangfix ssl
26 MY_DBDIR= /var/db/mysql
27 MY_SECDIR= /var/db/mysql_secure
28 MY_TMPDIR= /var/db/mysql_tmpdir
30 LIB_DEPENDS+= libevent.so:devel/libevent \
31 liblz4.so:archivers/liblz4
33 CMAKE_BUILD_TYPE= Release
35 CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \
36 -DINSTALL_LDCONFIGDIR="${LOCALBASE}/libdata/ldconfig" \
37 -DINSTALL_PKGCONFIGDIR="${LOCALBASE}/libdata/pkgconfig" \
38 -DINSTALL_DOCDIR="share/doc/mysql" \
39 -DINSTALL_DOCREADMEDIR="share/doc/mysql" \
40 -DINSTALL_INCLUDEDIR="include/mysql" \
41 -DINSTALL_INFODIR="info" \
42 -DINSTALL_LIBDIR="lib/mysql" \
43 -DINSTALL_MANDIR="man" \
44 -DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \
45 -DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \
46 -DINSTALL_MYSQLSHAREDIR="share/mysql" \
47 -DINSTALL_MYSQLTESTDIR="share/mysql/tests" \
48 -DINSTALL_PLUGINDIR="lib/mysql/plugin" \
49 -DINSTALL_SBINDIR="libexec" \
50 -DINSTALL_SCRIPTDIR="bin" \
51 -DINSTALL_SECURE_FILE_PRIVDIR="${MY_SECDIR}" \
52 -DINSTALL_SHAREDIR="share" \
53 -DINSTALL_SUPPORTFILESDIR="share/mysql" \
54 -DMYSQL_KEYRINGDIR="${ETCDIR}/keyring" \
55 -DWITH_BOOST="${WRKSRC}/boost" \
56 -DWITH_EDITLINE=system \
57 -DWITH_LIBEVENT=system \
60 -DINSTALL_MYSQLTESTDIR=0
62 SHEBANG_FILES= scripts/*.pl* scripts/*.sh
65 .error You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again.
68 SUB_LIST= MY_DBDIR=${MY_DBDIR} \
69 MY_SECDIR=${MY_SECDIR} \
70 MY_TMPDIR=${MY_TMPDIR}
72 PLIST_SUB= MY_DBDIR=${MY_DBDIR} \
73 MY_SECDIR=${MY_SECDIR} \
74 MY_TMPDIR=${MY_TMPDIR} \
75 MYSQL80_LIBVER=${MYSQL80_LIBVER}
78 .if !defined(CLIENT_ONLY)
81 CONFLICTS_INSTALL= mysql8[1-9]-server-* \
82 mysql[0-79][0-9]-server-* \
83 mariadb[0-9][0-9]-server-* \
84 percona[0-9][0-9]-server-*
86 USE_RC_SUBR= mysql-server
88 SUB_FILES= my.cnf.sample
93 USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin
95 MMAN1= my_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 myisampack.1 \
96 mysql.server.1 mysql_convert_table_format.1 mysql_fix_extensions.1 \
97 mysql_install_db.1 mysql_plugin.1 mysql_secure_installation.1 mysql_setpermission.1 \
98 mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql_zap.1 mysqlbug.1 \
99 mysqld_multi.1 mysqld_safe.1 mysqldumpslow.1 mysqlhotcopy.1 mysqlman.1 \
100 mysqltest.1 perror.1 replace.1 resolve_stack_dump.1 resolveip.1
102 CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON"
104 OPTIONS_GROUP= STORAGE
105 OPTIONS_GROUP_STORAGE= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA
107 STORAGE_DESC= Permissible "Storage Engines" (to compile statically into the server)
108 ARCHIVE_DESC= Compile "Archive Storage" statically in server
109 BLACKHOLE_DESC= Compile "Blackhole Storage" statically in server
110 EXAMPLE_DESC= Compile "Example Storage" statically in server
111 FEDERATED_DESC= Compile "Federated Storage" statically in server
112 INNOBASE_DESC= Compile "InnoDB Storage" statically in server
113 PARTITION_DESC= Compile "Partitioning support Storage" statically in server
114 PERFSCHEMA_DESC= Compile "Performance Schema Storage" statically in server
116 ARCHIVE_CMAKE_ON= -DWITH_ARCHIVE_STORAGE_ENGINE=1
117 BLACKHOLE_CMAKE_ON= -DWITH_BLACKHOLE_STORAGE_ENGINE=1
118 EXAMPLE_CMAKE_ON= -DWITH_EXAMPLE_STORAGE_ENGINE=1
119 FEDERATED_CMAKE_ON= -DWITH_FEDERATED_STORAGE_ENGINE=1
120 INNOBASE_CMAKE_ON= -DWITH_INNOBASE_STORAGE_ENGINE=1
121 PARTITION_CMAKE_ON= -DWITH_PARTITION_STORAGE_ENGINE=1
122 PERFSCHEMA_CMAKE_ON= -DWITH_PERFSCHEMA_STORAGE_ENGINE=1
124 OPTIONS_GROUP+= FEATURES
125 OPTIONS_GROUP_FEATURES= PERFSCHM
126 FEATURES_DESC= Default features knobs
127 PERFSCHM_DESC= Enable "Performance Schema" by default (High RAM usage)
128 OPTIONS_DEFAULT+= PERFSCHM
130 PERFSCHM_SUB_LIST+= PERFSCHEMRC=""
131 PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--skip-performance-schema"
132 FEDERATED_SUB_LIST+= FEDER="--federated"
133 FEDERATED_SUB_LIST_OFF+= FEDER=""
136 .include <bsd.port.pre.mk>
138 .if ${SSL_DEFAULT} == base
139 CMAKE_ARGS+= -DWITH_SSL=system
141 CMAKE_ARGS+= -DWITH_SSL=${OPENSSLBASE}
145 @${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h
148 @${REINPLACE_CMD} 's/*.1/${MMAN1}/' ${WRKSRC}/man/CMakeLists.txt
150 .if !defined(CLIENT_ONLY)
152 ${MKDIR} ${STAGEDIR}${ETCDIR}
153 ${INSTALL_DATA} ${WRKDIR}/my.cnf.sample ${STAGEDIR}${ETCDIR}/my.cnf.sample
154 ${MKDIR} ${STAGEDIR}${ETCDIR}/keyring
155 ${MKDIR} ${STAGEDIR}${MY_SECDIR}
156 ${MKDIR} ${STAGEDIR}${MY_TMPDIR}
159 .include <bsd.port.post.mk>