[Midnightbsd-cvs] mports [23233] trunk/Mk/extensions/mysql.mk: add mysql 8 support
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sun Apr 29 16:37:46 EDT 2018
Revision: 23233
http://svnweb.midnightbsd.org/mports/?rev=23233
Author: laffer1
Date: 2018-04-29 16:37:45 -0400 (Sun, 29 Apr 2018)
Log Message:
-----------
add mysql 8 support
Modified Paths:
--------------
trunk/Mk/extensions/mysql.mk
Modified: trunk/Mk/extensions/mysql.mk
===================================================================
--- trunk/Mk/extensions/mysql.mk 2018-04-29 20:31:06 UTC (rev 23232)
+++ trunk/Mk/extensions/mysql.mk 2018-04-29 20:37:45 UTC (rev 23233)
@@ -1,74 +1,109 @@
-# -*- tab-width: 4; -*-
-# ex: ts=4
+# $MidnightBSD$
#
-# $MidnightBSD$
-
-.if defined(_POSTMKINCLUDED) && !defined(Mysql_Post_Include)
-
-Mysql_Post_Include= mysql.mk
-Mysql_Include_MAINTAINER= ports at MidnightBSD.org
-
-
-##
-# USE_MYSQL - Add MySQL (client/server/embedded) dependency (default:
-# client).
-# If no version is given (by the maintainer via the port or
-# by the user via defined variable), try to find the
-# currently installed version. Fall back to default if
-# necessary (MySQL-5.5 = 55).
-# DEFAULT_MYSQL_VER
-# - MySQL default version. Can be overridden within a port.
-# Default: 55.
-# WANT_MYSQL_VER
-# - Maintainer can set an arbitrary version of MySQL to always
-# build this port with (overrides WITH_MYSQL_VER).
+# Provide support for MySQL
+# Feature: mysql
+# Usage: USES=mysql or USES=mysql:args
+# Valid ARGS: <version>, client, server, embedded
+#
+# version If no version is given (by the maintainer via the port), try to
+# find the currently installed version. Fall back to default if
+# necessary (MySQL-5.6 = 56).
+# client Depends on the libmysqlclient library (default)
+# server/embedded
+# Depend on the server at run/build time. If none of these is
+# set, depends on the client.
+#
# IGNORE_WITH_MYSQL
-# - This variable can be defined if the ports does not support
-# one or more versions of MySQL.
+# This variable can be defined if the ports does not support one
+# or more versions of MySQL.
# WITH_MYSQL_VER
-# - User defined variable to set MySQL version.
+# User defined variable to set MySQL version.
# MYSQL_VER
-# - Detected MySQL version.
-##
+# Detected MySQL version.
+#
+.if !defined(_INCLUDE_USES_MYSQL_MK)
+_INCLUDE_USES_MYSQL_MK= yes
+
.include "${PORTSDIR}/Mk/components/default-versions.mk"
+.if !empty(mysql_ARGS)
+.undef _WANT_MYSQL_VER
+.undef _WANT_MYSQL_SERVER
+.undef _WANT_MYSQL_EMBEDDED
+_MYSQL_ARGS= ${mysql_ARGS:S/,/ /g}
+.if ${_MYSQL_ARGS:Mserver}
+_WANT_MYSQL_SERVER= yes
+_MYSQL_ARGS:= ${_MYSQL_ARGS:Nserver}
+.endif
+.if ${_MYSQL_ARGS:Membedded}
+_WANT_MYSQL_EMBEDDED= yes
+_MYSQL_ARGS:= ${_MYSQL_ARGS:Nembedded}
+.endif
+.if ${_MYSQL_ARGS:Mclient}
+_WANT_MYSQL_CLIENT= yes
+_MYSQL_ARGS:= ${_MYSQL_ARGS:Nclient}
+.endif
+
+# Port requested a version
+.if !empty(_MYSQL_ARGS)
+_WANT_MYSQL_VER= ${_MYSQL_ARGS}
+.if (${_WANT_MYSQL_VER:C/[0-9]*//} == "m")
+_WANT_MYSQL_FLAVOUR= mariadb
+.elif (${_WANT_MYSQL_VER:C/[0-9]*//} == "p")
+_WANT_MYSQL_FLAVOUR= percona
+.else
+_WANT_MYSQL_FLAVOUR= mysql
+.endif
+.endif
+.endif # !empty(mysql_ARGS)
+
.if defined(DEFAULT_MYSQL_VER)
WARNING+= "DEFAULT_MYSQL_VER is defined, consider using DEFAULT_VERSIONS=mysql=${DEFAULT_MYSQL_VER} instead"
.endif
-#.if defined(USE_MYSQL)
DEFAULT_MYSQL_VER?= ${MYSQL_DEFAULT:S/.//}
# MySQL client version currently supported.
-MYSQL51_LIBVER= 16
-MYSQL53m_LIBVER= 16
-MYSQL55_LIBVER= 18
-MYSQL55m_LIBVER= 18
-MYSQL55p_LIBVER= 18
-MYSQL56_LIBVER= 18
-MYSQL56p_LIBVER= 18
-MYSQL100m_LIBVER= 18
+# When adding a version, please keep the comment in
+# Mk/bsd.default-versions.mk in sync.
+.for v in 55 55m 55p 56 56p 56w 100m 101m
+MYSQL${v}_LIBVER= 18
+.endfor
+MYSQL57_LIBVER= 20
+MYSQL57p_LIBVER= 20
+MYSQL80_LIBVER= 21
+MYSQL102m_LIBVER= 3
# Setting/finding MySQL version we want.
.if exists(${LOCALBASE}/bin/mysql) && !defined(PACKAGE_BUILDING)
-_MYSQL!= ${LOCALBASE}/bin/mysql --version | ${SED} -e 's/.*Distrib \([0-9]\)\.\([0-9]*\).*/\1\2/'
+_MYSQL!= ${LOCALBASE}/bin/mysql_config --version | ${SED} -e 's/\([0-9]\{1,2\}\)\.\([0-9]*\).*/\1\2/'
_PERCONA!= ${LOCALBASE}/bin/mysql --version | ${GREP} Percona | wc -l
_MARIADB!= ${LOCALBASE}/bin/mysql --version | ${GREP} MariaDB | wc -l
.if ${_PERCONA} == 1
_MYSQL_VER= ${_MYSQL}p
+_MYSQL_FLAVOUR= percona
.elif ${_MARIADB} == 1
_MYSQL_VER= ${_MYSQL}m
+_MYSQL_FLAVOUR= mariadb
.else
_MYSQL_VER= ${_MYSQL}
+_MYSQL_FLAVOUR= mysql
.endif
.endif
-.if defined(WANT_MYSQL_VER)
-.if defined(WITH_MYSQL_VER) && ${WITH_MYSQL_VER} != ${WANT_MYSQL_VER}
-IGNORE= cannot install: the port wants mysql${WANT_MYSQL_VER}-client and you try to install mysql${WITH_MYSQL_VER}-client
+.if defined(_WANT_MYSQL_VER)
+.if defined(WITH_MYSQL_VER) && (${WITH_MYSQL_VER:C/[0-9]*//} == "m")
+WITH_MYSQL_FLAVOUR= mariadb
+.elif defined(WITH_MYSQL_VER) && (${WITH_MYSQL_VER:C/[0-9]*//} == "p")
+WITH_MYSQL_FLAVOUR= percona
+.else
+WITH_MYSQL_FLAVOUR= mysql
.endif
-MYSQL_VER= ${WANT_MYSQL_VER}
+.if defined(WITH_MYSQL_VER) && ${WITH_MYSQL_VER} != ${_WANT_MYSQL_VER}
+IGNORE= cannot install: the port wants ${_WANT_MYSQL_FLAVOUR}${_WANT_MYSQL_VER:C/[mpw]//}-client and you try to install ${WITH_MYSQL_FLAVOUR}${WITH_MYSQL_VER:C/[mpw]//}-client
+.endif
+MYSQL_VER= ${_WANT_MYSQL_VER}
.elif defined(WITH_MYSQL_VER)
MYSQL_VER= ${WITH_MYSQL_VER}
.else
@@ -77,31 +112,43 @@
.else
MYSQL_VER= ${DEFAULT_MYSQL_VER}
.endif
-.endif # WANT_MYSQL_VER
+.endif # _WANT_MYSQL_VER
+.if ${MYSQL_VER:C/[0-9]*//} == "m"
+MYSQL_FLAVOUR= mariadb
+.elif ${MYSQL_VER:C/[0-9]*//} == "p"
+MYSQL_FLAVOUR= percona
+.else
+MYSQL_FLAVOUR= mysql
+.endif
+
.if defined(_MYSQL_VER)
.if ${_MYSQL_VER} != ${MYSQL_VER}
-IGNORE= cannot install: MySQL versions mismatch: mysql${_MYSQL_VER}-client is installed and wanted version is mysql${MYSQL_VER}-client
+IGNORE= cannot install: MySQL versions mismatch: ${_MYSQL_FLAVOUR}${_MYSQL_VER:C/[mpw]//}-client is installed and wanted version is ${MYSQL_FLAVOUR}${MYSQL_VER:C/[mpw]//}-client
.endif
.endif
-.if (${MYSQL_VER} == "53m")
-_MYSQL_CLIENT= databases/mariadb-client
-_MYSQL_SERVER= databases/mariadb-server
-.elif (${MYSQL_VER} == "55m")
-_MYSQL_CLIENT= databases/mariadb55-client
-_MYSQL_SERVER= databases/mariadb55-server
-.elif (${MYSQL_VER} == "55p")
-_MYSQL_CLIENT= databases/percona55-client
-_MYSQL_SERVER= databases/percona55-server
-.elif (${MYSQL_VER} == "56p")
-_MYSQL_CLIENT= databases/percona56-client
-_MYSQL_SERVER= databases/percona56-server
+_MYSQL_SHLIB= libmysqlclient
+.if (${MYSQL_VER:C/[0-9]*//} == "m")
+_MYSQL_SERVER_FLAVOUR= mariadb
+_MYSQL_CLIENT_FLAVOUR= mariadb
+. if ${MYSQL_VER:C/m//} >= 102
+_MYSQL_SHLIB= libmariadb
+. endif
+.elif (${MYSQL_VER:C/[0-9]*//} == "p")
+_MYSQL_SERVER_FLAVOUR= percona
+_MYSQL_CLIENT_FLAVOUR= percona
+.elif (${MYSQL_VER:C/[0-9]*//} == "w")
+_MYSQL_SERVER_FLAVOUR= mysqlwsrep
+_MYSQL_CLIENT_FLAVOUR= mysql
.else
-_MYSQL_CLIENT= databases/mysql${MYSQL_VER}-client
-_MYSQL_SERVER= databases/mysql${MYSQL_VER}-server
+_MYSQL_SERVER_FLAVOUR= mysql
+_MYSQL_CLIENT_FLAVOUR= mysql
.endif
+_MYSQL_CLIENT= databases/${_MYSQL_CLIENT_FLAVOUR}${MYSQL_VER:C/[mp]//}-client
+_MYSQL_SERVER= databases/${_MYSQL_SERVER_FLAVOUR}${MYSQL_VER:C/[mp]//}-server
+
# And now we are checking if we can use it
.if defined(MYSQL${MYSQL_VER}_LIBVER)
.if defined(IGNORE_WITH_MYSQL)
@@ -111,18 +158,18 @@
. endif
. endfor
.endif # IGNORE_WITH_MYSQL
-.if (${USE_MYSQL} == "server" || ${USE_MYSQL} == "embedded")
-RUN_DEPENDS+= ${LOCALBASE}/libexec/mysqld:${PORTSDIR}/${_MYSQL_SERVER}
-.if (${USE_MYSQL} == "embedded")
-BUILD_DEPENDS+= ${LOCALBASE}/lib/mysql/libmysqld.a:${PORTSDIR}/${_MYSQL_SERVER}
+.if defined(_WANT_MYSQL_SERVER) || defined(_WANT_MYSQL_EMBEDDED)
+RUN_DEPENDS+= ${LOCALBASE}/libexec/mysqld:${_MYSQL_SERVER}
+.if defined(_WANT_MYSQL_EMBEDDED)
+BUILD_DEPENDS+= ${LOCALBASE}/lib/mysql/libmysqld.a:${_MYSQL_SERVER}
.endif
-.else
-LIB_DEPENDS+= libmysqlclient.so.${MYSQL${MYSQL_VER}_LIBVER}:${PORTSDIR}/${_MYSQL_CLIENT}
.endif
+.if defined(_WANT_MYSQL_CLIENT) || \
+ !(defined(_WANT_MYSQL_SERVER) || defined(_WANT_MYSQL_EMBEDDED))
+LIB_DEPENDS+= ${_MYSQL_SHLIB}.so.${MYSQL${MYSQL_VER}_LIBVER}:${_MYSQL_CLIENT}
+.endif
.else
IGNORE= cannot install: unknown MySQL version: ${MYSQL_VER}
.endif # Check for correct libs
-#.endif # USE_MYSQL
-
-.endif # defined(_POSTMKINCLUDED) && !defined(Mysql_Post_Include)
+.endif
More information about the Midnightbsd-cvs
mailing list