ports/144706: New port: audio/linux-musicipserver

Christopher Key cjk32 at cam.ac.uk
Tue Apr 13 15:40:03 UTC 2010


The following reply was made to PR ports/144706; it has been noted by GNATS.

From: Christopher Key <cjk32 at cam.ac.uk>
To: bug-followup at FreeBSD.org, cjk32 at 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 at comment $FreeBSD$
 X at 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 at dirrm %%MUSICIPDIR%%/server
 X at dirrm %%MUSICIPDIR%%
 X at comment Don't use @dirrmtry, as %%MUSICIPSERVERDBDIR%% is an absolute path, and shouldn't be prefixed with %%PREFIX%%
 X at unexec rmdir %%MUSICIPSERVERDBDIR%%/.MusicMagic 2>/dev/null || true
 X at unexec rmdir %%MUSICIPSERVERDBDIR%% 2>/dev/null || true
 X at 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 at 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 at 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--



More information about the freebsd-ports-bugs mailing list