1 |
# $MidnightBSD$ |
2 |
|
3 |
PORTNAME?= mysql |
4 |
PORTVERSION= 5.7.22 |
5 |
PORTREVISION?= 0 |
6 |
CATEGORIES= databases ipv6 |
7 |
MASTER_SITES= MYSQL/MySQL-5.7 |
8 |
PKGNAMESUFFIX?= 57-server |
9 |
DISTNAME= ${PORTNAME}-boost-${PORTVERSION} |
10 |
|
11 |
MAINTAINER= ports@MidnightBSD.org |
12 |
COMMENT?= Multithreaded SQL database (server) |
13 |
|
14 |
LICENSE= gpl2 |
15 |
|
16 |
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} |
17 |
|
18 |
SLAVEDIRS= databases/mysql57-client |
19 |
USES= bison:build cmake:outsource,noninja compiler:c11 compiler:c++11-lib \ |
20 |
cpe libedit localbase perl5 shebangfix ssl |
21 |
|
22 |
USE_PERL5= run |
23 |
|
24 |
MY_DBDIR= /var/db/mysql |
25 |
MY_SECDIR= /var/db/mysql_secure |
26 |
MY_TMPDIR= /var/db/mysql_tmpdir |
27 |
|
28 |
LIB_DEPENDS+= libcurl.so:ftp/curl \ |
29 |
libevent.so:devel/libevent \ |
30 |
liblz4.so:archivers/liblz4 \ |
31 |
libprotobuf.so:devel/protobuf |
32 |
|
33 |
CMAKE_BUILD_TYPE= Release |
34 |
|
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 \ |
58 |
-DWITH_LZ4=system \ |
59 |
-DWITH_ZLIB=system \ |
60 |
-DWITH_PROTOBUF=system \ |
61 |
-DWITH_CURL=system \ |
62 |
-DINSTALL_MYSQLTESTDIR=0 \ |
63 |
-DWITH_DEBUG=0 |
64 |
|
65 |
SHEBANG_FILES= scripts/*.pl* scripts/*.sh |
66 |
|
67 |
.ifdef USE_MYSQL |
68 |
.error You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again. |
69 |
.endif |
70 |
|
71 |
SUB_LIST= MY_DBDIR=${MY_DBDIR} \ |
72 |
MY_SECDIR=${MY_SECDIR} \ |
73 |
MY_TMPDIR=${MY_TMPDIR} |
74 |
|
75 |
PLIST_SUB= MY_DBDIR=${MY_DBDIR} \ |
76 |
MY_SECDIR=${MY_SECDIR} \ |
77 |
MY_TMPDIR=${MY_TMPDIR} |
78 |
|
79 |
OPTIONS_SUB= YES |
80 |
|
81 |
# MySQL-Server part |
82 |
.if !defined(CLIENT_ONLY) |
83 |
USES+= mysql:57 |
84 |
|
85 |
CONFLICTS_INSTALL= mysql5[0-68-9]-server-* \ |
86 |
mysql[0-46-9][0-9]-server-* \ |
87 |
mysqlwsrep* \ |
88 |
mariadb[0-9][0-9]-server-* \ |
89 |
percona[0-9][0-9]-server-* |
90 |
|
91 |
USE_RC_SUBR= mysql-server |
92 |
|
93 |
SUB_FILES= my.cnf.sample |
94 |
|
95 |
USERS= mysql |
96 |
GROUPS= mysql |
97 |
|
98 |
USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin |
99 |
|
100 |
MMAN1= my_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 myisampack.1 \ |
101 |
mysql.server.1 mysql_convert_table_format.1 mysql_fix_extensions.1 \ |
102 |
mysql_install_db.1 mysql_plugin.1 mysql_secure_installation.1 mysql_setpermission.1 \ |
103 |
mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql_zap.1 mysqlbug.1 \ |
104 |
mysqld_multi.1 mysqld_safe.1 mysqldumpslow.1 mysqlhotcopy.1 mysqlman.1 \ |
105 |
mysqltest.1 perror.1 replace.1 resolve_stack_dump.1 resolveip.1 |
106 |
|
107 |
CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON" |
108 |
|
109 |
OPTIONS_GROUP+= STORAGE |
110 |
OPTIONS_GROUP_STORAGE= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA |
111 |
STORAGE_DESC= Permissible "Storage Engines" (to compile statically into the server) |
112 |
ARCHIVE_DESC= Compile "Archive Storage" statically in server |
113 |
BLACKHOLE_DESC= Compile "Blackhole Storage" statically in server |
114 |
EXAMPLE_DESC= Compile "Example Storage" statically in server |
115 |
FEDERATED_DESC= Compile "Federated Storage" statically in server |
116 |
INNOBASE_DESC= Compile "InnoDB Storage" statically in server |
117 |
PARTITION_DESC= Compile "Partitioning support Storage" statically in server |
118 |
PERFSCHEMA_DESC= Compile "Performance Schema Storage" statically in server |
119 |
|
120 |
ARCHIVE_CMAKE_ON= -DWITH_ARCHIVE_STORAGE_ENGINE=1 |
121 |
BLACKHOLE_CMAKE_ON= -DWITH_BLACKHOLE_STORAGE_ENGINE=1 |
122 |
EXAMPLE_CMAKE_ON= -DWITH_EXAMPLE_STORAGE_ENGINE=1 |
123 |
FEDERATED_CMAKE_ON= -DWITH_FEDERATED_STORAGE_ENGINE=1 |
124 |
INNOBASE_CMAKE_ON= -DWITH_INNOBASE_STORAGE_ENGINE=1 |
125 |
PARTITION_CMAKE_ON= -DWITH_PARTITION_STORAGE_ENGINE=1 |
126 |
PERFSCHEMA_CMAKE_ON= -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 |
127 |
|
128 |
OPTIONS_GROUP+= FEATURES |
129 |
FEATURES_DESC= Default features knobs |
130 |
OPTIONS_GROUP_FEATURES= PERFSCHM |
131 |
PERFSCHM_DESC= Enable "Performance Schema" by default (High RAM usage) |
132 |
OPTIONS_DEFAULT+= PERFSCHM |
133 |
|
134 |
PERFSCHM_SUB_LIST+= PERFSCHEMRC="" |
135 |
PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--skip-performance-schema" |
136 |
FEDERATED_SUB_LIST+= FEDER="--federated" |
137 |
FEDERATED_SUB_LIST_OFF+= FEDER="" |
138 |
|
139 |
# issue 220865: Currently there's no source to be built with server-side support. |
140 |
# But this keeps the pkg-plist not overlaping |
141 |
CMAKE_ARGS+= -DWITH_AUTHENTICATION_LDAP=0 |
142 |
.endif |
143 |
|
144 |
.include <bsd.mport.options.mk> |
145 |
|
146 |
SUB_LIST+= LEGACY_LIMITS="" MODERN_LIMITS="@comment " |
147 |
|
148 |
.include <bsd.port.pre.mk> |
149 |
|
150 |
.if ${SSL_DEFAULT} == base |
151 |
CMAKE_ARGS+= -DWITH_SSL=system |
152 |
.else |
153 |
CMAKE_ARGS+= -DWITH_SSL=${OPENSSLBASE} |
154 |
.endif |
155 |
|
156 |
post-extract: |
157 |
@${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h |
158 |
|
159 |
post-patch: |
160 |
@${REINPLACE_CMD} 's/*.1/${MMAN1}/' ${WRKSRC}/man/CMakeLists.txt |
161 |
# issue 220865: MySQL developers forgot that FreeBSD != Linux |
162 |
@${REINPLACE_CMD} -e 's|%%FREEBSD_LOCAL_LIB%%|${LOCALBASE}/lib|g' \ |
163 |
${WRKSRC}/configure.cmake |
164 |
|
165 |
.if !defined(CLIENT_ONLY) |
166 |
post-install: |
167 |
${MKDIR} ${STAGEDIR}${ETCDIR} |
168 |
${INSTALL_DATA} ${WRKDIR}/my.cnf.sample ${STAGEDIR}${ETCDIR}/my.cnf.sample |
169 |
${MKDIR} ${STAGEDIR}${ETCDIR}/keyring |
170 |
${MKDIR} ${STAGEDIR}${MY_SECDIR} |
171 |
${MKDIR} ${STAGEDIR}${MY_TMPDIR} |
172 |
.endif |
173 |
|
174 |
.include <bsd.port.post.mk> |