Index: head/www/subsonic-standalone/Makefile =================================================================== --- head/www/subsonic-standalone/Makefile (revision 420614) +++ head/www/subsonic-standalone/Makefile (revision 420615) @@ -1,92 +1,86 @@ # Created by: Jeremie Le Hen # Based on www/subsonic from Nicole Reid # $FreeBSD$ PORTNAME= subsonic-standalone PORTVERSION= 5.2 CATEGORIES= www java MASTER_SITES= SF/subsonic/subsonic/${PORTVERSION} DISTNAME= subsonic-${PORTVERSION}-standalone MAINTAINER= jlh@FreeBSD.org COMMENT= Subsonic streaming media server, standalone version LICENSE= GPLv3 OPTIONS_GROUP= TRANSCODING TRANSCODING_DESC= Transcoding support OPTIONS_GROUP_TRANSCODING= FFMPEG FLAC LAME VORBIS FAAC FAAD XMP MPC APE FFMPEG_DESC= Depend on FFmpeg for audio and video transcoding FLAC_DESC= Depend on FLAC for transcoding LAME_DESC= Depend on LAME for MP3 transcoding VORBIS_DESC= Depend on oggenc/oggdec for Vorbis transcoding FAAC_DESC= Depend on FAAD for AAC/M4A transcoding FAAD_DESC= Depend on FAAC for AAC/M4A transcoding XMP_DESC= Depend on XMP for module file transcoding MPC_DESC= Depend on mpcdec for MPC transcoding APE_DESC= Depend on mac for Monkey's Audio transcoding #' OPTIONS_DEFAULT= FFMPEG OPTIONS_SUB= yes FFMPEG_RUN_DEPENDS= ffmpeg:multimedia/ffmpeg FLAC_RUN_DEPENDS= flac:audio/flac LAME_RUN_DEPENDS= lame:audio/lame VORBIS_RUN_DEPENDS= oggenc:audio/vorbis-tools FAAC_RUN_DEPENDS= faac:audio/faac FAAD_RUN_DEPENDS= faad:audio/faad XMP_RUN_DEPENDS= xmp:audio/xmp MPC_RUN_DEPENDS= mpcdec:audio/musepack APE_RUN_DEPENDS= mac:audio/mac .include +NO_WRKSUBDIR= yes NO_BUILD= yes USE_JAVA= yes USE_RC_SUBR= subsonic JAVA_VERSION= 1.6+ +JAVA_RUN= yes USERS= subsonic GROUPS= subsonic SUBSONIC_HOME= /var/subsonic -SUBSONIC_DIR= ${PREFIX}/${PORTDIRNAME} -WRKSRC= ${WRKDIR}/${PORTNAME} -PKGMESSAGE= ${WRKDIR}/pkg-message PLIST_SUB+= SUBSONIC_HOME="${SUBSONIC_HOME}" \ USER="${USERS}" \ GROUP="${GROUPS}" -SUB_FILES= pkg-message \ - message-transcoding \ - subsonic +SUB_FILES= pkg-message \ + message-transcoding SUB_LIST= SUBSONIC_HOME="${SUBSONIC_HOME}" \ - SUBSONIC_DIR="${SUBSONIC_DIR}" \ USER="${USERS}" \ GROUP="${GROUPS}" \ JAVA="${JAVA}" -do-extract: - @${MKDIR} ${WRKSRC} - @${TAR} -xf ${DISTDIR}/${DISTNAME}.tar.gz -C ${WRKSRC} --no-same-owner --no-same-permission +CONFLICTS_INSTALL= subsonic-jetty subsonic-resin3 subsonic-tomcat[678] do-install: @${CAT} ${PKGDIR}/pkg-message-spacer >> ${PKGMESSAGE} @${CAT} ${WRKDIR}/message-transcoding >> ${PKGMESSAGE} @${CAT} ${PKGDIR}/pkg-message-spacer >> ${PKGMESSAGE} - ${INSTALL} -d ${STAGEDIR}${SUBSONIC_DIR} - ${INSTALL_DATA} ${WRKDIR}/${PORTDIRNAME}/LICENSE.TXT ${STAGEDIR}${SUBSONIC_DIR}/ - ${INSTALL_DATA} ${WRKDIR}/${PORTDIRNAME}/README.TXT ${STAGEDIR}${SUBSONIC_DIR}/ - ${INSTALL_DATA} ${WRKDIR}/${PORTDIRNAME}/subsonic.war ${STAGEDIR}${SUBSONIC_DIR}/ - ${INSTALL_DATA} ${WRKDIR}/${PORTDIRNAME}/subsonic-booter-jar-with-dependencies.jar ${STAGEDIR}${SUBSONIC_DIR}/ - ${INSTALL_SCRIPT} ${WRKDIR}/${PORTDIRNAME}/subsonic.sh ${STAGEDIR}${SUBSONIC_DIR}/ - ${INSTALL} -d ${STAGEDIR}${SUBSONIC_HOME} - ${INSTALL} -d ${STAGEDIR}${SUBSONIC_HOME}/transcode -.if ${PORT_OPTIONS:MFFMEG} - ${LN} -sf ${PREFIX}/bin/ffmeg ${STAGEDIR}${SUBSONIC_HOME}/transcode/ffmpeg -.endif -.if ${PORT_OPTIONS:MFLAC} + ${MKDIR} ${STAGEDIR}${DATADIR} + ${INSTALL_MAN} ${WRKSRC}/README.TXT ${STAGEDIR}${DATADIR}/ + ${INSTALL_DATA} ${WRKSRC}/subsonic.war ${STAGEDIR}${DATADIR}/ + ${INSTALL_DATA} ${WRKSRC}/subsonic-booter-jar-with-dependencies.jar ${STAGEDIR}${DATADIR}/ + +post-install: + ${MKDIR} ${STAGEDIR}${SUBSONIC_HOME}/transcode + +post-install-FFMPEG-on: + ${LN} -sf ${PREFIX}/bin/ffmpeg ${STAGEDIR}${SUBSONIC_HOME}/transcode/ffmpeg + +post-install-FLAC-on: ${LN} -sf ${PREFIX}/bin/flac ${STAGEDIR}${SUBSONIC_HOME}/transcode/flac -.endif -.if ${PORT_OPTIONS:MLAME} + +post-install-LAME-on: ${LN} -sf ${PREFIX}/bin/lame ${STAGEDIR}${SUBSONIC_HOME}/transcode/lame -.endif .include Index: head/www/subsonic-standalone/files/subsonic.in =================================================================== --- head/www/subsonic-standalone/files/subsonic.in (revision 420614) +++ head/www/subsonic-standalone/files/subsonic.in (revision 420615) @@ -1,83 +1,88 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: subsonic +# REQUIRE: LOGIN +# KEYWORD: shutdown # # Configuration settings for subsonic in /etc/rc.conf: # # subsonic_enable (bool): # Set to "NO" by default. -# Set it to "YES" to enable subsonic +# Set it to "YES" to enable subsonic. # # subsonic_home (str): # Set to "%%SUBSONIC_HOME%%" by default. # -# subsonic_music_folder (str): -# Set to "%%SUBSONIC_HOME%%"/music by default. -# -# subsonic_playlist_folder (str): -# Set to "%%SUBSONIC_HOME%%"/playlist by default. -# -# subsonic_pidfile (str): -# Set to "${subsonic_home}/subsonic.pid" by default. -# # subsonic_host (str): # Set to "0.0.0.0" by default. # Specify which IP address to listen to. # -# subsonic_http_port (int): +# subsonic_port (int): # Set to "4040" by default. -# Specify which port to listen on for HTTP. +# Specify which port to listen on for HTTP(S). # -# subsonic_https_port (int): -# Set to "0" by default. -# Specify which port to listen on for HTTPS. +# subsonic_ssl (bool): +# Set to "NO" by default. +# Set it to "YES" to enable SSL. # +# subsonic_ssl_keystore (str): +# Optionally set path to custom SSL keystore. +# +# subsonic_ssl_password (str): +# Optionally set password for custom SSL keystore. +# # subsonic_context_path (str): # Set to "/" by default. # Specify the last part of the Subsonic URL, typically "/" or "/subsonic". # # subsonic_max_memory (int): -# Set to "100" by defaut. +# Set to "100" by default. # Specify the memory limit (Java heap size) in megabytes. # . /etc/rc.subr name=subsonic rcvar=${name}_enable procname="%%JAVA%%" load_rc_config "${name}" -eval "${rcvar}=\${${rcvar}:-'NO'}" -eval "${name}_user=\${${name}_user:-'subsonic'}" -eval "${name}_group=\${${name}_group:-'subsonic'}" -eval "_subsonic_max_memory=\${${name}_max_memory:-'100'}" -eval "_subsonic_home=\${${name}_home:-'%%SUBSONIC_HOME%%'}" -eval "_subsonic_music_folder=\${${name}_music_folder:-'%%SUBSONIC_HOME%%/music'}" -eval "_subsonic_playlist_folder=\${${name}folder:-'%%SUBSONIC_HOME%%/playlist'}" -eval "_subsonic_host=\${${name}_host:-'0.0.0.0'}" -eval "_subsonic_http_port=\${${name}_http_port:-'4040'}" -eval "_subsonic_https_port=\${${name}_https_port:-'0'}" -eval "_subsonic_context_path=\${${name}_context_path:-'/'}" -eval "_subsonic_pidfile=\${${name}_pidfile:-'%%SUBSONIC_HOME%%/subsonic.pid'}" -pidfile="${_subsonic_pidfile}" +: ${subsonic_enable:="NO"} +: ${subsonic_user:="%%USER%%"} +: ${subsonic_group:="%%GROUP%%"} +: ${subsonic_home:="%%SUBSONIC_HOME%%"} +: ${subsonic_host:="0.0.0.0"} +: ${subsonic_port:="4040"} +: ${subsonic_ssl:="NO"} +: ${subsonic_context_path:="/"} +: ${subsonic_max_memory:="100"} +if checkyesno subsonic_ssl; then + SUBSONIC_SSL_FLAGS="-Dsubsonic.httpsPort=${subsonic_port}" && subsonic_port="0" + if [ ! -z ${subsonic_ssl_keystore} ]; then + SUBSONIC_SSL_FLAGS=${SUBSONIC_SSL_FLAGS}" -Dsubsonic.ssl.keystore=${subsonic_ssl_keystore} -Dsubsonic.ssl.password=${subsonic_ssl_password}" + fi +fi - -command="%%SUBSONIC_DIR%%/subsonic.sh" -command_args="--home=${_subsonic_home} \ - --host=${_subsonic_host} \ - --port=${_subsonic_http_port} \ - --https-port=${_subsonic_https_port} \ - --context-path=${_subsonic_context_path} \ - --max-memory=${_subsonic_max_memory} \ - --pidfile=${_subsonic_pidfile} \ - --default-music-folder=${_subsonic_music_folder} \ - --default-playlist-folder=${_subsonic_playlist_folder}" +start_precmd="export LC_CTYPE='UTF-8'" +subsonic_chdir="%%DATADIR%%" +command="/usr/sbin/daemon" +command_args="-f ${procname} \ + -Dsubsonic.home=${subsonic_home} \ + -Dsubsonic.host=${subsonic_host} \ + -Dsubsonic.port=${subsonic_port} \ + ${SUBSONIC_SSL_FLAGS} \ + -Dsubsonic.contextPath=${subsonic_context_path} \ + -Dsubsonic.defaultMusicFolder=${subsonic_home}/music \ + -Dsubsonic.defaultPodcastFolder=${subsonic_home}/Podcast \ + -Dsubsonic.defaultPlaylistFolder=${subsonic_home}/playlists \ + -Xmx${subsonic_max_memory}m \ + -Djava.awt.headless=true \ + -jar ${subsonic_chdir}/subsonic-booter-jar-with-dependencies.jar" run_rc_command "$1" Index: head/www/subsonic-standalone/pkg-plist =================================================================== --- head/www/subsonic-standalone/pkg-plist (revision 420614) +++ head/www/subsonic-standalone/pkg-plist (revision 420615) @@ -1,8 +1,9 @@ -subsonic-standalone/LICENSE.TXT -subsonic-standalone/README.TXT -subsonic-standalone/subsonic.war -subsonic-standalone/subsonic-booter-jar-with-dependencies.jar -subsonic-standalone/subsonic.sh -@unexec test -d %%SUBSONIC_HOME%% && (echo "Configuration information and database saved." && echo "If you you are permanently uninstalling this package" && echo "please remove %%SUBSONIC_HOME%% and its contents manually.") +%%DATADIR%%/README.TXT +%%DATADIR%%/subsonic-booter-jar-with-dependencies.jar +%%DATADIR%%/subsonic.war +%%FFMPEG%%%%SUBSONIC_HOME%%/transcode/ffmpeg +%%FLAC%%%%SUBSONIC_HOME%%/transcode/flac +%%LAME%%%%SUBSONIC_HOME%%/transcode/lame +@postunexec test -d %%SUBSONIC_HOME%% && (echo "Configuration information and database saved." && echo "If you you are permanently uninstalling this package" && echo "please remove %%SUBSONIC_HOME%% and its contents manually.") || true @dir(%%USER%%,%%GROUP%%,750) %%SUBSONIC_HOME%%/transcode @dir(%%USER%%,%%GROUP%%,750) %%SUBSONIC_HOME%%