From owner-svn-ports-all@FreeBSD.ORG Mon Mar 3 20:07:12 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 001E1D62; Mon, 3 Mar 2014 20:07:11 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E0DE87AE; Mon, 3 Mar 2014 20:07:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s23K7BPl095069; Mon, 3 Mar 2014 20:07:11 GMT (envelope-from zi@svn.freebsd.org) Received: (from zi@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s23K7BhE095067; Mon, 3 Mar 2014 20:07:11 GMT (envelope-from zi@svn.freebsd.org) Message-Id: <201403032007.s23K7BhE095067@svn.freebsd.org> From: Ryan Steinmetz Date: Mon, 3 Mar 2014 20:07:11 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r346957 - in head/net/samplicator: . 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.17 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: Mon, 03 Mar 2014 20:07:12 -0000 Author: zi Date: Mon Mar 3 20:07:11 2014 New Revision: 346957 URL: http://svnweb.freebsd.org/changeset/ports/346957 QAT: https://qat.redports.org/buildarchive/r346957/ Log: - Add rc script - Bump PORTREVISION Submitted by: me Approved by: me@falz.net (maintainer) Added: head/net/samplicator/files/ head/net/samplicator/files/samplicator.in (contents, props changed) Modified: head/net/samplicator/Makefile Modified: head/net/samplicator/Makefile ============================================================================== --- head/net/samplicator/Makefile Mon Mar 3 19:45:19 2014 (r346956) +++ head/net/samplicator/Makefile Mon Mar 3 20:07:11 2014 (r346957) @@ -2,6 +2,7 @@ PORTNAME= samplicator PORTVERSION= 1.3.7.b6 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= ${MASTER_SITE_GOOGLE_CODE} MASTER_SITE_SUBDIR= samplicator @@ -14,6 +15,7 @@ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING GNU_CONFIGURE= yes +USE_RC_SUBR= ${PORTNAME} PLIST_FILES= bin/samplicate PORTDOCS= NEWS README Added: head/net/samplicator/files/samplicator.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/samplicator/files/samplicator.in Mon Mar 3 20:07:11 2014 (r346957) @@ -0,0 +1,70 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: samplicator +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following line(s) to /etc/rc.conf to enable samplicator: +# +# samplicator_enable="YES" +# # optional +# samplicator_flags="-S -p 2055 -c %%PREFIX%%/etc/samplicator.conf" +# samplicator_user="nobody" +# +# The default is to run samplicator as nobody, which will prevent you from +# using the -S flag (maintain (spoof) source addresses). +# If you want to maintain (spoof) source addresses, you will need to run as +# root. +# This can be accomplished by adding samplicator_user="root" to /etc/rc.conf + +. /etc/rc.subr + +name=samplicator +rcvar=samplicator_enable +load_rc_config $name + +# Set defaults +samplicator_enable=${samplicator_enable:-"NO"} +samplicator_flags=${samplicator_flags:-"-p 2055 -c %%PREFIX%%/etc/samplicator.conf"} +samplicator_user=${samplicator_user:-"nobody"} + +pidfile=/var/run/samplicator.pid +command=%%PREFIX%%/bin/samplicate +required_files=%%PREFIX%%/etc/samplicator.conf + +start_precmd=samplicator_precmd +start_cmd=samplicator_start +stop_postcmd=samplicator_cleanup + +samplicator_precmd() +{ + # since we are using daemon(1) to drop privs, we cannot let samplicator fork + %%ECHO%% "${samplicator_flags}" | %%EGREP%% -q "(^\-f| \-f)" 2>&1 > /dev/null + if [ $? -eq 0 ]; then + %%ECHO%% "Please remove parameter -f from samplicator_flags" + %%ECHO%% + return 1 + fi + + # root is required for -S, do a pre-launch sanity check + %%ECHO%% "${samplicator_flags}" | %%EGREP%% -q "(^\-S| \-S)" 2>&1 > /dev/null + if [ $? -eq 0 && ${samplicator_user} -ne "root" ]; then + %%ECHO%% "-S requires that samplicator_user be set to root." + %%ECHO%% + return 1 + fi +} + +samplicator_start() { + echo "Starting samplicator." + %%TOUCH%% ${pidfile} && %%CHOWN%% ${samplicator_user} ${pidfile} + /usr/sbin/daemon -cf -p ${pidfile} -u ${samplicator_user} ${command} ${samplicator_flags} +} + +samplicator_cleanup() { + [ -f ${pidfile} ] && %%RM%% ${pidfile} +} + +run_rc_command "$1"