ports/133533: [PATCH] Add a static user/group for audio/musicpd port
Ashish SHUKLA
wahjava at gmail.com
Sat Apr 11 05:30:04 UTC 2009
The following reply was made to PR ports/133533; it has been noted by GNATS.
From: Ashish SHUKLA <wahjava at gmail.com>
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: ports/133533: [PATCH] Add a static user/group for
audio/musicpd port
Date: Sat, 11 Apr 2009 10:54:51 +0530
--UlVJffcvxoiEqYs2
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Disposition: inline
Hi,
I've noticed that the rc.d script of musicpd port is not terminating mpd
properly, so I'm sending a new diff which has this problem fixed.
Please discard the old diff.
Thanks
--
Ashish SHUKLA
--UlVJffcvxoiEqYs2
Content-Type: text/x-diff; charset=utf-8
Content-Disposition: attachment; filename="musicpd.diff"
diff -urN /usr/ports/audio/musicpd/Makefile musicpd/Makefile
--- /usr/ports/audio/musicpd/Makefile 2009-03-18 22:15:43.000000000 +0530
+++ musicpd/Makefile 2009-04-11 10:47:54.000000000 +0530
@@ -7,6 +7,7 @@
PORTNAME= musicpd
PORTVERSION= 0.14.2
+PORTREVISION= 1
CATEGORIES= audio ipv6
MASTER_SITES= SF
DISTNAME= mpd-${PORTVERSION}
@@ -51,6 +52,24 @@
LAME "Support for MP3 Icecast Streams" off \
SAMPLERATE "Support sample rate conversion" off
+MPDUSER?= mpd
+MPDGROUP?= mpd
+MPDDIR?= ${PREFIX}/var/mpd
+
+MPDUID= 137
+MPDGID= ${MPDUID}
+
+PLIST_SUB= MPDUSER=${MPDUSER} \
+ MPDGROUP=${MPDGROUP}
+
+SUB_LIST+= MPDUSER=${MPDUSER} \
+ MPDGROUP=${MPDGROUP} \
+ MPDDIR=${MPDDIR} \
+ MPDUID=${MPDUID} \
+ MPDGID=${MPDGID}
+
+SUB_FILES+= pkg-install pkg-deinstall
+
.include <bsd.port.pre.mk>
.if defined(WITHOUT_FLAC)
@@ -151,13 +170,20 @@
LIB_DEPENDS+= samplerate.1:${PORTSDIR}/audio/libsamplerate
.endif
-.if defined(NOPORTDOCS)
post-patch:
+ @${REINPLACE_CMD} -e "s/%%MPDDIR%%/${MPDDIR:C/\//\\\//g}/g" -e "s/%%MPDUSER%%/${MPDUSER}/g" \
+ ${WRKSRC}/doc/mpdconf.example
+.if defined(NOPORTDOCS)
@${REINPLACE_CMD} -e '/^install-data-am:/ s|install-docDATA||' \
${WRKSRC}/Makefile.in ${WRKSRC}/doc/Makefile.in
.endif
+pre-install:
+ @PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
+
post-install:
+ @${MKDIR} ${MPDDIR}
+ @${CHOWN} -R ${MPDUSER}:${MPDGROUP} ${MPDDIR}
@${ECHO_MSG}
@${CAT} ${PKGMESSAGE}
@${ECHO_MSG}
diff -urN /usr/ports/audio/musicpd/files/musicpd.in musicpd/files/musicpd.in
--- /usr/ports/audio/musicpd/files/musicpd.in 2009-03-18 22:15:44.000000000 +0530
+++ musicpd/files/musicpd.in 2009-04-11 10:39:30.000000000 +0530
@@ -13,11 +13,18 @@
name=musicpd
rcvar=`set_rcvar`
+stop_cmd="${name}_stop"
config=%%PREFIX%%/etc/mpd.conf
command=%%PREFIX%%/bin/mpd
required_files=$config
+musicpd_stop()
+{
+ echo -n "Stopping musicpd: ";
+ ${command} --kill ${config} && echo "stopped.";
+}
+
load_rc_config $name
: ${musicpd_enable="NO"}
diff -urN /usr/ports/audio/musicpd/files/patch-doc_mpdconf.example musicpd/files/patch-doc_mpdconf.example
--- /usr/ports/audio/musicpd/files/patch-doc_mpdconf.example 1970-01-01 05:30:00.000000000 +0530
+++ musicpd/files/patch-doc_mpdconf.example 2009-04-09 08:32:02.000000000 +0530
@@ -0,0 +1,72 @@
+
+$FreeBSD$
+
+--- doc/mpdconf.example.orig
++++ doc/mpdconf.example
+@@ -6,27 +6,27 @@
+ # This setting controls the top directory which MPD will search to discover the
+ # available audio files and add them to the daemon's online database.
+ #
+-music_directory "~/music"
++music_directory "%%MPDDIR%%/music"
+ #
+ # This setting sets the MPD internal playlist directory. The purpose of this
+ # directory is storage for playlists created by MPD. The server will use
+ # playlist files not created by the server but only if they are in the MPD
+ # format.
+ #
+-playlist_directory "~/.mpd/playlists"
++playlist_directory "%%MPDDIR%%/playlists"
+ #
+ # This setting sets the location of the MPD database. This file is used to
+ # load the database at server start up and store the database while the
+ # server is not up.
+ #
+-db_file "~/.mpd/database"
++db_file "%%MPDDIR%%/database"
+ #
+ # These settings are the locations for the daemon log files for the daemon.
+ # These logs are great for troubleshooting, depending on your log_level
+ # settings.
+ #
+-log_file "~/.mpd/log"
+-error_file "~/.mpd/error-log"
++log_file "%%MPDDIR%%/log"
++error_file "%%MPDDIR%%/error-log"
+ ###############################################################################
+
+
+@@ -36,13 +36,13 @@
+ # for use of mpd --kill and some init scripts. This setting is disabled by
+ # default.
+ #
+-#pid_file "~/.mpd/pid"
++pid_file "%%MPDDIR%%/pid"
+ #
+ # This setting sets the location of the file which contains information about
+ # most variables to get MPD back into the same general shape it was in before
+ # it was brought down. This setting is disabled by default.
+ #
+-#state_file "~/.mpd/state"
++state_file "%%MPDDIR%%/state"
+ #
+ ###############################################################################
+
+@@ -55,7 +55,7 @@
+ # unprivileged user. This setting is disabled by default, and the server will
+ # run as root.
+ #
+-#user "nobody"
++user "%%MPDUSER%%"
+ #
+ # This setting sets the address for the daemon to listen on. Careful attention
+ # should be paid if this is assigned to anything other then the default, any.
+@@ -65,7 +65,7 @@
+ #bind_to_address "any"
+ #
+ # And for Unix Socket
+-#bind_to_address "~/.mpd/socket"
++#bind_to_address "%%MPDDIR%%/socket"
+ #
+ # This setting is the port that is desired for the daemon to get assigned to.
+ #
diff -urN /usr/ports/audio/musicpd/files/pkg-deinstall.in musicpd/files/pkg-deinstall.in
--- /usr/ports/audio/musicpd/files/pkg-deinstall.in 1970-01-01 05:30:00.000000000 +0530
+++ musicpd/files/pkg-deinstall.in 2009-04-09 08:17:51.000000000 +0530
@@ -0,0 +1,17 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+
+MPDUSER=%%MPDUSER%%
+MPDGROUP=%%MPDGROUP%%
+
+if [ "$2" = "POST-DEINSTALL" ]; then
+ if /usr/sbin/pw group show "${MPDGROUP}" 2>&1 >/dev/null; then
+ echo "You should manually remove the \"${MPDGROUP}\" group."
+ fi
+
+ if /usr/sbin/pw user show "${MPDUSER}" 2>&1 >/dev/null; then
+ echo "You should manually remove the \"${MPDUSER}\" user."
+ fi
+fi
diff -urN /usr/ports/audio/musicpd/files/pkg-install.in musicpd/files/pkg-install.in
--- /usr/ports/audio/musicpd/files/pkg-install.in 1970-01-01 05:30:00.000000000 +0530
+++ musicpd/files/pkg-install.in 2009-04-09 08:58:44.000000000 +0530
@@ -0,0 +1,76 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+
+MPDDIR=%%MPDDIR%%
+MPDUSER=%%MPDUSER%%
+MPDGROUP=%%MPDGROUP%%
+MPDUID=%%MPDUID%%
+MPDGID=%%MPDGID%%
+
+ask() {
+ local question default answer
+
+ question=$1
+ default=$2
+ if [ -z "${PACKAGE_BUILDING}" ]; then
+ read -p "${question} [${default}]? " answer
+ fi
+ if [ "x${answer}" = "x" ]; then
+ answer=${default}
+ fi
+ echo ${answer}
+}
+
+yesno() {
+ local default question answer
+
+ question=$1
+ default=$2
+ while :; do
+ answer=$(ask "${question}" "${default}")
+ case "${answer}" in
+ [Yy][Ee][Ss]|[Yy])
+ return 0
+ ;;
+ [Nn][Oo]|[Nn])
+ return 1
+ ;;
+ esac
+ echo "Please answer yes or no."
+ done
+}
+
+if [ "$2" = "PRE-INSTALL" ]; then
+ if /usr/sbin/pw group show "${MPDGROUP}" 2>&1 >/dev/null; then
+ echo "You already have a \"${MPDGROUP}\" group, so I will use it."
+ else
+ echo "You need a \"${MPDGROUP}\" group."
+ if yesno "Would you like me to create it" "YES"; then
+ /usr/sbin/pw groupadd "${MPDGROUP}" -g "${MPDGID}" -h - || \
+ /usr/sbin/pw groupadd "${MPDGROUP}" -h - || exit
+ echo "Done."
+ else
+ echo "Please create the \"${MPDGROUP}\" group manually and try again."
+ exit 1
+ fi
+ fi
+
+ if /usr/sbin/pw user show "${MPDUSER}" 2>&1 >/dev/null; then
+ echo "You already have a \"${MPDUSER}\" user, so I will use it."
+ else
+ echo "You need a \"${MPDUSER}\" user."
+ if yesno "Would you like me to create it" "YES"; then
+ /usr/sbin/pw useradd "${MPDUSER}" -u "${MPDUID}" -g "${MPDGROUP}" -h - -d "${MPDDIR}" \
+ -s /sbin/nologin -c "MusicPD pseudo-user" || \
+ /usr/sbin/pw useradd "${MPDUSER}" -g "${MPDGROUP}" -h - -d "${MPDDIR}" \
+ -s /sbin/nologin -c "MusicPD pseudo-user" || exit
+ else
+ echo "Please create the \"${MPDUSER}\" user manually and try again."
+ exit 1
+ fi
+ fi
+ [ -d ${MPDDIR} ] || mkdir ${MPDDIR};
+ chown -R ${MPDUSER}:${MPDGROUP} ${MPDDIR}
+fi
diff -urN /usr/ports/audio/musicpd/files/pkg-message.in musicpd/files/pkg-message.in
--- /usr/ports/audio/musicpd/files/pkg-message.in 2008-12-06 02:41:46.000000000 +0530
+++ musicpd/files/pkg-message.in 2009-04-09 08:45:58.000000000 +0530
@@ -17,6 +17,9 @@
or reboot.
+The example configuration of MPD server requires music files to
+be stored at %%MPDDIR%%/music .
+
NOTE: The musicpd server is pretty useless without a client.
You might want to install one of the following ports too:
mpc, ncmpc, glurp, gmpc, kmp, or phpmp.
diff -urN /usr/ports/audio/musicpd/pkg-plist musicpd/pkg-plist
--- /usr/ports/audio/musicpd/pkg-plist 2009-01-28 11:00:46.000000000 +0530
+++ musicpd/pkg-plist 2009-04-09 08:51:00.000000000 +0530
@@ -6,5 +6,8 @@
%%PORTDOCS%%%%DOCSDIR%%/TODO
%%PORTDOCS%%%%DOCSDIR%%/NEWS
%%PORTDOCS%%%%DOCSDIR%%/UPGRADING
+%%PORTDOCS%%%%DOCSDIR%%/protocol.html
%%PORTDOCS%%@dirrm %%DOCSDIR%%
%%PORTDOCS%%@unexec %D/%%DOCSDIR%% 2>/dev/null || true
+ at dirrmtry var/mpd
+ at dirrmtry var
--- /usr/ports/UIDs 2009-04-07 17:19:11.000000000 +0530
+++ UIDs 2009-04-09 11:20:33.000000000 +0530
@@ -76,6 +76,7 @@
undernet:*:134:134::0:0:Undernet ircu Daemon:/nonexistant:/usr/sbin/nologin
rabbitmq:*:135:135::0:0:RabbitMQ:/var/db/rabbitmq:/usr/sbin/nologin
dhcpd:*:136:136::0:0:ISC DHCP daemon:/nonexistent:/usr/sbin/nologin
+mpd:*:137:137:MusicPD pseudo-user:/var/tmp/musicpd/var/mpd:/sbin/nologin
cricket:*:141:80::0:0:Cricket Monitoring User:/usr/local/cricket:/usr/sbin/nologin
dovecot:*:143:143::0:0:Dovecot User:/var/empty:/usr/sbin/nologin
rbldns:*:153:153::0:0:rbldnsd pseudo-user:/nonexistent:/usr/sbin/nologin
--- /usr/ports/GIDs 2009-04-07 17:19:11.000000000 +0530
+++ GIDs 2009-04-09 11:20:43.000000000 +0530
@@ -68,6 +68,7 @@
undernet:*:134:
rabbitmq:*:135:
dhcpd:*:136:
+mpd:*:137
dovecot:*:143:
rbldns:*:153:
sfs:*:171:
--UlVJffcvxoiEqYs2--
More information about the freebsd-ports-bugs
mailing list