From owner-svn-ports-all@FreeBSD.ORG Tue Jun 3 19:39:28 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E138E4E6; Tue, 3 Jun 2014 19:39:27 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C399A2100; Tue, 3 Jun 2014 19:39:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s53JdRnL043086; Tue, 3 Jun 2014 19:39:27 GMT (envelope-from thierry@svn.freebsd.org) Received: (from thierry@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s53JdRL0043084; Tue, 3 Jun 2014 19:39:27 GMT (envelope-from thierry@svn.freebsd.org) Message-Id: <201406031939.s53JdRL0043084@svn.freebsd.org> From: Thierry Thomas Date: Tue, 3 Jun 2014 19:39:27 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r356397 - in head/www/tt-rss: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Jun 2014 19:39:28 -0000 Author: thierry Date: Tue Jun 3 19:39:27 2014 New Revision: 356397 URL: http://svnweb.freebsd.org/changeset/ports/356397 QAT: https://qat.redports.org/buildarchive/r356397/ Log: It has been reported that sometimes the dæmon is launched before the database get available, this patch tries to fix that: - add an option to teach if the DB is distant; - for mysql, run `mysqladmin ping' (use a fake account, because not authorized for root!) - for pgsl, run `postgresql status' (pg_isready is not available before 9.3). Reported by: Mike Brown Modified: head/www/tt-rss/Makefile head/www/tt-rss/files/ttrssd.in Modified: head/www/tt-rss/Makefile ============================================================================== --- head/www/tt-rss/Makefile Tue Jun 3 19:37:37 2014 (r356396) +++ head/www/tt-rss/Makefile Tue Jun 3 19:39:27 2014 (r356397) @@ -3,6 +3,7 @@ PORTNAME= tt-rss PORTVERSION= 1.12 +PORTREVISION= 1 CATEGORIES= www MAINTAINER= thierry@FreeBSD.org @@ -27,21 +28,26 @@ SHEBANG_FILES= lib/dojo-src/rebuild-dojo USE_RC_SUBR= ttrssd -OPTIONS_DEFINE= CURL GD +OPTIONS_DEFINE= CURL GD DBLOCAL OPTIONS_SINGLE= DB OPTIONS_SINGLE_DB= MYSQL PGSQL -OPTIONS_DEFAULT= CURL GD MYSQL +OPTIONS_DEFAULT= CURL GD MYSQL DBLOCAL CURL_DESC= Use SimplePie instead of Magpie GD_DESC= Use OTP QR code generation +DBLOCAL_DESC= Database is local? .include .if ${PORT_OPTIONS:MPGSQL} USE_PHP+= pgsql DB= pgsql +MYSQL= "\#" +PGSQL= .else USE_PHP+= mysql DB= mysql +MYSQL= +PGSQL= "\#" .endif .if ${PORT_OPTIONS:MCURL} @@ -52,8 +58,14 @@ USE_PHP+= curl USE_PHP+= gd .endif +.if ${PORT_OPTIONS:MDBLOCAL} +DBLOCAL= +.else +DBLOCAL= "\#" +.endif + SUB_FILES= httpd-tt-rss.conf pkg-message -SUB_LIST= DB=${DB} WWWOWN=${WWWOWN} +SUB_LIST= DB=${DB} WWWOWN=${WWWOWN} MYSQL=${MYSQL} PGSQL=${PGSQL} DBLOCAL=${DBLOCAL} PLIST_SUB= WWWOWN=${WWWOWN} WWWGRP=${WWWGRP} PKGMESSAGE= ${WRKDIR}/pkg-message Modified: head/www/tt-rss/files/ttrssd.in ============================================================================== --- head/www/tt-rss/files/ttrssd.in Tue Jun 3 19:37:37 2014 (r356396) +++ head/www/tt-rss/files/ttrssd.in Tue Jun 3 19:39:27 2014 (r356397) @@ -30,9 +30,16 @@ phpupd="update_daemon2.php" ttrssd_log="/var/log/${name}.log" ttrssd_user="%%WWWOWN%%" +%%DBLOCAL%%start_precmd=${name}_prestart start_cmd=${name}_start stop_cmd=${name}_stop +%%MYSQL%%CHECK_CMD="%%LOCALBASE%%/bin/mysqladmin -u mysqld ping" +%%MYSQL%%CHECK_MSG="${name}: mysqladmin command failed; mysql not ready?" +# Waiting for pg_isready when 9.3 is the default +%%PGSQL%%CHECK_CMD="%%LOCALBASE%%/etc/rc.d/postgresql status" +%%PGSQL%%CHECK_MSG="${name}: postgresql status failed; postgresql not ready?" + ttrssd_start() { [ -x $phpcli ] || (echo "$phpcli not found"; exit 1) [ -f $pidfile ] && (echo "$name already running?"; exit 2) @@ -48,4 +55,18 @@ ttrssd_stop() { rm -f $pidfile } +ttrssd_prestart() { +local _count=0 + + while : ; do + $CHECK_CMD > /dev/null 2>&1 && return + _count=$(( $_count + 1 )) + if [ $_count -gt 10 ]; then + err 1 $CHECK_MSG + fi + + sleep 1 + done +} + run_rc_command "$1"