multimedia/universal-media-server: new port

DLNA/UPnP home media server

WWW: http://sourceforge.net/projects/unimediaserver/
	and
     http://www.universalmediaserver.com/

PR:		191646
Submitted by:	dreamcat4@gmail.com
This commit is contained in:
Kurt Jaeger 2014-07-12 15:22:00 +00:00
parent 5c5a6948c5
commit 6f950ce1ed
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=361621
9 changed files with 402 additions and 0 deletions

1
GIDs
View File

@ -283,5 +283,6 @@ boinc:*:973:
radicale:*:974:
unifi:*:975:
minetest:*:976:
ums:*:979:
nogroup:*:65533:
nobody:*:65534:

1
UIDs
View File

@ -289,4 +289,5 @@ unifi:*:975:975::0:0:Unifi Wireless Controller:/nonexistent:/usr/sbin/nologin
minetest:*:976:976::0:0:& server:/nonexistent:/usr/sbin/nologin
tests:*:977:65534::0:0:Unprivileged user for tests:/nonexistent:/usr/sbin/nologin
_dnscrypt-proxy:*:978:65534::0:0:dnscrypt-proxy user:/var/empty:/usr/sbin/nologin
ums:*:979:979::0:0:Universal Media Server:/nonexistent:/usr/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin

View File

@ -347,6 +347,7 @@
SUBDIR += umph
SUBDIR += umplayer
SUBDIR += umr
SUBDIR += universal-media-server
SUBDIR += v4l-utils
SUBDIR += v4l_compat
SUBDIR += vamps

View File

@ -0,0 +1,81 @@
# Created by: Dreamcat4 <dreamcat4@gmail.com>
# $FreeBSD$
PORTNAME= universal-media-server
DISTVERSION= 4.0.0-a1
CATEGORIES= multimedia
MASTER_SITES= SF/unimediaserver/Official%20Releases/Linux
DISTFILES= UMS-${DISTVERSION}.tgz
MAINTAINER= dreamcat4@gmail.com
COMMENT= Universal Media Server
LICENSE= GPLv2
USE_JAVA= yes
JAVA_VERSION= 1.7+
JAVA_VENDOR= openjdk
JAVA_RUN= true
OPTIONS_DEFINE= MEDIAINFO FLAC DCRAW TSMUXER FFMPEG MPLAYER VLC MENCODER
OPTIONS_DEFAULT= MEDIAINFO FLAC DCRAW TSMUXER
MEDIAINFO_DESC= Metadata information about video & audio files
MEDIAINFO_LIB_DEPENDS= libmediainfo.so:${PORTSDIR}/multimedia/mediainfo
#FFMPEG_DESC= # Transcoder. Use default description
FFMPEG_RUN_DEPENDS= ${LOCALBASE}/bin/ffmpeg:${PORTSDIR}/multimedia/ffmpeg
MPLAYER_DESC= Transcoder. Pulls in X11 libs
MPLAYER_RUN_DEPENDS= ${LOCALBASE}/bin/mplayer:${PORTSDIR}/multimedia/mplayer
VLC_DESC= Videolan.org binary 'vlc'. For live web streaming
VLC_RUN_DEPENDS= ${LOCALBASE}/bin/vlc:${PORTSDIR}/multimedia/vlc
MENCODER_DESC= Transcoder (license Restricted). Not in pkgng
MENCODER_RUN_DEPENDS= ${LOCALBASE}/bin/mencoder:${PORTSDIR}/multimedia/mencoder
TSMUXER_DESC= To remux streams as TS/M2TS. Requires linux_base
TSMUXER_RUN_DEPENDS= ${LOCALBASE}/bin/tsMuxeR:${PORTSDIR}/multimedia/linux-tsmuxer
#FLAC_DESC= # Audio file format. Use default description
FLAC_RUN_DEPENDS= ${LOCALBASE}/bin/flac:${PORTSDIR}/audio/flac
DCRAW_DESC= Better support when viewing photos / still images
DCRAW_RUN_DEPENDS= ${LOCALBASE}/bin/dcraw:${PORTSDIR}/graphics/dcraw
NO_BUILD= yes
WRKSRC= ${WRKDIR}/ums-${DISTVERSION}
DATADIR= ${JAVASHAREDIR}/${PORTNAME}
USERS= ums
GROUPS= ums
UMS_PROFILE_PATH= /var/db/${PORTNAME}
UMS_LOG_DIR= /var/log/${PORTNAME}
UMS_PID_DIR= /var/run/${PORTNAME}
SUB_LIST= RCNAME=${USE_RC_SUBR} JAVA_HOME=${JAVA_HOME} JAVA=${JAVA} \
UMS_PROFILE_PATH=${UMS_PROFILE_PATH} UMS_LOG_DIR=${UMS_LOG_DIR} UMS_PID_DIR=${UMS_PID_DIR}
PLIST_SUB= ${SUB_LIST}
SUB_FILES= pkg-message
USE_RC_SUBR= universal_media_server
.include <bsd.port.pre.mk>
do-install:
@${MKDIR} ${STAGEDIR}${UMS_PROFILE_PATH}
@${CP} ${WRKSRC}/UMS.conf ${STAGEDIR}${UMS_PROFILE_PATH}/UMS.conf.sample
@${CP} ${WRKSRC}/WEB.conf ${STAGEDIR}${UMS_PROFILE_PATH}/WEB.conf.sample
@${MKDIR} ${STAGEDIR}${UMS_PID_DIR}
@${MKDIR} ${STAGEDIR}${UMS_LOG_DIR}
@${MKDIR} ${STAGEDIR}${DOCSDIR}
@(cd ${WRKSRC}/documentation && ${COPYTREE_SHARE} \* ${STAGEDIR}${DOCSDIR})
@(cd ${WRKSRC} && ${RM} -rf documentation)
@(cd ${WRKSRC}/linux && ${RM} -rf *)
@(cd ${WRKSRC}/linux && ${LN} -sf ${PREFIX}/bin/tsMuxeR tsMuxeR-new)
@${MKDIR} ${STAGEDIR}${DATADIR}
@(cd ${WRKSRC} && ${COPYTREE_SHARE} \* ${STAGEDIR}${DATADIR})
.include <bsd.port.post.mk>

