diff -ur databases/mariadb104-client.orig/pkg-plist databases/mariadb104-client/pkg-plist --- databases/mariadb104-client.orig/pkg-plist +++ databases/mariadb104-client/pkg-plist @@ -169,4 +169,3 @@ @comment man/man1/wsrep_sst_rsync_wan.1.gz @comment man/man8/mysqld.8.gz libdata/pkgconfig/mariadb.pc -@dir(%%MARIADB_USER%%,%%MARIADB_GROUP%%,) %%MARIADB_RUNDIR%% diff -ur databases/mariadb104-server.orig/Makefile databases/mariadb104-server/Makefile --- databases/mariadb104-server.orig/Makefile +++ databases/mariadb104-server/Makefile @@ -3,7 +3,7 @@ PORTNAME?= mariadb PORTVERSION= 10.4.13 -PORTREVISION?= 3 +PORTREVISION?= 4 CATEGORIES= databases MASTER_SITES= http://mirrors.supportex.net/${SITESDIR}/ \ http://mirror2.hs-esslingen.de/pub/Mirrors/${SITESDIR}/ \ @@ -42,6 +42,7 @@ MARIADB_GROUP?= mysql MARIADB_RUNDIR?= /var/run/mysql +MARIADB_SOCK?= mysql.sock MARIADB_LOGDIR?= /var/log/mysql OPTIONS_SINGLE= GSSAPI @@ -93,7 +94,7 @@ -DINSTALL_SUPPORTFILESDIR="share/mysql" \ -DDEFAULT_SYSCONFDIR="${PREFIX}/etc" \ -DDEFAULT_SYSCONF2DIR="${ETCDIR}/conf.d" \ - -DINSTALL_UNIX_ADDRDIR="${MARIADB_RUNDIR}" \ + -DINSTALL_UNIX_ADDRDIR="${MARIADB_RUNDIR}/${MARIADB_SOCK}" \ -DWITH_SSL="${OPENSSLBASE}" \ -DCURSES_CURSES_LIBRARY="/usr/lib/libcurses.so" \ -DCURSES_FORM_LIBRARY="/usr/lib/libform.so" \ @@ -121,10 +122,8 @@ GSSAPI_MIT_USES= gssapi:mit GSSAPI_NONE_CMAKE_ON= -DPLUGIN_AUTH_GSSAPI_CLIENT=OFF OPTIONS_SUB= yes -SUB_LIST+= MARIADB_USER="${MARIADB_USER}" \ - MARIADB_RUNDIR="${MARIADB_RUNDIR}" -PLIST_SUB+= MARIADB_USER="${MARIADB_USER}" \ - MARIADB_GROUP="${MARIADB_GROUP}" +SUB_LIST+= MARIADB_RUNDIR="${MARIADB_RUNDIR}" \ + MARIADB_SOCK="${MARIADB_SOCK}" .if ${PKGNAMESUFFIX:M*-client} # MySQL-Client part @@ -133,7 +132,6 @@ USES+= readline USE_LDCONFIG= ${PREFIX}/lib/mysql SUB_FILES+= my.cnf.sample client.cnf.sample -PLIST_SUB+= MARIADB_RUNDIR="${MARIADB_RUNDIR}" .else # ! ${PKGNAMESUFFIX:M*-client} # MySQL-Server part USES+= mysql:104m @@ -142,8 +140,12 @@ CMAKE_ON+= CMAKE_SKIP_BUILD_RPATH WITH_EMBEDDED_SERVER CMAKE_OFF+= WITH_CLIENT SUB_FILES+= server.cnf.sample -SUB_LIST+= MARIADB_LOGDIR="${MARIADB_LOGDIR}" -PLIST_SUB+= MARIADB_LOGDIR="${MARIADB_LOGDIR}" +SUB_LIST+= MARIADB_LOGDIR="${MARIADB_LOGDIR}" \ + MARIADB_USER="${MARIADB_USER}" \ + MARIADB_GROUP="${MARIADB_GROUP}" +PLIST_SUB+= MARIADB_LOGDIR="${MARIADB_LOGDIR}" \ + MARIADB_USER="${MARIADB_USER}" \ + MARIADB_GROUP="${MARIADB_GROUP}" .for ENGINE in ${OPTIONS_GROUP_ENGINES:NINNOBASE} ${ENGINE}_CMAKE_OFF= -DPLUGIN_${ENGINE}=NO @@ -241,7 +243,6 @@ ${MV} ${STAGEDIR}${PREFIX}/lib/mysql/pkgconfig/mariadb.pc \ ${STAGEDIR}${PREFIX}/libdata/pkgconfig/mariadb.pc ${RMDIR} ${STAGEDIR}${PREFIX}/lib/mysql/pkgconfig - ${MKDIR} ${STAGEDIR}/${MARIADB_RUNDIR} post-install-GSSAPI_NONE-off: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/mysql/plugin/auth_gssapi_client.so diff -ur databases/mariadb104-server.orig/files/client.cnf.sample.in databases/mariadb104-server/files/client.cnf.sample.in --- databases/mariadb104-server.orig/files/client.cnf.sample.in +++ databases/mariadb104-server/files/client.cnf.sample.in @@ -4,7 +4,7 @@ # Options specific to all client programs [client] # port = 3306 # inherited from %%ETCDIR%%/my.cnf -# socket = %%MARIADB_RUNDIR%%/mysql.sock # inherited from %%ETCDIR%%/my.cnf +# socket = %%MARIADB_RUNDIR%%/%%MARIADB_SOCK%% # inherited from %%ETCDIR%%/my.cnf # Options specific to MariaDB client programs [client-mariadb] diff -ur databases/mariadb104-server.orig/files/my.cnf.sample.in databases/mariadb104-server/files/my.cnf.sample.in --- databases/mariadb104-server.orig/files/my.cnf.sample.in +++ databases/mariadb104-server/files/my.cnf.sample.in @@ -5,7 +5,7 @@ # [client-server] port = 3306 -socket = %%MARIADB_RUNDIR%%/mysql.sock +socket = %%MARIADB_RUNDIR%%/%%MARIADB_SOCK%% # # include *.cnf from the config directory diff -ur databases/mariadb104-server.orig/files/mysql-server.in databases/mariadb104-server/files/mysql-server.in --- databases/mariadb104-server.orig/files/mysql-server.in +++ databases/mariadb104-server/files/mysql-server.in @@ -12,14 +12,17 @@ %%LEGACY_LIMITS%%# mysql_(instance_)?limits (bool): Set to "NO" by default. %%LEGACY_LIMITS%%# Set it to yes to run `limits -e -U mysql` %%LEGACY_LIMITS%%# just before mysql starts. -# mysql_(instance_)?dbdir (str): Default to "/var/db/mysql" -# Base database directory. +# mysql_(instance_)?dbdir (str): Base database directory. +# Default to "/var/db/mysql". # mysql_(instance_)?args (str): Custom additional arguments to be passed # to mysqld_safe (default empty). # mysql_(instance_)?pidfile (str): Custum PID file path and name. # Default to "${mysql_dbdir}/${hostname}.pid". -# mysql_(instance_)?user (str): User to run mysqld as -# Default to "mysql" created by the port +# mysql_(instance_)?user (str): User to run mysqld as. +# Default to "%%MARIADB_USER%%" created by the port. +# mysql_(instance_)?socket (str): Name of the socket file. +# Default to "" and used from %%ETCDIR%%/my.cnf, +# where default is "%%MARIADB_RUNDIR%%/%%MARIADB_SOCK%%". # mysql_(instance_)?optfile (str): Server-specific option file. # Default to "${mysql_dbdir}/my.cnf". # mysql_instances (str): Set to "" by default. @@ -34,7 +37,7 @@ : ${mysql_enable="NO"} %%LEGACY_LIMITS%%: ${mysql_limits="NO"} -: ${mysql_user="mysql"} +: ${mysql_user="%%MARIADB_USER%%"} %%LEGACY_LIMITS%%mysql_limits_args="-e -U ${mysql_user}" : ${mysql_dbdir="/var/db/mysql"} : ${mysql_optfile="${mysql_dbdir}/my.cnf"} @@ -54,6 +57,7 @@ %%LEGACY_LIMITS%%eval mysql_limits="\${mysql_${instance}_limits:-\"${mysql_limits}\"}" eval mysql_user="\${mysql_${instance}_user:-\"${mysql_user}\"}" %%LEGACY_LIMITS%%eval mysql_limits_args="\${mysql_${instance}_limits_args:-\"-e -U $mysql_user\"}" + eval mysql_socket="\${mysql_${instance}_socket:-\"${mysql_socket}\"}" eval mysql_optfile="\${mysql_${instance}_optfile:-\"${mysql_dbdir}/my.cnf\"}" eval mysql_pidfile="\${mysql_${instance}_pidfile:-\"${mysql_dbdir}/`/bin/hostname`.pid\"}" ;; @@ -99,7 +103,7 @@ pidfile=$mysql_pidfile mysql_install_db="%%PREFIX%%/bin/mysql_install_db" mysql_install_db_args="--basedir=%%PREFIX%% --datadir=${mysql_dbdir} --force" -command_args="-c -f %%PREFIX%%/bin/mysqld_safe --defaults-extra-file=${mysql_optfile} --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args}" +command_args="-c -f %%PREFIX%%/bin/mysqld_safe --defaults-extra-file=${mysql_optfile} --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_socket:+--socket=${mysql_socket}} ${mysql_args}" mysql_create_auth_tables() { @@ -118,6 +122,10 @@ done if [ ! -d "${mysql_dbdir}/mysql/." ]; then mysql_create_auth_tables || return 1 + fi + [ "${mysql_socket}" = "" ] && mysql_rundir="%%MARIADB_RUNDIR%%" || mysql_rundir="`/usr/bin/dirname ${mysql_socket}`" + if [ ! -d "${mysql_rundir}" ]; then + install -d -o ${mysql_user} -g %%MARIADB_GROUP%% "${mysql_rundir}" fi %%LEGACY_LIMITS%% if checkyesno mysql_limits; then %%LEGACY_LIMITS%% eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null diff -ur databases/mariadb104-server.orig/files/server.cnf.sample.in databases/mariadb104-server/files/server.cnf.sample.in --- databases/mariadb104-server.orig/files/server.cnf.sample.in +++ databases/mariadb104-server/files/server.cnf.sample.in @@ -14,12 +14,12 @@ [mysqld] user = %%MARIADB_USER%% # port = 3306 # inherited from %%ETCDIR%%/my.cnf -# socket = %%MARIADB_RUNDIR%%/mysql.sock # inherited from %%ETCDIR%%/my.cnf +# socket = %%MARIADB_RUNDIR%%/%%MARIADB_SOCK%% # inherited from %%ETCDIR%%/my.cnf bind-address = 127.0.0.1 basedir = %%PREFIX%% datadir = /var/db/mysql net_retry_count = 16384 -log_error = %%MARIADB_LOGDIR%%/${hostname}.err +log_error = %%MARIADB_LOGDIR%%/mysqld.err # [mysqld] configuration for ZFS # From https://www.percona.com/resources/technical-presentations/zfs-mysql-percona-technical-webinar # Create separate datasets for data and logs, eg