1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-24 04:33:24 +00:00

- Update to upstream version 5.0

- Add LICENSE
- Introduce OPTIONS for
  - Selecting application server
  - Selecting transcoders

PR:		194326
Submitted by:	freebsd@cooltrainer.org (maintainer)
This commit is contained in:
Thomas Zander 2014-10-26 07:17:17 +00:00
parent ddd5ae3b40
commit b56b9bd3a2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=371497
12 changed files with 205 additions and 1543 deletions

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= subsonic
PORTVERSION= 4.9
PORTVERSION= 5.0
CATEGORIES= www java
MASTER_SITES= SF
DISTNAME= ${PORTNAME}-${PORTVERSION}-war
@ -10,44 +10,142 @@ DISTNAME= ${PORTNAME}-${PORTVERSION}-war
MAINTAINER= root@cooltrainer.org
COMMENT= Subsonic streaming media server
BUILD_DEPENDS+= ${LOCALBASE}/apache-tomcat-6.0:${PORTSDIR}/www/tomcat6
RUN_DEPENDS+= ${JAVAJARDIR}/servlet-api.jar:${PORTSDIR}/www/servlet-api
LICENSE= GPLv3
OPTIONS_DEFINE= TRANSCODING
TRANSCODING_DESC= Transcoding with FFmpeg and LAME
OPTIONS_DEFAULT= TRANSCODING
OPTIONS_SUB= yes
OPTIONS_SINGLE= APPSERVER
APPSERVER_DESC= Java Application Server
OPTIONS_SINGLE_APPSERVER= JETTY TOMCAT8 TOMCAT7 TOMCAT6 RESIN3
TOMCAT8_DESC= Use Tomcat 8.x
TOMCAT7_DESC= Use Tomcat 7.x
TOMCAT6_DESC= Use Tomcat 6.x
JETTY_DESC= Use Jetty
RESIN3_DESC= Use Resin 3
TRANSCODING_RUN_DEPENDS= ffmpeg:${PORTSDIR}/multimedia/ffmpeg \
lame:${PORTSDIR}/audio/lame
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 #'
USES= zip
OPTIONS_DEFAULT= FFMPEG JETTY
OPTIONS_SUB= yes
RUN_DEPENDS+= ${JAVAJARDIR}/servlet-api.jar:${PORTSDIR}/www/servlet-api \
${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:${PORTSDIR}/audio/alsa-plugins
TOMCAT8_BUILD_DEPENDS= ${LOCALBASE}/${SERVERDIR}/bin/bootstrap.jar:${PORTSDIR}/www/tomcat8
TOMCAT8_RUN_DEPENDS= ${LOCALBASE}/${SERVERDIR}/bin/bootstrap.jar:${PORTSDIR}/www/tomcat8
TOMCAT7_BUILD_DEPENDS= ${LOCALBASE}/${SERVERDIR}/bin/bootstrap.jar:${PORTSDIR}/www/tomcat7
TOMCAT7_RUN_DEPENDS= ${LOCALBASE}/${SERVERDIR}/bin/bootstrap.jar:${PORTSDIR}/www/tomcat7
TOMCAT6_BUILD_DEPENDS= ${LOCALBASE}/${SERVERDIR}/bin/bootstrap.jar:${PORTSDIR}/www/tomcat6
TOMCAT6_RUN_DEPENDS= ${LOCALBASE}/${SERVERDIR}/bin/bootstrap.jar:${PORTSDIR}/www/tomcat6
JETTY_BUILD_DEPENDS= ${LOCALBASE}/${SERVERDIR}/start.jar:${PORTSDIR}/www/jetty
JETTY_RUN_DEPENDS= ${LOCALBASE}/${SERVERDIR}/start.jar:${PORTSDIR}/www/jetty
RESIN3_BUILD_DEPENDS= ${LOCALBASE}/${SERVERDIR}/lib/resin.jar:${PORTSDIR}/www/resin3
RESIN3_RUN_DEPENDS= ${LOCALBASE}/${SERVERDIR}/lib/resin.jar:${PORTSDIR}/www/resin3
FFMPEG_RUN_DEPENDS= ffmpeg:${PORTSDIR}/multimedia/ffmpeg
FLAC_RUN_DEPENDS= flac:${PORTSDIR}/audio/flac
LAME_RUN_DEPENDS= lame:${PORTSDIR}/audio/lame
VORBIS_RUN_DEPENDS= oggenc:${PORTSDIR}/audio/vorbis-tools
FAAC_RUN_DEPENDS= faac:${PORTSDIR}/audio/faac
FAAD_RUN_DEPENDS= faad:${PORTSDIR}/audio/faad
XMP_RUN_DEPENDS= xmp:${PORTSDIR}/audio/xmp
MPC_RUN_DEPENDS= mpcdec:${PORTSDIR}/audio/musepack
APE_RUN_DEPENDS= mac:${PORTSDIR}/audio/mac
.include <bsd.port.options.mk>
#Subsonic does not currently run on Tomcat 7
SUB_FILES= pkg-message
WEBAPPDIR= ${PREFIX}/apache-tomcat-6.0/webapps
BUILD_DEPENDS+= ${LOCALBASE}/apache-tomcat-6.0/bin/bootstrap.jar:${PORTSDIR}/www/tomcat6
RUN_DEPENDS+= ${LOCALBASE}/apache-tomcat-6.0/bin/bootstrap.jar:${PORTSDIR}/www/tomcat6
SUB_LIST= TOMCATOPTS="tomcat60_java_opts"
NO_BUILD= yes
USE_JAVA= yes
JAVA_VERSION= 1.6+
USER= www
GROUP= www
USES= zip
USER= www
GROUP= www
SUBSONIC_HOME= /var/subsonic
WRKSRC= ${WRKDIR}/${PORTNAME}
WEBAPPDIR= ${PREFIX}/${SERVERDIR}/webapps
PKGMESSAGE= ${WRKDIR}/pkg-message
PLIST= ${WRKDIR}/plist
PLIST_SUB+= SUBSONIC_HOME="${SUBSONIC_HOME}" \
WEBAPPS=${WEBAPPDIR:S|^${PREFIX}/||} \
USER=${USER} GROUP=${GROUP} \
WWWOWN=${WWWOWN} WWWGRP=${WWWGRP}
WEBAPPS=${WEBAPPDIR:S|^${PREFIX}/||}
SUB_FILES= message-common\
message-transcoding
SUB_LIST= SUBSONIC_HOME="${SUBSONIC_HOME}"
.if ${PORT_OPTIONS:MTOMCAT8}
APPPKGMESSAGE= pkg-message-tomcat
DISTVER= tomcat
PKGNAMESUFFIX= -tomcat8
SERVERDIR= apache-tomcat-8.0
SUB_LIST+= CONTAINERFLAGS="tomcat8_java_opts"
.endif
.if ${PORT_OPTIONS:MTOMCAT7}
APPPKGMESSAGE= pkg-message-tomcat
DISTVER= tomcat
PKGNAMESUFFIX= -tomcat7
SERVERDIR= apache-tomcat-7.0
SUB_LIST+= CONTAINERFLAGS="tomcat7_java_opts"
.endif
.if ${PORT_OPTIONS:MTOMCAT6}
APPPKGMESSAGE= pkg-message-tomcat
DISTVER= tomcat
PKGNAMESUFFIX= -tomcat6
SERVERDIR= apache-tomcat-6.0
SUB_LIST+= CONTAINERFLAGS="tomcat60_java_opts"
.endif
.if ${PORT_OPTIONS:MJETTY}
APPPKGMESSAGE= pkg-message-jetty
DISTVER= jspc
PKGNAMESUFFIX= -jetty
SERVERDIR= jetty
SUB_LIST+= CONTAINERFLAGS="jetty_flags"
.endif
.if ${PORT_OPTIONS:MRESIN3}
APPPKGMESSAGE= pkg-message-resin3
DISTVER= tomcat
PKGNAMESUFFIX= -resin3
SERVERDIR= resin3
SUB_LIST+= CONTAINERFLAGS="resin3_flags"
.endif
post-extract:
@${MKDIR} ${WRKDIR}/${PORTDIRNAME}
@${TAR} xf ${WRKDIR}/${PORTNAME}.war -C ${WRKDIR}/${PORTDIRNAME}
@${MKDIR} ${WRKSRC}
@${TAR} -xf ${WRKDIR}/${PORTNAME}.war -C ${WRKSRC}
pre-install:
@${RM} ${PLIST}
@${ECHO} "@owner ${USER}" >> ${PLIST}
@${ECHO} "@group ${GROUP}" >> ${PLIST}
@cd ${WRKSRC}; ${FIND} . -type f | cut -c2- \
| ${SED} 's|^|${WEBAPPDIR:S,${PREFIX}/,,}/${PORTDIRNAME}|' \
| ${SORT} >> ${PLIST}
@${CAT} ${PKGDIR}/pkg-plist-chunk >> ${PLIST}
@cd ${WRKSRC}; ${FIND} . -type d | cut -c2- \
| ${SED} 's|^|@dir ${WEBAPPDIR:S,${PREFIX}/,,}/${PORTDIRNAME}|' \
| ${SORT} -r >> ${PLIST}
@${RM} ${PKGMESSAGE}
@${CAT} ${PKGDIR}/pkg-message-spacer >> ${PKGMESSAGE}
@${CAT} ${PKGDIR}/${APPPKGMESSAGE} >> ${PKGMESSAGE}
@${CAT} ${WRKDIR}/message-common >> ${PKGMESSAGE}
@${CAT} ${PKGDIR}/pkg-message-spacer >> ${PKGMESSAGE}
@${CAT} ${WRKDIR}/message-transcoding >> ${PKGMESSAGE}
@${CAT} ${PKGDIR}/pkg-message-spacer >> ${PKGMESSAGE}
do-install:
@cd ${WRKDIR} && ${COPYTREE_SHARE} ${PORTDIRNAME} ${STAGEDIR}${WEBAPPDIR}
cd ${WRKDIR} && ${COPYTREE_SHARE} ${PORTDIRNAME} ${STAGEDIR}${WEBAPPDIR}
post-stage:
${MKDIR} ${STAGEDIR}${SUBSONIC_HOME}
${MKDIR} ${STAGEDIR}${SUBSONIC_HOME}/transcode
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
SHA256 (subsonic-4.9-war.zip) = 64ffc808c2027652910b7a9d579fbf86a5915efda096cfaf13a0d36fcb495f98
SIZE (subsonic-4.9-war.zip) = 21340775
SHA256 (subsonic-5.0-war.zip) = 80374293daa2b5deeacae6fbaa725c70473585d95e100fbfb6bd805644509a3d
SIZE (subsonic-5.0-war.zip) = 26822614

View File

@ -0,0 +1,17 @@
On headless machines, start the container server with
%%CONTAINERFLAGS%%="-Djava.awt.headless=true"
to prevent problems showing album art thumbnails.
You can increase the container server's memory allocation if needed like
%%CONTAINERFLAGS%%="-Xms96m -Xmx512m"
Use a UTF-8 locale to enable support for all possible tags. Otherwise,
files with Unicode tags will not scan properly and will be unplayable.
Chapter 23 of the FreeBSD Handbook has information on using locales.
https://www.freebsd.org/doc/handbook/l10n.html
For example, US English:
%%CONTAINERFLAGS%%="-Dfile.encoding=UTF-8 -Duser.language=en -Duser.region=US"
Combine multiple flags into a single %%CONTAINERFLAGS%%="[...]" line.

View File

@ -0,0 +1,38 @@
Transcoding in Subsonic is a way to re-encode music on the fly to a format
your listening device supports. A common use is transcoding FLAC, WMA,
and Vorbis audio to MP3 for devices supporting only that codec.
Configuring transcoding uses up to three commands one would use on a normal
command line pipe but with a whitelist of executables installed or linked into
%%SUBSONIC_HOME%%/transcode. The transcoding configuration page takes
transcoding rules in the form of:
[rule name] [convert from] [convert to] [command 1] [command 2] [command 3]
The most compatible single audio transcoding command is with FFmpeg, transcoding
any input to MP3, mapping all streams to output, and limiting metadata to the
more-compatible ID3v2.3:
[All to MP3] [ogg flac wma aiff m4a] [mp3] ...
[ffmpeg -i %s -ab %bk -id3v2_version 3 -map_metadata 0 -map 0:0 -ar 44100 -ac 2 -v 0 -f mp3 -]
You can also transcode with multiple single-codec commands to avoid
the heavy FFmpeg dependency:
[FLAC to MP3] [flac] [mp3] ...
[flac --silent --decode --stdout %s] [lame --silent -h -b %b -]
[AAC to MP3] [m4a] [mp3] ...
[faad -s -o - %s] [lame --silent -h -b %b -]
[Vorbis to MP3] [ogg] [mp3] ...
[oggdec -Q -o /dev/stdout %s] [lame --silent -h -b %b -]
[MPC to MP3] [mpc] [mp3] ...
[mpcdec %s -] [lame --silent -h -b %b -]
[APE to MP3] [ape] [mp3] ...
[mac %s - -d] [lame --silent -h -b %b -]
[Trackers to MP3] [mod s3m xm it] [mp3] ...
[xmp -q -c %s] [lame --silent -h -b %b -]

View File

@ -1,10 +0,0 @@
========================================================================
Access Subsonic at http://127.0.0.1:8180/subsonic/ (if using the default
Tomcat HTTP port).
If you encounter problems with thumbnails, start tomcat with
%%TOMCATOPTS%%="-Djava.awt.headless=true"
========================================================================

