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