View File

@ -0,0 +1,2 @@
SHA256 (UMS-4.0.0-a1.tgz) = 054988dd3ceb98d2ef93a1214f31b3834d1a69e12ad37b41a46294afccad61fe
SIZE (UMS-4.0.0-a1.tgz) = 31503844

View File

@ -0,0 +1,36 @@
Universal Media Server (UMS) can be enabled with the following way:
sysrc %%RCNAME%%_enable=YES
service %%RCNAME%% start
For more configuration options, see the file:
/usr/local/etc/rc.d/%%RCNAME%%
The UMS profile directory, where exists UMS.conf, is located at:
%%UMS_PROFILE_PATH%%/
Log files are located at:
%%UMS_LOG_DIR%%/UMS.log
%%UMS_PROFILE_PATH%%/debug.log
NOTE: None of the following transcoders are installed by default
ffmpeg, mplayer, vlc, mencoder
These missing transcoders each have a lot of dependancies of their
own. That is why they are not included by default with UMS.
UMS will automatically detect any missing transcoder once it has
been installed. Either from the ports tree or pkgng.
NOTE: Mencoder is license restricted and therefore NOT available
from pkgng. It can be installed from the ports tree instead.
To install all missing transcoders: (beware, many dependancies)
pkg install ffmpeg mplayer vlc
cd /usr/ports/multimedia/mencoder && BATCH=YES make install
service %%RCNAME%% restart

View File

