[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