Date: Sat, 20 Mar 2010 03:28:59 GMT From: Sevan Janiyan <venture37@geeklan.co.uk> To: FreeBSD-gnats-submit@FreeBSD.org Cc: ale@FreeBSD.org Subject: ports/144887: [PATCH] databases/mysql55-server: switch to using USERS & GROUPS in Makefile Message-ID: <201003200328.o2K3Sx9W028918@tinderbox.thingamajig-systems.co.uk> Resent-Message-ID: <201003200340.o2K3e1Tn040613@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 144887 >Category: ports >Synopsis: [PATCH] databases/mysql55-server: switch to using USERS & GROUPS in Makefile >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Mar 20 03:40:01 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Sevan Janiyan >Release: FreeBSD 8.0-RELEASE-p2 i386 >Organization: >Environment: System: FreeBSD tinderbox.thingamajig-systems.co.uk 8.0-RELEASE-p2 FreeBSD 8.0-RELEASE-p2 #2: Mon Mar 1 00:17:47 GMT >Description: Drop .sh extension from rc script specify USE_LDCONFIG to take care of shared libraries upon install Added file(s): - files/mysql-server.in Removed file(s): - pkg-install - files/mysql-server.sh.in Port maintainer (ale@FreeBSD.org) is cc'd. Generated with FreeBSD Port Tools 0.99 >How-To-Repeat: >Fix: --- mysql-server-5.5.2.patch begins here --- Index: Makefile =================================================================== RCS file: /home/ncvs/ports/databases/mysql55-server/Makefile,v retrieving revision 1.258 diff -u -u -r1.258 Makefile --- Makefile 5 Mar 2010 11:43:04 -0000 1.258 +++ Makefile 20 Mar 2010 03:25:36 -0000 @@ -20,6 +20,7 @@ SLAVEDIRS= databases/mysql55-client databases/mysql55-scripts GNU_CONFIGURE= yes MAKE_JOBS_SAFE= yes +USE_LDCONFIG= yes CONFIGURE_ARGS= --localstatedir=/var/db/mysql \ --without-debug \ @@ -30,6 +31,9 @@ --with-comment='FreeBSD port: ${PKGNAME}' \ --enable-thread-safe-client +USERS= mysql +GROUPS= mysql + .ifdef USE_MYSQL .error You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again. .endif @@ -99,7 +103,7 @@ CONFLICTS= mysql-server-[34].* mysql-server-5.[0-46-9].* -USE_RC_SUBR= mysql-server.sh +USE_RC_SUBR= mysql-server .if defined(WITH_NDB) PLIST_SUB+= NDB="" @@ -161,7 +165,6 @@ post-install: .if !defined(PACKAGE_BUILDING) - @${SETENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL @${CAT} ${PKGMESSAGE} .endif Index: pkg-install =================================================================== RCS file: pkg-install diff -N pkg-install --- pkg-install 4 Jan 2010 10:05:52 -0000 1.8 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,36 +0,0 @@ -#!/bin/sh - -PATH=/bin:/usr/sbin - -case $2 in -POST-INSTALL) - USER=mysql - GROUP=${USER} - UID=88 - GID=${UID} - - if pw group show "${GROUP}" 2>/dev/null; then - echo "You already have a group \"${GROUP}\", so I will use it." - else - if pw groupadd ${GROUP} -g ${GID}; then - echo "Added group \"${GROUP}\"." - else - echo "Adding group \"${GROUP}\" failed..." - exit 1 - fi - fi - - if pw user show "${USER}" 2>/dev/null; then - echo "You already have a user \"${USER}\", so I will use it." - else - if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \ - -d /nonexistent -s /sbin/nologin -c "MySQL Daemon" - then - echo "Added user \"${USER}\"." - else - echo "Adding user \"${USER}\" failed..." - exit 1 - fi - fi - ;; -esac Index: files/mysql-server.in =================================================================== RCS file: files/mysql-server.in diff -N files/mysql-server.in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/mysql-server.in 20 Mar 2010 03:25:36 -0000 @@ -0,0 +1,74 @@ +#!/bin/sh +# +# $FreeBSD: ports/databases/mysql55-server/files/mysql-server.sh.in,v 1.7 2010/01/04 10:05:52 ale Exp $ +# + +# PROVIDE: mysql +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# +# Add the following line to /etc/rc.conf to enable mysql: +# mysql_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable MySQL. +# mysql_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" +# Base database directory. +# mysql_args (str): Custom additional arguments to be passed +# to mysqld_safe (default empty). +# + +. %%RC_SUBR%% + +name="mysql" +rcvar=`set_rcvar` + +load_rc_config $name + +: ${mysql_enable="NO"} +: ${mysql_limits="NO"} +: ${mysql_dbdir="/var/db/mysql"} +: ${mysql_args=""} + +mysql_user="mysql" +mysql_limits_args="-e -U ${mysql_user}" +pidfile="${mysql_dbdir}/`/bin/hostname`.pid" +command="%%PREFIX%%/bin/mysqld_safe" +command_args="--defaults-extra-file=${mysql_dbdir}/my.cnf --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args} > /dev/null 2>&1 &" +procname="%%PREFIX%%/libexec/mysqld" +start_precmd="${name}_prestart" +start_postcmd="${name}_poststart" +mysql_install_db="%%PREFIX%%/bin/mysql_install_db" +mysql_install_db_args="--ldata=${mysql_dbdir}" + +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_dbdir} +} + +mysql_prestart() +{ + if [ ! -d "${mysql_dbdir}/mysql/." ]; then + mysql_create_auth_tables || return 1 + fi + if checkyesno mysql_limits; then + eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null + else + return 0 + fi +} + +mysql_poststart() +{ + local timeout=15 + while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do + timeout=$(( timeout - 1 )) + sleep 1 + done + return 0 +} + +run_rc_command "$1" Index: files/mysql-server.sh.in =================================================================== RCS file: files/mysql-server.sh.in diff -N files/mysql-server.sh.in --- files/mysql-server.sh.in 4 Jan 2010 10:05:52 -0000 1.7 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,74 +0,0 @@ -#!/bin/sh -# -# $FreeBSD: ports/databases/mysql55-server/files/mysql-server.sh.in,v 1.7 2010/01/04 10:05:52 ale Exp $ -# - -# PROVIDE: mysql -# REQUIRE: LOGIN -# KEYWORD: shutdown - -# -# Add the following line to /etc/rc.conf to enable mysql: -# mysql_enable (bool): Set to "NO" by default. -# Set it to "YES" to enable MySQL. -# mysql_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" -# Base database directory. -# mysql_args (str): Custom additional arguments to be passed -# to mysqld_safe (default empty). -# - -. %%RC_SUBR%% - -name="mysql" -rcvar=`set_rcvar` - -load_rc_config $name - -: ${mysql_enable="NO"} -: ${mysql_limits="NO"} -: ${mysql_dbdir="/var/db/mysql"} -: ${mysql_args=""} - -mysql_user="mysql" -mysql_limits_args="-e -U ${mysql_user}" -pidfile="${mysql_dbdir}/`/bin/hostname`.pid" -command="%%PREFIX%%/bin/mysqld_safe" -command_args="--defaults-extra-file=${mysql_dbdir}/my.cnf --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args} > /dev/null 2>&1 &" -procname="%%PREFIX%%/libexec/mysqld" -start_precmd="${name}_prestart" -start_postcmd="${name}_poststart" -mysql_install_db="%%PREFIX%%/bin/mysql_install_db" -mysql_install_db_args="--ldata=${mysql_dbdir}" - -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_dbdir} -} - -mysql_prestart() -{ - if [ ! -d "${mysql_dbdir}/mysql/." ]; then - mysql_create_auth_tables || return 1 - fi - if checkyesno mysql_limits; then - eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null - else - return 0 - fi -} - -mysql_poststart() -{ - local timeout=15 - while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do - timeout=$(( timeout - 1 )) - sleep 1 - done - return 0 -} - -run_rc_command "$1" --- mysql-server-5.5.2.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003200328.o2K3Sx9W028918>