@ -0,0 +1,115 @@
#!/bin/sh
#
# $FreeBSD$
# Created by: Dreamcat4 <dreamcat4@gmail.com>
#
# PROVIDE: universal_media_server
# REQUIRE: LOGIN DAEMON NETWORKING
# KEYWORD: shutdown
#
# To enable Universal Media Server, just type:
# sysrc universal_media_server_enable=YES
#
# Optional settings:
# universal_media_server_user=<run UMS program as 'user'>
# universal_media_server_profile_path=<full path to UMS profile directory, where exists UMS.conf, cache files, etc.>
# universal_media_server_log=<full path to UMS.log>
# universal_media_server_jvm_max_heap=<max memory usage - defaults to '768M'>
# universal_media_server_java_opts_extra="<extra java options>"
#
# Advanced settings, better to leave alone:
# universal_media_server_java_class=<java main class to load (program entry point)>
# universal_media_server_path=<full path to the directory where ums is installed>
# universal_media_server_classpath=<colon-seperated list of all jar files to load, must include ums.jar)>
# universal_media_server_jvm_opts="<overides default jvm-related java options with your own set>"
# universal_media_server_java_opts="<overide default java options with your own set>"
#
. /etc/rc.subr
name=universal_media_server
rcvar=universal_media_server_enable
load_rc_config $name
: ${universal_media_server_enable:=NO}
# Optional settings
: ${universal_media_server_user=ums}
: ${universal_media_server_jvm_max_heap=768M}
: ${universal_media_server_profile_path=%%UMS_PROFILE_PATH%%}
: ${universal_media_server_log=%%UMS_LOG_DIR%%/UMS.log}
# Advanced settings, better to leave alone
: ${universal_media_server_path=%%DATADIR%%}
: ${universal_media_server_java_class=net.pms.PMS}
: ${universal_media_server_classpath=ums.jar}
: ${universal_media_server_jvm_opts=-Xss2048k -XX:+UseParNewGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20}
: ${universal_media_server_java_opts=-Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Djna.nosys=true}
# End - "Advanced settings"
JAVA_HOME=%%JAVA_HOME%%
JAVA=%%JAVA%%
pidfile=%%UMS_PID_DIR%%/UMS.pid
start_precmd=${name}_prestart
start_postcmd=${name}_poststart
stop_precmd=${name}_prestop
stop_postcmd="rm ${pidfile}"
universal_media_server_prestart()
{
if [ ! -e "${universal_media_server_profile_path}" ]; then
mkdir -p ${universal_media_server_profile_path}
cp "${universal_media_server_path}/UMS.conf" "${universal_media_server_profile_path}/UMS.conf.sample"
cp "${universal_media_server_path}/WEB.conf" "${universal_media_server_profile_path}/WEB.conf.sample"
fi
# Make sure UMS has permission to write it's files into the profile directory
chown -R ${universal_media_server_user}:${universal_media_server_user} ${universal_media_server_profile_path}
}
universal_media_server_poststart()
{
# Find running UMS processes
echo "$(pgrep -n -f "java.*${universal_media_server_classpath}.*${universal_media_server_java_class}")" > ${pidfile}
}
universal_media_server_prestop()
{
ppid=$(head -1 ${pidfile})
cpids=$(pgrep -d ' ' -P ${ppid})
if [ "${cpids}" ]; then
echo "Waiting for PIDS: ${cpids}"
for signal in "TERM" "KILL" "HUP" "INT" "QUIT"
do
pkill -${signal} -P ${ppid}
cpids=$(pgrep -d ' ' -P ${ppid})
[ "${cpids}" ] || break;
sleep 1;
done
fi
}
_universal_media_server_java_args()
{
echo \
-Xmx${universal_media_server_jvm_max_heap} \
${universal_media_server_jvm_opts} \
${universal_media_server_java_opts} \
${universal_media_server_java_opts_extra} \
-Dums.profile.path=${universal_media_server_profile_path} \
-classpath ${universal_media_server_classpath} \
${universal_media_server_java_class}
}
# UMS looks for transcoder executables on $PATH, so PATH must include %%PREFIX%%/bin
PATH=/sbin:/bin:/usr/sbin:/usr/bin:%%PREFIX%%/sbin:%%PREFIX%%/bin
# UMS will only startup correctly when CWD=/path/to/ums, otherwise a bizarre exception occurs
universal_media_server_chdir=${universal_media_server_path}
command=${JAVA}
command_args="$(_universal_media_server_java_args) >> ${universal_media_server_log} 2>&1 &"
run_rc_command "$1"

View File

