From owner-freebsd-ports-bugs@FreeBSD.ORG Mon Nov 23 03:00:17 2009 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D85EB1065694 for ; Mon, 23 Nov 2009 03:00:17 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 0AFB88FC12 for ; Mon, 23 Nov 2009 03:00:17 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id nAN30Gwp008249 for ; Mon, 23 Nov 2009 03:00:16 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id nAN30GGw008248; Mon, 23 Nov 2009 03:00:16 GMT (envelope-from gnats) Date: Mon, 23 Nov 2009 03:00:16 GMT Message-Id: <200911230300.nAN30GGw008248@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org From: wahjava@gmail.com (Ashish SHUKLA) Cc: Subject: Re: ports/133533: [PATCH] Add a static user/group for audio/musicpd port X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Ashish SHUKLA List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Nov 2009 03:00:18 -0000 The following reply was made to PR ports/133533; it has been noted by GNATS. From: wahjava@gmail.com (Ashish SHUKLA) To: Martin Wilke Cc: bug-followup@FreeBSD.org Subject: Re: ports/133533: [PATCH] Add a static user/group for audio/musicpd port Date: Mon, 23 Nov 2009 08:22:59 +0530 --=-=-= Content-Transfer-Encoding: quoted-printable =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Martin, Please found the attached diff file, which you'll need to apply on current musicpd port. Thanks =2D --=20 Ashish SHUKLA =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.13 (FreeBSD) iEYEARECAAYFAksJ+Q8ACgkQHy+EEHYuXnTW5gCffR5xFvWMjX92LXp3C7Kxslie jmEAn3gntkf9MdqLU2FsQLQLUN/cSz9Q =3DdOto =2D----END PGP SIGNATURE----- --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=musicpd.diff diff -urN /usr/ports/audio/musicpd/Makefile musicpd/Makefile --- /usr/ports/audio/musicpd/Makefile 2009-09-18 21:35:23.000000000 +0530 +++ musicpd/Makefile 2009-11-23 05:37:34.000000000 +0530 @@ -7,6 +7,7 @@ PORTNAME= musicpd PORTVERSION= 0.15 +PORTREVISION= 1 CATEGORIES= audio ipv6 MASTER_SITES= SF/${PORTNAME}/mpd/${PORTVERSION} DISTNAME= mpd-${PORTVERSION} @@ -60,6 +61,26 @@ HTTPD "Support for httpd output streaming" off \ SAMPLERATE "Support sample rate conversion" off +MPDUSER?= mpd +MPDGROUP?= mpd +MPDDIR?= var/mpd + +MPDUID= 137 +MPDGID= ${MPDUID} + +PLIST_SUB= MPDUSER=${MPDUSER} \ + MPDGROUP=${MPDGROUP} + +PLIST_DIRS= ${MPDDIR} + +SUB_LIST+= MPDUSER=${MPDUSER} \ + MPDGROUP=${MPDGROUP} \ + MPDDIR=${PREFIX}/${MPDDIR} \ + MPDUID=${MPDUID} \ + MPDGID=${MPDGID} + +SUB_FILES+= pkg-install pkg-deinstall + .include .if defined(WITHOUT_FLAC) @@ -200,13 +221,20 @@ CONFIGURE_ARGS+=--enable-lsr .endif -.if defined(NOPORTDOCS) post-patch: + @${REINPLACE_CMD} -e "s/%%MPDDIR%%/${PREFIX:C/\//\\\//g}\/${MPDDIR:C/\//\\\//g}/g" -e "s/%%MPDUSER%%/${MPDUSER}/g" \ + ${WRKSRC}/doc/mpdconf.example +.if defined(NOPORTDOCS) @${REINPLACE_CMD} -e 's|install-docDATA ||' \ ${WRKSRC}/Makefile.in .endif +pre-install: + @PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL + post-install: + @${MKDIR} ${PREFIX}/${MPDDIR} + @${CHOWN} -R ${MPDUSER}:${MPDGROUP} ${PREFIX}/${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-08-21 20:55:29.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-08-21 22:39:47.000000000 +0530 @@ -0,0 +1,93 @@ + +$FreeBSD$ + +--- doc/mpdconf.example.orig ++++ doc/mpdconf.example +@@ -10,14 +10,14 @@ + # be disabled and audio files will only be accepted over ipc socket (using + # file:// protocol) or streaming files over an accepted protocol. + # +-#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. This setting defaults to playlist saving being disabled. + # +-#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 +@@ -25,7 +25,7 @@ + # MPD to accept files over ipc socket (using file:// protocol) or streaming + # files over an accepted protocol. + # +-#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 +@@ -34,20 +34,21 @@ + # The special value "syslog" makes MPD use the local syslog daemon. This + # setting defaults to logging to syslog, otherwise logging is disabled. + # +-#log_file "~/.mpd/log" ++log_file "%%MPDDIR%%/log" ++error_file "%%MPDDIR%%/error-log" + # + # This setting sets the location of the file which stores the process ID + # for use of mpd --kill and some init scripts. This setting is disabled by + # default and the pid file will not be stored. + # +-#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 and the server + # state will be reset on server start up. + # +-#state_file "~/.mpd/state" ++state_file "%%MPDDIR%%/state" + # + ############################################################################### + +@@ -59,7 +60,7 @@ + # initialization. This setting is disabled by default and MPD is run as the + # current user. + # +-#user "nobody" ++user "mpd" + # + # 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. +@@ -69,7 +70,7 @@ + #bind_to_address "any" + # + # And for Unix Socket +-#bind_to_address "~/.mpd/socket" ++#bind_to_address "%%MPDDIR%%/socket" + # + # This setting is the TCP port that is desired for the daemon to get assigned + # to. +@@ -172,18 +173,6 @@ + # See for examples of + # other audio outputs. + # +-# An example of an ALSA output: +-# +-#audio_output { +-# type "alsa" +-# name "My ALSA Device" +-# device "hw:0,0" # optional +-# format "44100:16:2" # optional +-# mixer_device "default" # optional +-# mixer_control "PCM" # optional +-# mixer_index "0" # optional +-#} +-# + # An example of an OSS output: + # + #audio_output { 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-08-21 20:52:42.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-08-21 21:52:46.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 -p ${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-08-21 20:53:38.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. --=-=-=--