View File

@ -1,8 +1,7 @@
Subsonic is a free, web-based media streamer, providing ubiquitous
access to your music. Use it to share your music with friends,
or to listen to your own music while at work.
You can stream to multiple players simultaneously,
for instance to one player in your kitchen and another in your living
room.
Subsonic instantly transports your media to any HTTP connected device
regardless of bitrate. You can stream to multiple players simultaneously.
Subsonic is designed to handle very large music collections. By using
transcoder plug-ins, Subsonic supports on-the-fly conversion and streaming
of virtually any audio format, including MP3, OGG, WMA, FLAC, APE and more.
WWW: http://www.subsonic.org

View File

@ -0,0 +1,2 @@
Enable or restart Jetty, then access Subsonic at http://127.0.0.1:8080/subsonic/
(if using the default Jetty HTTP port).

View File

@ -0,0 +1,2 @@
Enable or restart resin3, then you can access Subsonic at
http://127.0.0.1:8080/subsonic/ if using the default Resin HTTP port.

View File

@ -0,0 +1,3 @@
========================================================================

View File

@ -0,0 +1,3 @@
Create a manager-gui capable user in Tomcat's conf/tomcat-users.xml,
then access the Manager at http://127.0.0.1:8080/manager/html
(if using the default Tomcat HTTP port) and deploy Subsonic.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
@unexec if [ -d %%WEBAPPS%%/subsonic ]; then rm -rf %%WEBAPPS%%/subsonic; fi
@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.")
%%FFMPEG%%@exec ln -sf %%PREFIX%%/bin/ffmpeg %%SUBSONIC_HOME%%/transcode/ffmpeg
%%FLAC%%@exec ln -sf %%PREFIX%%/bin/ffmpeg %%SUBSONIC_HOME%%/transcode/flac
%%LAME%%@exec ln -sf %%PREFIX%%/bin/lame %%SUBSONIC_HOME%%/transcode/lame
%%FFMPEG%%@unexec rm -f %%SUBSONIC_HOME%%/transcode/ffmpeg
%%FLAC%%@unexec rm -f %%SUBSONIC_HOME%%/transcode/flac
%%LAME%%@unexec rm -f %%SUBSONIC_HOME%%/transcode/lame
@dir %%SUBSONIC_HOME%%/transcode
@dir %%SUBSONIC_HOME%%