@ -0,0 +1,15 @@
Universal Media Server (UMS) is a feature-rich DLNA/UPnP home media
server, with good support for client devices.
A popular fork / successor of PS3 Media Server. UMS is Java-based.
The program streams or transcodes with little or no configuration.
Powered by MEncoder, FFmpeg, tsMuxeR, AviSynth, MediaInfo and more,
which combine to offer support for a wide range of media formats.
See also: http://www.universalmediaserver.com/
NOTE: Missing transcoder dependancies can be installed seperately.
See files/pkg-message.in for more information.
WWW: http://sourceforge.net/projects/unimediaserver/

View File

@ -0,0 +1,150 @@
%%PORTDOCS%%%%DOCSDIR%%/applications.html
%%PORTDOCS%%%%DOCSDIR%%/avisynth.html
%%PORTDOCS%%%%DOCSDIR%%/coreavc.html
%%PORTDOCS%%%%DOCSDIR%%/css/style.css
%%PORTDOCS%%%%DOCSDIR%%/general_configuration.html
%%PORTDOCS%%%%DOCSDIR%%/images/autonegotiation.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/btn_donateCC_LG.gif
%%PORTDOCS%%%%DOCSDIR%%/images/coreavc1.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/coreavc2.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/coreavc3.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/netzwerkverbindungen.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/pms-eng-general.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/pms-eng-general1.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/pms-eng-status1.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/pms-eng-status2.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/pms-engines1.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/pms-engines2.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/pms-searching.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/ps3-browsing.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/ps3-server.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/ps3screen.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/setupwin1.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/setupwin2.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/setupwin3.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/setupwin4.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/ssdp.jpg
%%PORTDOCS%%%%DOCSDIR%%/images/topology_ps3.jpg
%%PORTDOCS%%%%DOCSDIR%%/index.html
%%PORTDOCS%%%%DOCSDIR%%/installation.html
%%PORTDOCS%%%%DOCSDIR%%/introduction.html
%%PORTDOCS%%%%DOCSDIR%%/links.html
%%PORTDOCS%%%%DOCSDIR%%/navigation_share.html
%%PORTDOCS%%%%DOCSDIR%%/networking.html
%%PORTDOCS%%%%DOCSDIR%%/plugins.html
%%PORTDOCS%%%%DOCSDIR%%/transcoding.html
%%PORTDOCS%%%%DOCSDIR%%/videolan.html
%%DATADIR%%/CHANGELOG.txt
%%DATADIR%%/DummyInput.ass
%%DATADIR%%/INSTALL.txt
%%DATADIR%%/LICENSE.txt
%%DATADIR%%/README.txt
%%DATADIR%%/UMS.conf
%%DATADIR%%/UMS.sh
%%DATADIR%%/VirtualFolders.conf
%%DATADIR%%/WEB.conf
%%DATADIR%%/linux/tsMuxeR-new
%%DATADIR%%/logback.headless.xml
%%DATADIR%%/logback.xml
%%DATADIR%%/plugins/README.md
%%DATADIR%%/plugins/README.txt
%%DATADIR%%/renderers/AirPlayer.conf
%%DATADIR%%/renderers/Android.conf
%%DATADIR%%/renderers/BlackBerryPlayBook-KalemSoftMP.conf
%%DATADIR%%/renderers/Bravia4500.conf
%%DATADIR%%/renderers/Bravia5500.conf
%%DATADIR%%/renderers/BraviaBX305.conf
%%DATADIR%%/renderers/BraviaEX.conf
%%DATADIR%%/renderers/BraviaEX620.conf
%%DATADIR%%/renderers/BraviaHX.conf
%%DATADIR%%/renderers/BraviaW.conf
%%DATADIR%%/renderers/CambridgeAudioAzur752BD.conf
%%DATADIR%%/renderers/Chromecast.conf
%%DATADIR%%/renderers/Chromecast_Avia.conf
%%DATADIR%%/renderers/DLinkDSM510.conf
%%DATADIR%%/renderers/DirecTVHR.conf
%%DATADIR%%/renderers/FreeboxHD.conf
%%DATADIR%%/renderers/FreecomMusicPal.conf
%%DATADIR%%/renderers/Kuro.conf
%%DATADIR%%/renderers/LG-LA6200.conf
%%DATADIR%%/renderers/LG-LA644V.conf
%%DATADIR%%/renderers/LG-LM620.conf
%%DATADIR%%/renderers/LGST600.conf
%%DATADIR%%/renderers/N900.conf
%%DATADIR%%/renderers/NetgearNeoTV.conf
%%DATADIR%%/renderers/OPPOBDP83.conf
%%DATADIR%%/renderers/OPPOBDP93.conf
%%DATADIR%%/renderers/OnkyoTX-NR717.conf
%%DATADIR%%/renderers/PS3.conf
%%DATADIR%%/renderers/Panasonic.conf
%%DATADIR%%/renderers/PanasonicTX-L32V10E.conf
%%DATADIR%%/renderers/Philips.conf
%%DATADIR%%/renderers/PhilipsPFL.conf
%%DATADIR%%/renderers/PopcornHour.conf
%%DATADIR%%/renderers/README.txt
%%DATADIR%%/renderers/Realtek.conf
%%DATADIR%%/renderers/SMP-N100.conf
%%DATADIR%%/renderers/Samsung-SMT-G7400.conf
%%DATADIR%%/renderers/SamsungAllShare-D7000.conf
%%DATADIR%%/renderers/SamsungAllShare.conf
%%DATADIR%%/renderers/SamsungMobile.conf
%%DATADIR%%/renderers/SamsungWiseLink.conf
%%DATADIR%%/renderers/SharpAquos.conf
%%DATADIR%%/renderers/Showtime3.conf
%%DATADIR%%/renderers/Showtime4.conf
%%DATADIR%%/renderers/SonyBluray.conf
%%DATADIR%%/renderers/SonyHomeTheatreSystem.conf
%%DATADIR%%/renderers/SonySTR-5800ES.conf
%%DATADIR%%/renderers/SonyXperia.conf
%%DATADIR%%/renderers/Streamium.conf
%%DATADIR%%/renderers/TelstraTbox.conf
%%DATADIR%%/renderers/VideoWebTV.conf
%%DATADIR%%/renderers/VizioSmartTV.conf
%%DATADIR%%/renderers/WDTVLive.conf
%%DATADIR%%/renderers/WMP.conf
%%DATADIR%%/renderers/XBMC.conf
%%DATADIR%%/renderers/XBOX360.conf
%%DATADIR%%/renderers/YamahaRXA1010.conf
%%DATADIR%%/renderers/YamahaRXV3900.conf
%%DATADIR%%/renderers/YamahaRXV671.conf
%%DATADIR%%/renderers/iPad-iPhone.conf
%%DATADIR%%/ums.jar
%%DATADIR%%/web/background-blank.jpg
%%DATADIR%%/web/background.jpg
%%DATADIR%%/web/download.png
%%DATADIR%%/web/favicon.ico
%%DATADIR%%/web/flowplayer.min.js
%%DATADIR%%/web/functional.css
%%DATADIR%%/web/jquery.min.js
%%DATADIR%%/web/jquery.ums.js
%%DATADIR%%/web/logo.png
%%DATADIR%%/web/menu-background-content.png
%%DATADIR%%/web/menu-left-content.png
%%DATADIR%%/web/reset.css
%%DATADIR%%/web/web.css
%%PORTDOCS%%@dirrmtry %%DOCSDIR%%/css
%%PORTDOCS%%@dirrmtry %%DOCSDIR%%/images
%%PORTDOCS%%@dirrmtry %%DOCSDIR%%
@dirrmtry %%DATADIR%%/linux
@dirrmtry %%DATADIR%%/plugins
@dirrmtry %%DATADIR%%/renderers
@dirrmtry %%DATADIR%%/web
@dirrmtry %%DATADIR%%
@comment - Added manually
@owner ums
@group ums
@exec mkdir -p %%UMS_PROFILE_PATH%%
%%UMS_PROFILE_PATH%%/UMS.conf.sample
%%UMS_PROFILE_PATH%%/WEB.conf.sample
@dirrmtry %%UMS_PROFILE_PATH%%
@exec mkdir -p %%UMS_PID_DIR%%
@dirrmtry %%UMS_PID_DIR%%
@exec mkdir -p %%UMS_LOG_DIR%%
@dirrmtry %%UMS_LOG_DIR%%
@owner
@group