Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Nov 2013 21:40:01 GMT
From:      geoffroy desvernay <dgeo@centrale-marseille.fr>
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/178726: [PATCH] databases/mariadb55-server: multi-instances startup script
Message-ID:  <201311212140.rALLe11f079167@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/178726; it has been noted by GNATS.

From: geoffroy desvernay <dgeo@centrale-marseille.fr>
To: bug-followup@FreeBSD.org, dgeo@centrale-marseille.fr
Cc: Alexandr Kovalenko <never@nevermind.kiev.ua>
Subject: Re: ports/178726: [PATCH] databases/mariadb55-server: multi-instances
 startup script
Date: Thu, 21 Nov 2013 22:32:38 +0100

 This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
 ------enig2VJHBHOHMCJIIDPLIDDNH
 Content-Type: multipart/mixed;
  boundary="------------010109080708020905090400"
 
 This is a multi-part message in MIME format.
 --------------010109080708020905090400
 Content-Type: text/plain; charset=ISO-8859-1
 Content-Transfer-Encoding: quoted-printable
 
 Please could you have a look to this pr ?
 
 Here is an "up-to-date" patch to startup script to allow multiple server
 instances.
 
 Thank you for maintaining mariadb55 !
 --=20
 geoffroy desvernay
 C.R.I - Administration syst=E8mes et r=E9seaux
 Ecole Centrale de Marseille
 Tel: (+33|0)4 91 05 45 24
 Fax: (+33|0)4 91 05 45 98
 dgeo@centrale-marseille.fr
 
 
 --------------010109080708020905090400
 Content-Type: text/x-patch;
  name="mariadb55-server.diff"
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: attachment;
  filename="mariadb55-server.diff"
 
 Index: files/mysql-server.in
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 --- files/mysql-server.in	(revision 334526)
 +++ files/mysql-server.in	(working copy)
 @@ -10,17 +10,23 @@
  #
  # Add the following line to /etc/rc.conf to enable mysql:
  # mysql_enable (bool):	Set to "NO" by default.
 +# mysql_(instance_)?enable (bool):	Set to "NO" by default.
  #			Set it to "YES" to enable MySQL.
 -# mysql_limits (bool):	Set to "NO" by default.
 +# mysql_(instance_)?limits (bool):	Set to "NO" by default.
  #			Set it to yes to run `limits -e -U mysql`
  #			just before mysql starts.
 -# mysql_dbdir (str):	Default to "/var/db/mysql"
 +# mysql_(instance_)?dbdir (str):	Default to "/var/db/mysql"
  #			Base database directory.
 -# mysql_pidfile (str):	Custum PID file path and name.
 +# mysql_(instance_)?pidfile (str):	Custum PID file path and name.
  #			Default to "${mysql_dbdir}/${hostname}.pid".
 -# mysql_args (str):	Custom additional arguments to be passed
 +# mysql_(instance_)?args (str):	Custom additional arguments to be passed=
 
  #			to mysqld_safe (default empty).
 -#
 +# mysql_(instance_)?user (str):	User to run mysqld as
 +#			Default to "mysql" created by the port
 +# mysql_(instance_)?optfile (str): Server-specific option file.
 +#			Default to "${mysql_dbdir}/my.cnf".
 +# mysql_instances (str): Set to "" by default.
 +#			If defined, list of instances to start
 =20
  . /etc/rc.subr
 =20
 @@ -31,23 +37,77 @@
 =20
  : ${mysql_enable=3D"NO"}
  : ${mysql_limits=3D"NO"}
 +: ${mysql_user=3D"mysql"}
 +: ${mysql_limits_args=3D"-e -U $mysql_user"}
  : ${mysql_dbdir=3D"/var/db/mysql"}
 +: ${mysql_optfile=3D"${mysql_dbdir}/my.cnf"}
 =20
 -mysql_user=3D"mysql"
 -mysql_limits_args=3D"-e -U ${mysql_user}"
 -pidfile=3D${mysql_pidfile:-"${mysql_dbdir}/`/bin/hostname`.pid"}
  command=3D"/usr/sbin/daemon"
 -command_args=3D"-c -f %%PREFIX%%/bin/mysqld_safe --defaults-extra-file=3D=
 ${mysql_dbdir}/my.cnf --user=3D${mysql_user} --datadir=3D${mysql_dbdir} -=
 -pid-file=3D${pidfile} ${mysql_args}"
  procname=3D"%%PREFIX%%/libexec/mysqld"
  start_precmd=3D"${name}_prestart"
  start_postcmd=3D"${name}_poststart"
 +
 +if [ -n "$2" ]; then
 +	instance=3D"$2"
 +	load_rc_config ${name}_${instance}
 +	case "$mysql_instances" in
 +	"$2 "*|*" $2 "*|*" $2"|"$2")
 +		eval mysql_args=3D"\${mysql_${instance}_args:-\"${mysql_args}\"}"
 +		eval mysql_dbdir=3D"\${mysql_${instance}_dbdir:-\"/var/db/mysql_${inst=
 ance}\"}"
 +		eval mysql_limits=3D"\${mysql_${instance}_limits:-\"${mysql_limits}\"}=
 "
 +		eval mysql_user=3D"\${mysql_${instance}_user:-\"${mysql_user}\"}"
 +		eval mysql_limits_args=3D"\${mysql_${instance}_limits_args:-\"-e -U $m=
 ysql_user\"}"
 +		eval mysql_optfile=3D"\${mysql_${instance}_optfile:-\"${mysql_dbdir}/m=
 y.cnf\"}"
 +		eval mysql_pidfile=3D"\${mysql_${instance}_pidfile:-\"${mysql_dbdir}/`=
 /bin/hostname`.pid\"}"
 +	;;
 +	*)
 +		err 1 "$2 not found in mysql_instances" ;;
 +	esac
 +else
 +	if [ -n "${mysql_instances}" -a -n "$1" ]; then
 +		for instance in ${mysql_instances}; do
 +			eval _enable=3D"\${mysql_${instance}_enable}"
 +			case "${_enable:-${mysql_enable}}" in
 +			[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
 +				continue
 +			;;
 +			[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
 +			;;
 +			*)
 +				if [ -z "$_enable" ]; then
 +					_var=3Dmysql_enable
 +				else
 +					_var=3Dmysql_${instance}_enable
 +				fi
 +				warn "Bad value" \
 +					"'${_enable:-${mysql_enable}}'" \
 +					"for ${_var}. " \
 +					"Instance ${instance} skipped."
 +				continue
 +			;;
 +			esac
 +			echo "=3D=3D=3D> mysql instance: ${instance}"
 +			if %%PREFIX%%/etc/rc.d/mysql-server $1 ${instance}; then
 +				success=3D"${instance} ${success}"
 +			else
 +				failed=3D"${instance} (${retcode}) ${failed}"
 +			fi
 +		done
 +		exit 0
 +	else
 +		mysql_pidfile=3D${mysql_pidfile:-"${mysql_dbdir}/`/bin/hostname`.pid"}=
 
 +	fi
 +fi
 +
 +pidfile=3D$mysql_pidfile
  mysql_install_db=3D"%%PREFIX%%/bin/mysql_install_db"
  mysql_install_db_args=3D"--basedir=3D%%PREFIX%% --datadir=3D${mysql_dbdi=
 r} --force"
 +command_args=3D"-c -f %%PREFIX%%/bin/mysqld_safe --defaults-extra-file=3D=
 ${mysql_optfile} --user=3D${mysql_user} --datadir=3D${mysql_dbdir} --pid-=
 file=3D${pidfile} ${mysql_args}"
 =20
  mysql_create_auth_tables()
  {
 -	eval $mysql_install_db $mysql_install_db_args >/dev/null 2>/dev/null
 -        [ $? -eq 0 ] && chown -R ${mysql_user}:${mysql_user} ${mysql_dbd=
 ir}
 +	eval $mysql_install_db $mysql_install_db_args
 +        [ $? -eq 0 ] && chown -R ${mysql_user}:$(id -gn $mysql_user) ${m=
 ysql_dbdir}
  }
 =20
  mysql_prestart()
 @@ -56,7 +116,7 @@
  		mysql_create_auth_tables || return 1
  	fi
  	if checkyesno mysql_limits; then
 -		eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null
 +		eval `/usr/bin/limits ${mysql_limits_args:-"-e -U $mysql_user"}` 2>/de=
 v/null
  	else
  		return 0
  	fi
 
 --------------010109080708020905090400--
 
 ------enig2VJHBHOHMCJIIDPLIDDNH
 Content-Type: application/pgp-signature; name="signature.asc"
 Content-Description: OpenPGP digital signature
 Content-Disposition: attachment; filename="signature.asc"
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 Comment: Using GnuPG with Icedove - http://www.enigmail.net/
 
 iQEcBAEBCAAGBQJSjnv2AAoJEC0NWrh8JT1SFdAH/3p8WC+CFB7+5PYt3Xof3Eyk
 bewxLRFaMfKXihxOMPLXJKjJv5ihFz/qWTXnp0Tz9ic6XEOyRGqRHZctOTzLCrS2
 CTavk1505wRw1kdyN5l1vfWxapu0nVKgZzk09nf9CQOSoNgsd5/Xl+2e+cd79ueK
 L6j66YrjMqh7isHEihnRqastRsTRZx61kkEVKV6JojMCCCysyxPfzYwkm3TDHlz+
 xMpwWv0/TOLgu2FEzxHWqqf/mvXxlpXHyM/ofpPpJkZGsw9yLnzUB2+VE9MW1aAH
 tOn/r4JYrQtqNfWJpd2ZwAYLxQ8pxMEyGZuaObIRH5lIE2xArcASpdRdZoIL8zg=
 =MyzD
 -----END PGP SIGNATURE-----
 
 ------enig2VJHBHOHMCJIIDPLIDDNH--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311212140.rALLe11f079167>