diff options
author | pi <pi@FreeBSD.org> | 2014-07-12 23:22:00 +0800 |
---|---|---|
committer | pi <pi@FreeBSD.org> | 2014-07-12 23:22:00 +0800 |
commit | de39ca1b21bb8e921551d5a2ed69a554cfd0f5bf (patch) | |
tree | fd6c43e579858b0e63b64c45bfc90a1b677f2683 | |
parent | fb2bdb2682ef9164e068a0e6c1eac96a2d8b664a (diff) | |
download | freebsd-ports-gnome-de39ca1b21bb8e921551d5a2ed69a554cfd0f5bf.tar.gz freebsd-ports-gnome-de39ca1b21bb8e921551d5a2ed69a554cfd0f5bf.tar.zst freebsd-ports-gnome-de39ca1b21bb8e921551d5a2ed69a554cfd0f5bf.zip |
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
-rw-r--r-- | GIDs | 1 | ||||
-rw-r--r-- | UIDs | 1 | ||||
-rw-r--r-- | multimedia/Makefile | 1 | ||||
-rw-r--r-- | multimedia/universal-media-server/Makefile | 81 | ||||
-rw-r--r-- | multimedia/universal-media-server/distinfo | 2 | ||||
-rw-r--r-- | multimedia/universal-media-server/files/pkg-message.in | 36 | ||||
-rw-r--r-- | multimedia/universal-media-server/files/universal_media_server.in | 115 | ||||
-rw-r--r-- | multimedia/universal-media-server/pkg-descr | 15 | ||||
-rw-r--r-- | multimedia/universal-media-server/pkg-plist | 150 |
9 files changed, 402 insertions, 0 deletions
@@ -283,5 +283,6 @@ boinc:*:973: radicale:*:974: unifi:*:975: minetest:*:976: +ums:*:979: nogroup:*:65533: nobody:*:65534: @@ -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 diff --git a/multimedia/Makefile b/multimedia/Makefile index 1ee095d6645f..d938f04bb460 100644 --- a/multimedia/Makefile +++ b/multimedia/Makefile @@ -347,6 +347,7 @@ SUBDIR += umph SUBDIR += umplayer SUBDIR += umr + SUBDIR += universal-media-server SUBDIR += v4l-utils SUBDIR += v4l_compat SUBDIR += vamps diff --git a/multimedia/universal-media-server/Makefile b/multimedia/universal-media-server/Makefile new file mode 100644 index 000000000000..8ef61d97d5d8 --- /dev/null +++ b/multimedia/universal-media-server/Makefile @@ -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> diff --git a/multimedia/universal-media-server/distinfo b/multimedia/universal-media-server/distinfo new file mode 100644 index 000000000000..941d041c8258 --- /dev/null +++ b/multimedia/universal-media-server/distinfo @@ -0,0 +1,2 @@ +SHA256 (UMS-4.0.0-a1.tgz) = 054988dd3ceb98d2ef93a1214f31b3834d1a69e12ad37b41a46294afccad61fe +SIZE (UMS-4.0.0-a1.tgz) = 31503844 diff --git a/multimedia/universal-media-server/files/pkg-message.in b/multimedia/universal-media-server/files/pkg-message.in new file mode 100644 index 000000000000..85601b94d4f3 --- /dev/null +++ b/multimedia/universal-media-server/files/pkg-message.in @@ -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 + diff --git a/multimedia/universal-media-server/files/universal_media_server.in b/multimedia/universal-media-server/files/universal_media_server.in new file mode 100644 index 000000000000..c337401e1d9f --- /dev/null +++ b/multimedia/universal-media-server/files/universal_media_server.in @@ -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" diff --git a/multimedia/universal-media-server/pkg-descr b/multimedia/universal-media-server/pkg-descr new file mode 100644 index 000000000000..a08fc11610d6 --- /dev/null +++ b/multimedia/universal-media-server/pkg-descr @@ -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/ diff --git a/multimedia/universal-media-server/pkg-plist b/multimedia/universal-media-server/pkg-plist new file mode 100644 index 000000000000..a68292f8a914 --- /dev/null +++ b/multimedia/universal-media-server/pkg-plist @@ -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 |