Date: Tue, 13 Apr 2010 15:40:03 GMT From: Christopher Key <cjk32@cam.ac.uk> To: freebsd-ports-bugs@FreeBSD.org Subject: Re: ports/144706: New port: audio/linux-musicipserver Message-ID: <201004131540.o3DFe3gm056397@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/144706; it has been noted by GNATS. From: Christopher Key <cjk32@cam.ac.uk> To: bug-followup@FreeBSD.org, cjk32@cam.ac.uk Cc: Subject: Re: ports/144706: New port: audio/linux-musicipserver Date: Tue, 13 Apr 2010 11:53:39 +0100 This is a multi-part message in MIME format. --------------020208050004030407020002 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Updated patch: - Paths now relative to PORTSDIR - Removed sudo dependency - References squeezeboxserver, not squeezecenter - Checks for conflicting sockets when starting, not just when restarting --------------020208050004030407020002 Content-Type: text/plain; name="linux-musicipserver-2.sh" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="linux-musicipserver-2.sh" # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # audio/linux-musicipserver/files/pkg-install.in # audio/linux-musicipserver/files/musicipserver.in # audio/linux-musicipserver/distinfo # audio/linux-musicipserver/pkg-descr # audio/linux-musicipserver/pkg-plist # audio/linux-musicipserver/Makefile # echo x - audio/linux-musicipserver/files/pkg-install.in sed 's/^X//' >audio/linux-musicipserver/files/pkg-install.in << 'e7c62871ec97661e0ff014c915c1ed7c' X#!/bin/sh X# $FreeBSD: ports/audio/squeezeboxserver/files/pkg-install.in,v 1.10 2009/10/14 22:33:31 brooks Exp $ X Xname=%%PORTNAME%% Xmusicipdir=%%MUSICIPDIR%% Xlogdir=%%MUSICIPSERVERLOGDIR%% Xstatedir=%%MUSICIPSERVERDBDIR%% Xmusicipdirabs=${PKG_PREFIX}/${musicipdir} X Xu=%%MUSICIPSERVERUSER%% Xg=%%MUSICIPSERVERGROUP%% Xugid=10002 Xhomedir=${statedir} Xshell=/sbin/nologin Xcomment="MusicIP pseudo-user" X Xnewsyslogfile=/etc/newsyslog.conf Xlogcomment="# added by audio/${name} port" Xserverlogfile=${logdir}/server.log X# TODO: Need to understand what happens when no signal gets sent to the server process Xserverlogline="${serverlogfile} ${u}:${g} 644 3 100 * JN" X Xcase $2 in XPRE-INSTALL) X if pw group show "${g}" >/dev/null 2>&1; then X echo "Using existing group \"${g}\"." X else X echo "Creating group \"${g}\", (gid: ${ugid})." X pw groupadd ${g} -g ${ugid} X if [ $? != 0 ]; then X echo "Failed to add group \"${g}\"." X exit 1 X fi X fi X if pw user show "${u}" >/dev/null 2>&1; then X echo "Using existing user \"${u}\"." X else X echo "Creating user \"${u}\", (uid: ${ugid})." X pw useradd ${u} -u ${ugid} -g ${ugid} -h - \ X -d ${homedir} -s ${shell} -c "${comment}" X if [ $? != 0 ]; then X echo "Failed to add user \"${u}\"." X exit 1 X fi X fi X ;; XPOST-INSTALL) X if egrep -q "^${serverlogfile}\>" ${newsyslogfile}; then X echo "Using existing ${newsyslogfile} entry." X else X echo "Adding ${name} log entry to ${newsyslogfile}." X echo "$logcomment" >> ${newsyslogfile} X echo "$serverlogline" >> ${newsyslogfile} X fi X X if [ ! -d ${logdir} ]; then X mkdir ${logdir} X chown -H ${u}:${g} ${logdir} X chmod 755 ${logdir} X fi X if [ ! -d ${statedir} ]; then X mkdir ${statedir} X chown -H ${u}:${g} ${statedir} X chmod 755 ${statedir} X fi X X if [ ! -f ${serverlogfile} ]; then X touch ${serverlogfile} X chown -H ${u}:${g} ${serverlogfile} X fi X X if [ ! -d ${statedir}/.MusicMagic ]; then X mkdir ${statedir}/.MusicMagic X chown -H ${u}:${g} ${statedir}/.MusicMagic X chmod 755 ${statedir}/.MusicMagic X fi X X if [ ! -e ${statedir}/.MusicMagic/mmm.ini ]; then X cp ${musicipdirabs}/mmm.ini.sample ${statedir}/.MusicMagic/mmm.ini X chown -H ${u}:${g} ${statedir}/.MusicMagic/mmm.ini X chmod 644 ${statedir}/.MusicMagic/mmm.ini X fi X X ;; Xesac e7c62871ec97661e0ff014c915c1ed7c echo x - audio/linux-musicipserver/files/musicipserver.in sed 's/^X//' >audio/linux-musicipserver/files/musicipserver.in << '6c790343abefc4f03b199e67486feb5b' X#!/bin/sh X# X# $Id: musicipserver.in 1579 2010-04-13 10:24:53Z chris $ X# X X# PROVIDE: musicipserver X# BEFORE: squeezeboxserver X# REQUIRE: LOGIN X# KEYWORD: shutdown X X# X# Add the following lines to /etc/rc.conf to enable musicipserver: X# X#musicipserver_enable="YES" X# X X. %%RC_SUBR%% X Xname="%%PORTNAME%%" Xprocname="%%PREFIX%%/%%MUSICIPDIR%%/MusicMagicServer" Xstart_cmd="${name}_start_cmd" Xstop_cmd="${name}_stop_cmd" X Xload_rc_config $name Xmusicip_enable=${musicip_enable:-"NO"} Xmusicip_user="%%MUSICIPSERVERUSER%%" Xmusicip_group="%%MUSICIPSERVERGROUP%%" Xdbdir="%%MUSICIPSERVERDBDIR%%" Xlogdir="%%MUSICIPSERVERLOGDIR%%" Xserverlogfile="${logdir}/server.log" Xmusicip_port="10002" # Should probably pull this in from mmm.ini X Xmusicipserver_start_cmd() X{ X # Check whether we're already running X pid=$(pgrep -o MusicMagicServer) && echo "${name} already running? (pid=$pid)." && return 1 X X echo "Starting ${name}." X X # MusicIP server will fail to start if there are any sockets still active on port 10002. X # TODO: Are there states other than TIME_WAIT that we should wait on? X waited=0 X while netstat -n | egrep "^tcp4 +[[:digit:]]+ +[[:digit:]]+ +([[:digit:]]+\.){4}$musicip_port +([[:digit:]]+\.){4}[[:digit:]]+ +TIME_WAIT\$" > /dev/null; do X if [ $waited = 0 ]; then X echo -n "Waiting on sockets" X waited=1 X else X echo -n "." X fi X sleep 1 X done X if [ $waited = 1 ]; then X echo "." X fi X X # MusicMagicServer start is designed not to return unless there X # an error, so it's run in the background and we sleep for 5s after X # launching to allow time for it to start up before any of its X # dependents. Unfortunately, this makes it difficult to determine if X # it failed to start. To overcome this, we wait 5s, then check for the X # process name. The nested sh -c suppresses the [$PID] message. X HOME="${dbdir}" su -m ${musicip_user} -c "sh -c \"${procname} -verbose start >> ${serverlogfile} &\"" X sleep 5 X X pid=$(pgrep MusicMagicServer -o) || echo "${name} failed to start." && return 1 X X} X Xmusicipserver_stop_cmd() X{ X echo "Stopping ${name}." X HOME="${dbdir}" su -m ${musicip_user} -c "${procname} stop" X} X Xrun_rc_command "$1" 6c790343abefc4f03b199e67486feb5b echo x - audio/linux-musicipserver/distinfo sed 's/^X//' >audio/linux-musicipserver/distinfo << 'b3c9b9adbd04462c28cfc03d8121fbc7' XMD5 (MusicMixer_x86_1.8.tgz) = cc8d9945251b94c16fcb7b9443743008 XSHA256 (MusicMixer_x86_1.8.tgz) = 05394616166356b9f919a645cd6cd363388349be5790b8775c584a005db258b9 XSIZE (MusicMixer_x86_1.8.tgz) = 4610204 b3c9b9adbd04462c28cfc03d8121fbc7 echo x - audio/linux-musicipserver/pkg-descr sed 's/^X//' >audio/linux-musicipserver/pkg-descr << '9e5689f956541408187d50b94eb0aaf7' XThis is an application for generating playlists based upon musical content. X XWWW: http://www.amplifiedmusicservices.com/ 9e5689f956541408187d50b94eb0aaf7 echo x - audio/linux-musicipserver/pkg-plist sed 's/^X//' >audio/linux-musicipserver/pkg-plist << '9b2b8bc8a7dff8e92b6cbed005ce125c' X@comment $FreeBSD$ X@unexec if cmp -s %%MUSICIPSERVERDBDIR%%/.MusicMagic/mmm.ini %%PREFIX%%/%%MUSICIPDIR%%/mmm.ini.sample; then rm -f %%MUSICIPSERVERDBDIR%%/.MusicMagic/mmm.ini; fi X%%MUSICIPDIR%%/MusicMagicServer X%%MUSICIPDIR%%/mipcore X%%MUSICIPDIR%%/mmm.ini.sample X%%MUSICIPDIR%%/server/index.html X@dirrm %%MUSICIPDIR%%/server X@dirrm %%MUSICIPDIR%% X@comment Don't use @dirrmtry, as %%MUSICIPSERVERDBDIR%% is an absolute path, and shouldn't be prefixed with %%PREFIX%% X@unexec rmdir %%MUSICIPSERVERDBDIR%%/.MusicMagic 2>/dev/null || true X@unexec rmdir %%MUSICIPSERVERDBDIR%% 2>/dev/null || true X@unexec (test -d %%MUSICIPSERVERDBDIR%% && (echo "Configuration information and track database saved. If you will *NOT* use this" && echo "package anymore, please remove %%MUSICIPSERVERDBDIR%% and its contents manually.")) || true 9b2b8bc8a7dff8e92b6cbed005ce125c echo x - audio/linux-musicipserver/Makefile sed 's/^X//' >audio/linux-musicipserver/Makefile << '9f8e342ac298a23268a4cd84a4e08325' X# New ports collection makefile for: genpuid X# Date created: 2009-03-24 X# Whom: Christopher Key <cjk32@cam.ac.uk> X# X# $FreeBSD$ X# X XPORTNAME= musicipserver XPORTVERSION= 1.8 XCATEGORIES= audio linux XMASTER_SITES= http://www.amplifindmusicservices.com/downloads/ XPKGNAMEPREFIX= linux- XDISTNAME= MusicMixer_x86_${PORTVERSION} XEXTRACT_SUFX= .tgz X XMAINTAINER= cjk32@cam.ac.uk XCOMMENT= Application for generating playlists based upon musical content X X# TODO: Is this sufficient to deal with any licensing issues? XNO_CDROM= Not for resale XRESTRICTED= Solely for non-commercial personal use X XWRKSRC= ${WRKDIR}/MusicIP/MusicMagicMixer/ X XPKGINSTALL= ${WRKDIR}/pkg-install X XUSE_LINUX= yes X XNO_BUILD= yes X XUSE_RC_SUBR= musicipserver X X.include <bsd.port.pre.mk> X XSUB_FILES= pkg-install XSUB_LIST= PORTNAME=${PORTNAME} \ X MUSICIPDIR=${MUSICIPDIR} \ X MUSICIPSERVERDBDIR=${MUSICIPSERVERDBDIR} \ X MUSICIPSERVERLOGDIR=${MUSICIPSERVERLOGDIR} \ X MUSICIPSERVERUSER=${MUSICIPSERVERUSER} \ X MUSICIPSERVERGROUP=${MUSICIPSERVERGROUP} XPLIST_SUB= MUSICIPDIR=${MUSICIPDIR} \ X MUSICIPSERVERDBDIR=${MUSICIPSERVERDBDIR} X Xpre-fetch: X.if !defined(MUSICIPDIR) X @${ECHO_MSG} "" X @${ECHO_MSG} "Define MUSICIPDIR to override default of 'musicipmixer'." X @${ECHO_MSG} "" X.endif X XMUSICIPDIR?= musicipmixer XMUSICIPSERVERDBDIR?= /var/db/${PORTNAME} XMUSICIPSERVERLOGDIR?= /var/log/${PORTNAME} XMUSICIPSERVERUSER?= mipserv XMUSICIPSERVERGROUP?= ${MUSICIPSERVERUSER} X Xpre-install: X @PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL X Xdo-install: X @${MKDIR} -m 0755 ${PREFIX}/${MUSICIPDIR} X @${INSTALL_PROGRAM} ${WRKSRC}/MusicMagicServer ${PREFIX}/${MUSICIPDIR} X @${INSTALL_PROGRAM} ${WRKSRC}/mipcore ${PREFIX}/${MUSICIPDIR} X @${INSTALL_DATA} ${WRKSRC}/mmm.ini ${PREFIX}/${MUSICIPDIR}/mmm.ini.sample X @cd ${WRKSRC} && ${COPYTREE_SHARE} server ${PREFIX}/${MUSICIPDIR} X Xpost-install: X @PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL X X.include <bsd.port.post.mk> 9f8e342ac298a23268a4cd84a4e08325 exit --------------020208050004030407020002--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004131540.o3DFe3gm056397>