Page MenuHomeFreeBSD

D4166.id10208.diff
No OneTemporary

D4166.id10208.diff

Index: Mk/Uses/mysql.mk
===================================================================
--- /dev/null
+++ Mk/Uses/mysql.mk
@@ -0,0 +1,176 @@
+# $FreeBSD$
+#
+# Provide support for MySQL/MariaDB/Percona (mysql)
+#
+# Feature: mysql
+# Usage: USES= mysql[:version]
+#
+# Maintainer can set version required. Minimum and maximum
+# versions can be specified; e.g. 5.6-, 5.7+
+# MySQL flavours MariaDB and Percona are identified by the
+# m and p version suffixes respectively, eg 10.0m+
+#
+# WANT_MYSQL= server[:fetch]
+#
+# Add MySQL component dependency, using
+# WANT_MYSQL= component[:target].
+# For the full list use make -V _USE_MYSQL_DEP
+# 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.
+#
+# MAINTAINER: brnrd@FreeBSD.org
+
+.if !defined(_INCLUDE_USES_MYSQL_MK)
+
+_INCLUDE_USES_MYSQL_MK= yes
+
+# Variables set by mysql.mk:
+#
+# MYSQL_VER
+# Detected PostgreSQL version. Do *not* use this
+# to add dependencies; use WANT_MYSQL as explained above
+#
+
+VALID_MYSQL_VER= 5.5 5.6 5.7 5.5m 10.0m 10.1m 5.5p 5.6p
+
+# Override non-default LIBVERS like this:
+#MYSQL60_LIBVER=19
+
+MYSQL_LIBVER= 18
+.for v in ${VALID_MYSQL_VER:S,.,,}
+MYSQL$v_LIBVER?= ${MYSQL_LIBVER}
+.endfor
+
+.include "${PORTSDIR}/Mk/bsd.default-versions.mk"
+
+.for v in ${MYSQL_DEFAULT}
+. if ! ${VALID_MYSQL_VER:M$v}
+IGNORE= Invalid MYSQL default version ${MYSQL_DEFAULT}; valid versions are ${VALID_MYSQL_VER}
+. endif
+.endfor
+
+. for w in WITH DEFAULT
+. ifdef $w_MYSQL_VER
+WARNING+= "$w_MYSQL_VER is defined, consider using DEFAULT_VERSIONS=mysql=${$w_MYSQL_VER:C,^.,&.,} instead"
+MYSQL_DEFAULT?= ${$w_MYSQL_VER:C,^.,&.,}
+. endif
+. endfor
+
+. ifdef DEFAULT_MYSYQL_VER && WITH_MYSQL_VER
+IGNORE= will not allow setting both DEFAULT_MYSQL_VER and WITH_MYSQL_VER. Use DEFAULT_VERSIONS=mysql=5.6 instead
+. endif
+
+# Setting/finding MySQL version and flavour we want.
+MYSQL_CLI?= ${LOCALBASE}/bin/mysql
+. if exists(${MYSQL_CLI})
+_MYSQL_CLI_VER!= ${MYSQL_CLI} --version | ${SED} -e 's/.*Distrib \([0-9]\{1,2\}\)\.\([0-9]*\).*/\1\2/'
+_MARIADB!= ${MYSQL_CLI} --version | ${GREP} MariaDB | wc -l
+_PERCONA!= ${MYSQL_CLI} --version | ${GREP} Percona | wc -l
+. if ${_MARIADB} == 1
+_MYSQL_FLAVOUR= MariaDB
+_MYSQL_VER= ${_MYSQL_CLI_VER}m
+. elif ${_PERCONA} == 1
+_MYSQL_FLAVOUR= Percona
+_MYSQL_VER= ${_MYSQL_CLI_VER}p
+. else
+_MYSQL_FLAVOUR= MySQL
+_MYSQL_VER= ${_MYSQL_CLI_VER}
+. endif
+. endif
+
+# Handle the + and - version stuff
+. if !empty(mysql_ARGS)
+. if ${mysql_ARGS:M*+}
+. for version in ${VALID_MYSQL_VER}
+. if ${mysql_ARGS:S/+//} <= ${version}
+_WANT_MYSQL_VER+=${version}
+. endif
+. endfor
+. elif ${mysql_ARGS:M*-}
+. for version in ${VALID_MYSQL_VER}
+. if ${mysql_ARGS:S/-//} >= ${version}
+_WANT_MYSQL_VER+=${version}
+. endif
+. endfor
+. endif
+_WANT_MYSQL_VER?= ${mysql_ARGS}
+. endif
+
+# Try to match default version, otherwise just take the first version
+# that matches
+. if !empty(_WANT_MYSQL_VER)
+. for version in ${_WANT_MYSQL_VER}
+. if ${MYSQL_DEFAULT} == ${version}
+MYSQL_VER= ${version}
+. endif
+MYSQL_VER?= ${version}
+. endfor
+. endif
+# Derive MySQL flavour from version
+. if ${MYSQL_VER:M[0-9.]*m}
+MYSQL_FLAVOUR= MariaDB
+. elif ${MYSQL_VER:M[0-9.]*p}
+MYSQL_FLAVOUR= Percona
+. else
+MYSQL_FLAVOUR= MySQL
+. endif
+# Now we can generate a proper message
+. if !empty(_WANT_MYSQL_VER)
+. if defined(_MYSQL_VER) && ${_MYSQL_VER} != ${MYSQL_VER}
+IGNORE?= cannot install: the port wants ${MYSQL_FLAVOUR}-client version ${_WANT_MYSQL_VER} and you have ${_MYSQL_FLAVOUR} version ${_MYSQL_VER} installed
+. endif
+. endif
+
+# OK, so the port is ambivalent, we'll just take what's on the system.
+MYSQL_VER?= ${_MYSQL_VER}
+MYSQL_FLAVOUR?= ${_MYSQL_FLAVOUR}
+
+# After all that, we still have found nothing!
+. if empty(MYSQL_VER)
+MYSQL_VER= ${MYSQL_DEFAULT}
+MYSQL_FLAVOUR= MySQL
+. endif
+
+# We don't want to be :S,.,, the whole time when doing port version checks
+MYSQL_VER_NODOT= ${MYSQL_VER:S,.,,}
+
+# And now we are checking if we can use it
+. if defined(MYSQL${MYSQL_VER_NODOT}_LIBVER)
+# Compat. Please DO NOT use IGNORE_WITH_MYSQL!
+. if defined(IGNORE_WITH_MYSQL)
+DEV_WARNING+= "Do not set IGNORE_WITH_MYSQL, use the version argument to USES=mysql"
+. for ver in ${IGNORE_WITH_MYSQL}
+. if (${MYSQL_VER} == ${ver})
+IGNORE?= cannot install: does not work with ${_MYSQL_FLAVOUR:tl}${MYSQL_VER_NODOT:C/[mp//]}-client (${_MYSQL_FLAVOUR} ${IGNORE_WITH_MYSQL} not supported)
+. endif
+. endfor
+. endif # IGNORE_WITH_MYSQL
+
+MYSQL_CLIENT_PORT=${PORTSDIR}/databases/${MYSQL_FLAVOUR:tl}${MYSQL_VER_NODOT:C/[mp]//}-client
+MYSQL_SERVER_PORT=${PORTSDIR}/databases/${MYSQL_FLAVOUR:tl}${MYSQL_VER_NODOT:C/[mp]//}-server
+
+_USE_MYSQL_DEP= client embedded lib server
+. if defined(WANT_MYSQL)
+. if ${WANT_MYSQL:Mclient}
+RUN_DEPENDS+= ${LOCALBASE}/bin/mysql:${MYSQL_CLIENT_PORT}
+. elif ${WANT_MYSQL:Membedded}
+BUILD_DEPENDS+= ${LOCALBASE}/lib/mysql/libmysqld.a:${MYSQL_SERVER_PORT}
+RUN_DEPENDS+= ${LOCALBASE}/libexec/mysqld:${MYSQL_SERVER_PORT}
+. elif ${WANT_MYSQL:Mlib}
+LIB_DEPENDS+= libmysqlclient.so.${MYSQL${MYSQL_VER_NODOT}_LIBVER}:${MYSQL_CLIENT_PORT}
+. elif ${WANT_MYSQL:Mserver}
+RUN_DEPENDS+= ${LOCALBASE}/libexec/mysqld:${MYSQL_SERVER_PORT}
+. endif
+. else # WANT_MYSQL undefined
+LIB_DEPENDS+= libmysqlclient.so.${MYSQL${MYSQL_VER_NODOT}_LIBVER}:${MYSQL_CLIENT_PORT}
+. endif
+
+. else
+IGNORE?= cannot install: unknown MySQL version: ${MYSQL_VER}
+. endif # Check for correct version
+CPPFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib
+
+.endif # !defined(_INCLUDE_USES_MYSQL_MK)
Index: Mk/bsd.database.mk
===================================================================
--- Mk/bsd.database.mk
+++ Mk/bsd.database.mk
@@ -7,30 +7,12 @@
Database_Include_MAINTAINER= ports@FreeBSD.org
# This file contains some routines to interact with different databases, such
-# as MySQL and Berkley DB. To include this file, define macro
-# USE_[DATABASE], for example USE_MYSQL. Defining macro like
+# as Berkley DB and Firebird. To include this file, define macro
+# USE_[DATABASE], for example USE_BDB. Defining macro like
# USE_[DATABASE]_VER or WANT_[DATABASE]_VER will include this file as well.
#
##
-# 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.6 = 56).
-# DEFAULT_MYSQL_VER
-# - MySQL default version. Can be overridden within a port.
-# Default: 56.
-# WANT_MYSQL_VER
-# - Maintainer can set an arbitrary version of MySQL to always
-# build this port with (overrides WITH_MYSQL_VER).
-# IGNORE_WITH_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.
-# MYSQL_VER
-# - Detected MySQL version.
+# USE_MYSQL - Do not use this-- instead USES=mysql
##
# USE_BDB - Add Berkeley DB library dependency.
# If no version is given (by the maintainer via the port or
@@ -93,100 +75,6 @@
.include "${PORTSDIR}/Mk/bsd.default-versions.mk"
-.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
-
-# Setting/finding MySQL version we want.
-.if exists(${LOCALBASE}/bin/mysql)
-_MYSQL!= ${LOCALBASE}/bin/mysql --version | ${SED} -e 's/.*Distrib \([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
-.elif ${_MARIADB} == 1
-_MYSQL_VER= ${_MYSQL}m
-.else
-_MYSQL_VER= ${_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
-.endif
-MYSQL_VER= ${WANT_MYSQL_VER}
-.elif defined(WITH_MYSQL_VER)
-MYSQL_VER= ${WITH_MYSQL_VER}
-.else
-.if defined(_MYSQL_VER)
-MYSQL_VER= ${_MYSQL_VER}
-.else
-MYSQL_VER= ${DEFAULT_MYSQL_VER}
-.endif
-.endif # WANT_MYSQL_VER
-
-.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
-.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} == "100m")
-_MYSQL_CLIENT= databases/mariadb100-client
-_MYSQL_SERVER= databases/mariadb100-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
-.else
-_MYSQL_CLIENT= databases/mysql${MYSQL_VER}-client
-_MYSQL_SERVER= databases/mysql${MYSQL_VER}-server
-.endif
-
-# And now we are checking if we can use it
-.if defined(MYSQL${MYSQL_VER}_LIBVER)
-.if defined(IGNORE_WITH_MYSQL)
-. for VER in ${IGNORE_WITH_MYSQL}
-. if (${MYSQL_VER} == "${VER}")
-IGNORE= cannot install: does not work with MySQL version ${MYSQL_VER} (MySQL ${IGNORE_WITH_MYSQL} not supported)
-. 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}
-.endif
-.else
-LIB_DEPENDS+= libmysqlclient.so.${MYSQL${MYSQL_VER}_LIBVER}:${PORTSDIR}/${_MYSQL_CLIENT}
-.endif
-.else
-IGNORE= cannot install: unknown MySQL version: ${MYSQL_VER}
-.endif # Check for correct libs
-.endif # USE_MYSQL
-
.if defined(USE_BDB)
# TODO: avoid malformed conditional with invalid USE_BDB/WITH_BDB_VER
# check if + works properly from test builds 01h12m23s
Index: databases/mariadb55-client/Makefile
===================================================================
--- databases/mariadb55-client/Makefile
+++ databases/mariadb55-client/Makefile
@@ -5,15 +5,17 @@
COMMENT= Multithreaded SQL database (client)
+LICENSE+= LGPL21
+
MASTERDIR= ${.CURDIR}/../mariadb55-server
FILESDIR= ${.CURDIR}/files
PATCHDIR= ${.CURDIR}/files
PLIST= ${.CURDIR}/pkg-plist
-CONFLICTS_INSTALL= mysql*-client-* \
- mariadb1[0-9][0-9]-client-* \
- mariadb5[0-46-9]-client-* \
+CONFLICTS_INSTALL= mariadb5[0-46-9]-client-* \
+ mariadb1*-client-* \
+ mysql*-client-* \
percona*-client-*
CMAKE_ARGS+= -DWITHOUT_SERVER=1
Index: databases/mariadb55-server/Makefile
===================================================================
--- databases/mariadb55-server/Makefile
+++ databases/mariadb55-server/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME?= mariadb
-PORTVERSION= 5.5.44
+PORTVERSION= 5.5.46
CATEGORIES= databases ipv6
MASTER_SITES= http://ftp.osuosl.org/pub/mariadb/${PORTNAME}-${PORTVERSION}/source/ \
http://mirrors.supportex.net/mariadb/${PORTNAME}-${PORTVERSION}/source/ \
@@ -17,6 +17,8 @@
MAINTAINER= never@nevermind.kiev.ua
COMMENT?= Multithreaded SQL database (server)
+LICENSE= GPLv2
+
SUB_FILES= pkg-message
PKGMESSAGE= ${WRKDIR}/pkg-message
@@ -55,12 +57,11 @@
.if !defined(CLIENT_ONLY)
# MySQL-Server part
-USE_MYSQL= yes
-WANT_MYSQL_VER= 55m
+USES+= mysql:5.5m
-CONFLICTS_INSTALL= mysql*-server-* \
- mariadb1[0-9][0-9]-server-* \
- mariadb5[0-46-9]-server-* \
+CONFLICTS_INSTALL= mariadb5[0-46-9]-server-* \
+ mariadb1*-server-* \
+ mysql*-server-* \
percona*-server-*
USE_RC_SUBR= mysql-server
Index: databases/mariadb55-server/distinfo
===================================================================
--- databases/mariadb55-server/distinfo
+++ databases/mariadb55-server/distinfo
@@ -1,2 +1,2 @@
-SHA256 (mariadb-5.5.44.tar.gz) = 7d425caf5f1e45de9e5eb72daa98ceb542e7b134a89bd01540b60fe9c5965e8f
-SIZE (mariadb-5.5.44.tar.gz) = 45672065
+SHA256 (mariadb-5.5.46.tar.gz) = 45b66b7adc87cad32e553df1d5211e5b6426b78a3bc318a5ccde088bf93e6e10
+SIZE (mariadb-5.5.46.tar.gz) = 45683962
Index: databases/mysql55-server/Makefile
===================================================================
--- databases/mysql55-server/Makefile
+++ databases/mysql55-server/Makefile
@@ -59,8 +59,7 @@
# MySQL-Server part
.if !defined(CLIENT_ONLY)
-USE_MYSQL= yes
-WANT_MYSQL_VER= 55
+USES+= mysql:5.5
CONFLICTS_INSTALL= mysql5[0-46-9]-server-* \
mariadb*-server-* \
Index: databases/mysql56-server/Makefile
===================================================================
--- databases/mysql56-server/Makefile
+++ databases/mysql56-server/Makefile
@@ -40,10 +40,7 @@
# MySQL-Server part
.if !defined(CLIENT_ONLY)
-USE_MYSQL= yes
-WANT_MYSQL_VER= 56
-
-USES+= perl5
+USES+= mysql:5.6 perl5
USE_PERL5= run
CONFLICTS_INSTALL= mysql5[0-57-9]-server-* \
Index: databases/percona55-server/Makefile
===================================================================
--- databases/percona55-server/Makefile
+++ databases/percona55-server/Makefile
@@ -60,8 +60,7 @@
# MySQL-Server part
.if !defined(CLIENT_ONLY)
-USE_MYSQL= yes
-WANT_MYSQL_VER= 55p
+USES+= mysql:5.5p
CONFLICTS_INSTALL= mysql*-server-* \
mariadb*-server-* \
Index: databases/percona56-server/Makefile
===================================================================
--- databases/percona56-server/Makefile
+++ databases/percona56-server/Makefile
@@ -60,8 +60,7 @@
# MySQL-Server part
.if !defined(CLIENT_ONLY)
-USE_MYSQL= yes
-WANT_MYSQL_VER= 56p
+USES+= mysql:5.6p
CONFLICTS_INSTALL= mysql*-server-* \
mariadb*-server-* \

File Metadata

Mime Type
text/plain
Expires
Mon, Jun 15, 8:47 PM (5 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33975599
Default Alt Text
D4166.id10208.diff (14 KB)

Event Timeline