diff options
Diffstat (limited to 'net/mediatomb')
-rw-r--r-- | net/mediatomb/Makefile | 149 | ||||
-rw-r--r-- | net/mediatomb/distinfo | 3 | ||||
-rw-r--r-- | net/mediatomb/files/config.xml.dist.in | 49 | ||||
-rw-r--r-- | net/mediatomb/files/mediatomb.sh.in | 36 | ||||
-rw-r--r-- | net/mediatomb/files/patch-configure | 11 | ||||
-rw-r--r-- | net/mediatomb/files/pkg-deinstall.in | 50 | ||||
-rw-r--r-- | net/mediatomb/files/pkg-install.in | 40 | ||||
-rw-r--r-- | net/mediatomb/pkg-descr | 17 | ||||
-rw-r--r-- | net/mediatomb/pkg-plist | 99 |
9 files changed, 454 insertions, 0 deletions
diff --git a/net/mediatomb/Makefile b/net/mediatomb/Makefile new file mode 100644 index 000000000000..7b00c3c8d88c --- /dev/null +++ b/net/mediatomb/Makefile @@ -0,0 +1,149 @@ +# New ports collection makefile for: mediatomb +# Date created: 29 March 2007 +# Whom: Leonhard Wimmer <leo@mediatomb.cc> +# +# $FreeBSD$ +# + +PORTNAME= mediatomb +PORTVERSION= 0.9.0 +CATEGORIES= net multimedia +MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} +MASTER_SITE_SUBDIR= ${PORTNAME} + +MAINTAINER= leo@mediatomb.cc +COMMENT= UPnP AV MediaServer + +MAN1= mediatomb.1 +GNU_CONFIGURE= yes +LDFLAGS+= ${PTHREAD_LIBS} +CFLAGS+= ${PTHREAD_CFLAGS} +CONFIGURE_ARGS= --with-search="${LOCALBASE}" +CONFIGURE_ENV= PTHREAD_LIBS="${PTHREAD_LIBS}" \ + PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + CFLAGS="${CFLAGS}" +USE_RC_SUBR= mediatomb.sh + +# --- configurable variables --- +MEDIATOMB_USER?= mediatomb +MEDIATOMB_GROUP?= mediatomb +MEDIATOMB_DIR?= /var/mediatomb +MEDIATOMB_MASK?= 750 +# --- + +SUB_FILES= config.xml.dist \ + pkg-install \ + pkg-deinstall + +SUB_LIST= MEDIATOMB_USER=${MEDIATOMB_USER} \ + MEDIATOMB_GROUP=${MEDIATOMB_GROUP} \ + MEDIATOMB_DIR=${MEDIATOMB_DIR} \ + MEDIATOMB_MASK=${MEDIATOMB_MASK} + +PLIST_SUB= MEDIATOMB_USER=${MEDIATOMB_USER} \ + MEDIATOMB_GROUP=${MEDIATOMB_GROUP} \ + MEDIATOMB_DIR=${MEDIATOMB_DIR} \ + MEDIATOMB_MASK=${MEDIATOMB_MASK} \ + +OPTIONS= SQLITE3 "sqlite3 support" on \ + MYSQL "MySQL support" on \ + JS "JavaScript (SpiderMonkey) support" on \ + LIBEXIF "libexif support" on \ + ID3LIB "id3lib support" on \ + TAGLIB "taglib support" off \ + LIBEXTRACTOR "libextractor support" off \ + DEBUG "debug build" off + +.include <bsd.port.pre.mk> + +.if defined(WITHOUT_SQLITE3) && defined(WITHOUT_MYSQL) +IGNORE= is useless without a database. Please (re)run 'make config' and choose either SQLITE3 or MYSQL +.endif + +.if defined(WITH_SQLITE3) +CONFIGURE_ARGS+= --enable-sqlite3 \ + --with-sqlite3-h="${LOCALBASE}/include" \ + --with-sqlite3-libs="${LOCALBASE}/lib" +LIB_DEPENDS+= sqlite3:${PORTSDIR}/databases/sqlite3 +.else +CONFIGURE_ARGS+= --disable-sqlite3 +.endif + +.if defined(WITH_MYSQL) +CONFIGURE_ARGS+= --enable-mysql \ + --with-mysql-cfg="${LOCALBASE}/bin/mysql_config" +LIB_DEPENDS+= mysqlclient_r:${PORTSDIR}/databases/mysql50-client +.else +CONFIGURE_ARGS+= --disable-mysql +.endif + +.if defined(WITH_JS) +CONFIGURE_ARGS+= --enable-libjs \ + --with-js-h="${LOCALBASE}/include" \ + --with-js-libs="${LOCALBASE}/lib" +BUILD_DEPENDS+= ${LOCALBASE}/lib/libjs.so:${PORTSDIR}/lang/spidermonkey +RUN_DEPENDS+= ${LOCALBASE}/lib/libjs.so:${PORTSDIR}/lang/spidermonkey +.else +CONFIGURE_ARGS+= --disable-libjs +.endif + +.if defined(WITH_LIBEXIF) +CONFIGURE_ARGS+= --enable-libexif \ + --with-exif-h="${LOCALBASE}/include" \ + --with-exif-libs="${LOCALBASE}/lib" +LIB_DEPENDS+= exif:${PORTSDIR}/graphics/libexif +.else +CONFIGURE_ARGS+= --disable-libexif +.endif + +.if defined(WITH_ID3LIB) && defined(WITH_TAGLIB) +IGNORE= cannot be compiled with both, taglib and id3lib. Please (re)run 'make config' and deselect either TAGLIB or ID3LIB +.endif + +.if defined(WITH_ID3LIB) +CONFIGURE_ARGS+= --enable-id3lib \ + --with-id3lib-h="${LOCALBASE}/include" \ + --with-id3lib-libs="${LOCALBASE}/lib" +LIB_DEPENDS+= id3:${PORTSDIR}/audio/id3lib +.else +CONFIGURE_ARGS+= --disable-id3lib +.endif + +.if defined(WITH_TAGLIB) +CONFIGURE_ARGS+= --enable-taglib \ + --with-taglib-cfg="${LOCALBASE}/bin/taglib-config" +LIB_DEPENDS+= tag:${PORTSDIR}/audio/taglib +.else +CONFIGURE_ARGS+= --disable-taglib +.endif + +.if defined(WITH_LIBEXTRACTOR) +CONFIGURE_ARGS+= --enable-libextractor \ + --with-extractor-h="${LOCALBASE}/include" \ + --with-extractor-libs="${LOCALBASE}/lib" +LIB_DEPENDS+= extractor:${PORTSDIR}/textproc/libextractor +.else +CONFIGURE_ARGS+= --disable-libextractor +.endif + +.if defined(WITH_DEBUG) +CONFIGURE_ARGS+= --enable-tombdebug +.else +CONFIGURE_ARGS+= --disable-tombdebug +.endif + +pre-install: + PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL + +post-install: + @${MKDIR} -m ${MEDIATOMB_MASK} -p ${PREFIX}/etc/mediatomb + @${CHOWN} ${MEDIATOMB_USER}:${MEDIATOMB_GROUP} ${PREFIX}/etc/mediatomb + @${INSTALL} ${COPY} -o ${MEDIATOMB_USER} -g ${MEDIATOMB_GROUP} -m 640 ${WRKDIR}/config.xml.dist ${PREFIX}/etc/mediatomb/config.xml.dist + @if [ ! -f ${PREFIX}/etc/mediatomb/config.xml ]; then \ + ${CP} -p ${PREFIX}/etc/mediatomb/config.xml.dist ${PREFIX}/etc/mediatomb/config.xml ; \ + fi + @${MKDIR} -m ${MEDIATOMB_MASK} -p ${MEDIATOMB_DIR} + @${CHOWN} ${MEDIATOMB_USER}:${MEDIATOMB_GROUP} ${MEDIATOMB_DIR} + +.include <bsd.port.post.mk> diff --git a/net/mediatomb/distinfo b/net/mediatomb/distinfo new file mode 100644 index 000000000000..04d00496034c --- /dev/null +++ b/net/mediatomb/distinfo @@ -0,0 +1,3 @@ +MD5 (mediatomb-0.9.0.tar.gz) = bfa110c41623ff689a60844430f91a34 +SHA256 (mediatomb-0.9.0.tar.gz) = 5876c28d5015c9a947ba87b5005e23d0eeaffd5de9eea2f321d6f42c8a71ed17 +SIZE (mediatomb-0.9.0.tar.gz) = 851342 diff --git a/net/mediatomb/files/config.xml.dist.in b/net/mediatomb/files/config.xml.dist.in new file mode 100644 index 000000000000..3f5f8fa88d3b --- /dev/null +++ b/net/mediatomb/files/config.xml.dist.in @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<config + xmlns="http://mediatomb.cc/0.9.0/config" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://mediatomb.cc/0.9.0/config http://mediatomb.cc/0.9.0/config.xsd"> + <server> + <ui enabled="yes"> + <accounts enabled="no" session-timeout="30"/> + </ui> + <name>MediaTomb</name> + <home>%%MEDIATOMB_DIR%%</home> + <webroot>%%DATADIR%%/web</webroot> + <storage driver="sqlite3"> + <database-file>mediatomb.db</database-file> + </storage> + </server> + <import hidden-files="no"> + <virtual-layout type="builtin"> + <script>%%DATADIR%%/js/import.js</script> + </virtual-layout> + <mappings> + <extension-mimetype ignore-unknown="no"> + <map from="mp3" to="audio/mpeg"/> + <map from="ogg" to="application/ogg"/> + <map from="asf" to="video/x-ms-asf"/> + <map from="asx" to="video/x-ms-asf"/> + <map from="wma" to="audio/x-ms-wma"/> + <map from="wax" to="audio/x-ms-wax"/> + <map from="wmv" to="video/x-ms-wmv"/> + <map from="wvx" to="video/x-ms-wvx"/> + <map from="wm" to="video/x-ms-wm"/> + <map from="wmx" to="video/x-ms-wmx"/> + <map from="wmx" to="video/x-ms-wmx"/> + </extension-mimetype> + <mimetype-upnpclass> + <map from="audio/*" to="object.item.audioItem.musicTrack"/> + <map from="application/ogg" to="object.item.audioItem.musicTrack"/> + <map from="video/*" to="object.item.videoItem"/> + <map from="image/*" to="object.item.imageItem"/> + </mimetype-upnpclass> + <mimetype-contenttype> + <treat mimetype="audio/mpeg" as="mp3"/> + <treat mimetype="application/ogg" as="ogg"/> + <treat mimetype="audio/x-flac" as="flac"/> + <treat mimetype="image/jpeg" as="jpg"/> + </mimetype-contenttype> + </mappings> + </import> +</config> diff --git a/net/mediatomb/files/mediatomb.sh.in b/net/mediatomb/files/mediatomb.sh.in new file mode 100644 index 000000000000..04321431ba3a --- /dev/null +++ b/net/mediatomb/files/mediatomb.sh.in @@ -0,0 +1,36 @@ +#!/bin/sh +# $FreeBSD$ + +# PROVIDE: mediatomb +# REQUIRE: DEAMON +# KEYWORD: shutdown + +# Define these mediatomb_* variables in one of these files: +# /etc/rc.conf +# /etc/rc.conf.local +# /etc/rc.conf.d/mediatomb +# +# DO NOT CHANGE THESE DEFAULT VALUES HERE +# + +. %%RC_SUBR%% + +mediatomb_enable=${mediatomb_enable-"NO"} +mediatomb_mtuser=${mediatomb_mtuser-"%%MEDIATOMB_USER%%"} +mediatomb_mtgroup=${mediatomb_mtgroup-"%%MEDIATOMB_GROUP%%"} +mediatomb_config=${mediatomb_config-"%%PREFIX%%/etc/mediatomb/config.xml"} +mediatomb_flags=${mediatomb_flags-""} +mediatomb_logfile=${mediatomb_logfile-"%%MEDIATOMB_DIR%%/mediatomb.log"} +mediatomb_pidfile=${mediatomb_pidfile-"%%MEDIATOMB_DIR%%/mediatomb.pid"} + +name="mediatomb" +rcvar=`set_rcvar` + +load_rc_config $name + +command="%%PREFIX%%/bin/mediatomb" +command_args="-d -c ${mediatomb_config} -l ${mediatomb_logfile} -u ${mediatomb_mtuser} -g ${mediatomb_mtgroup} -P ${mediatomb_pidfile}" + +pidfile="${mediatomb_pidfile}" + +run_rc_command "$1" diff --git a/net/mediatomb/files/patch-configure b/net/mediatomb/files/patch-configure new file mode 100644 index 000000000000..eb30d80cd2b2 --- /dev/null +++ b/net/mediatomb/files/patch-configure @@ -0,0 +1,11 @@ +--- configure.orig Thu Mar 29 23:04:32 2007 ++++ configure Thu Mar 29 23:24:30 2007 +@@ -23239,7 +23239,7 @@ + echo "$as_me:$LINENO: result: $ac_cv_lib_extractor_EXTRACTOR_getKeywords" >&5 + echo "${ECHO_T}$ac_cv_lib_extractor_EXTRACTOR_getKeywords" >&6 + if test $ac_cv_lib_extractor_EXTRACTOR_getKeywords = yes; then +- LDFLAGS="-L$EXTRACTOR_SEARCH_LIBS -lextractor" ++ EXTRACTOR_LIBS="-L$EXTRACTOR_SEARCH_LIBS -lextractor" + else + + { { echo "$as_me:$LINENO: error: extractor libraries not found in requested location $EXTRACTOR_SEARCH_LIBS" >&5 diff --git a/net/mediatomb/files/pkg-deinstall.in b/net/mediatomb/files/pkg-deinstall.in new file mode 100644 index 000000000000..cb32cbf862b9 --- /dev/null +++ b/net/mediatomb/files/pkg-deinstall.in @@ -0,0 +1,50 @@ +#!/bin/sh +# $FreeBSD$ + +if [ "$2" != "POST-DEINSTALL" ]; then + exit 0 +fi + +if [ -d %%PREFIX%%/etc/mediatomb ]; then + ETC_EXISTS=yes +else + ETC_EXISTS= +fi + +if [ -d %%MEDIATOMB_DIR%% ]; then + HOME_EXISTS=yes +else + HOME_EXISTS= +fi + +if pw usershow "%%MEDIATOMB_USER%%" 2>/dev/null 1>&2; then + USER_EXISTS=yes +else + USER_EXISTS= +fi + +if pw groupshow "%%MEDIATOMB_GROUP%%" 2>/dev/null 1>&2; then + GROUP_EXISTS=yes +else + GROUP_EXISTS= +fi + +if [ "$ETC_EXISTS" = "yes" -o "$HOME_EXISTS" = "yes" -o "$USER_EXISTS" = "yes" -o "$GROUP_EXISTS" = "yes" ]; then + + echo + echo "====================================================" + echo + echo "If you want remove MediaTomb permanently from your" + echo "system execute following commands as root:" + echo + [ "$ETC_EXISTS" = "yes" ] && echo " # rm -rf %%PREFIX%%/etc/mediatomb" + [ "$HOME_EXISTS" = "yes" ] && echo " # rm -rf %%MEDIATOMB_DIR%%" + [ "$USER_EXISTS" = "yes" ] && echo " # pw userdel %%MEDIATOMB_USER%%" + [ "$GROUP_EXISTS" = "yes" ] && echo " # pw groupdel %%MEDIATOMB_GROUP%%" + echo + echo "====================================================" + echo + +fi + +exit 0 diff --git a/net/mediatomb/files/pkg-install.in b/net/mediatomb/files/pkg-install.in new file mode 100644 index 000000000000..18dd5818542f --- /dev/null +++ b/net/mediatomb/files/pkg-install.in @@ -0,0 +1,40 @@ +#!/bin/sh +# $FreeBSD$ +# + +if [ "$2" != "PRE-INSTALL" ]; then + exit 0 +fi + +PREFIX=${PKG_PREFIX:-%%PREFIX%%} + +USER=%%MEDIATOMB_USER%% +GROUP=%%MEDIATOMB_GROUP%% + +PW="pw" +INSTALL=%%INSTALL%% +DIR=%%MEDIATOMB_DIR%% +MASK=%%MEDIATOMB_MASK%% + +if ! ${PW} groupshow "${GROUP}" 2>/dev/null 1>&2; then + if ${PW} groupadd ${GROUP}; then + echo "Added group \"${GROUP}\"." + else + echo "Adding group \"${GROUP}\" failed..." + exit 1 + fi +fi + +if ! ${PW} usershow "${USER}" 2>/dev/null 1>&2; then + if ${PW} useradd ${USER} -g ${GROUP} -h - \ + -s "/sbin/nologin" -d "/nonexistent" \ + -c "MediaTomb"; \ + then + echo "Added user \"${USER}\"." + else + echo "Adding user \"${USER}\" failed..." + exit 1 + fi +fi + +exit 0 diff --git a/net/mediatomb/pkg-descr b/net/mediatomb/pkg-descr new file mode 100644 index 000000000000..b2a01f5cca5d --- /dev/null +++ b/net/mediatomb/pkg-descr @@ -0,0 +1,17 @@ +UPnP media server + +MediaTomb is an open source (GPL) UPnP MediaServer with a nice web +user interface, it allows you to stream your digital media through +your home network and listen to/watch it on a variety of UPnP +compatible devices. + +MediaTomb implements the UPnP MediaServer V 1.0 specification that can +be found on http://www.upnp.org/. The current implementation focuses +on parts that are required by the specification, however we look into +extending the functionality to cover the optional parts of the spec as +well. + +WWW: http://mediatomb.cc/ + +- Leonhard Wimmer +leo@mediatomb.cc diff --git a/net/mediatomb/pkg-plist b/net/mediatomb/pkg-plist new file mode 100644 index 000000000000..a715c4f27f3c --- /dev/null +++ b/net/mediatomb/pkg-plist @@ -0,0 +1,99 @@ +@comment $FreeBSD$ +bin/mediatomb +%%DATADIR%%/js/import.js +%%DATADIR%%/mappings.xml +%%DATADIR%%/mysql.sql +%%DATADIR%%/sqlite3.sql +%%DATADIR%%/web/cds.xml +%%DATADIR%%/web/cm.xml +%%DATADIR%%/web/disabled.html +%%DATADIR%%/web/favicon.ico +%%DATADIR%%/web/icons/add_as_autoscan.png +%%DATADIR%%/web/icons/autoscan_config_folder_open.png +%%DATADIR%%/web/icons/autoscan_folder_open.png +%%DATADIR%%/web/icons/blank.gif +%%DATADIR%%/web/icons/blank.png +%%DATADIR%%/web/icons/document-new.png +%%DATADIR%%/web/icons/film.png +%%DATADIR%%/web/icons/folder_new.png +%%DATADIR%%/web/icons/folder_open.png +%%DATADIR%%/web/icons/go-first.png +%%DATADIR%%/web/icons/go-last.png +%%DATADIR%%/web/icons/go-next.png +%%DATADIR%%/web/icons/go-previous.png +%%DATADIR%%/web/icons/mediatomb.png +%%DATADIR%%/web/icons/mt-icon120.bmp +%%DATADIR%%/web/icons/mt-icon120.jpg +%%DATADIR%%/web/icons/mt-icon120.png +%%DATADIR%%/web/icons/mt-icon32.bmp +%%DATADIR%%/web/icons/mt-icon32.jpg +%%DATADIR%%/web/icons/mt-icon32.png +%%DATADIR%%/web/icons/mt-icon48.bmp +%%DATADIR%%/web/icons/mt-icon48.jpg +%%DATADIR%%/web/icons/mt-icon48.png +%%DATADIR%%/web/icons/nanotree/images/autoscan_config_folder_closed.png +%%DATADIR%%/web/icons/nanotree/images/autoscan_config_folder_open.png +%%DATADIR%%/web/icons/nanotree/images/autoscan_folder_closed.png +%%DATADIR%%/web/icons/nanotree/images/autoscan_folder_open.png +%%DATADIR%%/web/icons/nanotree/images/folder_closed.png +%%DATADIR%%/web/icons/nanotree/images/folder_open.png +%%DATADIR%%/web/icons/nanotree/images/lastnode.png +%%DATADIR%%/web/icons/nanotree/images/line.png +%%DATADIR%%/web/icons/nanotree/images/minus.png +%%DATADIR%%/web/icons/nanotree/images/minus_last.png +%%DATADIR%%/web/icons/nanotree/images/minus_last_no_root.png +%%DATADIR%%/web/icons/nanotree/images/minus_no_root.png +%%DATADIR%%/web/icons/nanotree/images/plus.png +%%DATADIR%%/web/icons/nanotree/images/plus_last.png +%%DATADIR%%/web/icons/nanotree/images/plus_last_no_root.png +%%DATADIR%%/web/icons/nanotree/images/plus_no_root.png +%%DATADIR%%/web/icons/nanotree/images/t.png +%%DATADIR%%/web/icons/nanotree/images/t_no_root.png +%%DATADIR%%/web/icons/nanotree/images/white.png +%%DATADIR%%/web/icons/remove_all.png +%%DATADIR%%/web/icons/remove_autoscan.png +%%DATADIR%%/web/icons/remove_this.png +%%DATADIR%%/web/icons/status.png +%%DATADIR%%/web/icons/status_loading.png +%%DATADIR%%/web/icons/status_updates_pending.png +%%DATADIR%%/web/icons/stock-add.png +%%DATADIR%%/web/icons/stock_edit.png +%%DATADIR%%/web/icons/stock_exit.png +%%DATADIR%%/web/index.html +%%DATADIR%%/web/js/auth.js +%%DATADIR%%/web/js/autoscan.js +%%DATADIR%%/web/js/icons.js +%%DATADIR%%/web/js/items.js +%%DATADIR%%/web/js/md5.js +%%DATADIR%%/web/js/nanotree.js +%%DATADIR%%/web/js/pngbehavior.htc +%%DATADIR%%/web/js/prototype.js +%%DATADIR%%/web/js/tasks.js +%%DATADIR%%/web/js/tools.js +%%DATADIR%%/web/js/tree.js +%%DATADIR%%/web/left.html +%%DATADIR%%/web/main.css +%%DATADIR%%/web/mr_reg.xml +%%DATADIR%%/web/right.html +%%DATADIR%%/web/std_treelook.css +%%DATADIR%%/web/top.html +%%DATADIR%%/web/topleft.html +%%DATADIR%%/web/topright.html +@owner %%MEDIATOMB_USER%% +@group %%MEDIATOMB_GROUP%% +@exec mkdir -m %%MEDIATOMB_MASK%% -p %D/etc/mediatomb +@exec chown %%MEDIATOMB_USER%%:%%MEDIATOMB_GROUP%% %D/etc/mediatomb +@unexec if cmp -s %D/etc/mediatomb/config.xml.dist %D/etc/mediatomb/config.xml; then rm -f %D/etc/mediatomb/config.xml; fi +etc/mediatomb/config.xml.dist +@exec [ -f %B/config.xml ] || cp -p %B/%f %B/config.xml +@unexec rmdir %%MEDIATOMB_DIR%% 2>/dev/null 1>&2 || true +@exec mkdir -m %%MEDIATOMB_MASK%% -p %%MEDIATOMB_DIR%% +@exec chown %%MEDIATOMB_USER%%:%%MEDIATOMB_GROUP%% %%MEDIATOMB_DIR%% +@dirrmtry etc/mediatomb +@dirrm %%DATADIR%%/js +@dirrm %%DATADIR%%/web/icons/nanotree/images +@dirrm %%DATADIR%%/web/icons/nanotree +@dirrm %%DATADIR%%/web/icons +@dirrm %%DATADIR%%/web/js +@dirrm %%DATADIR%%/web +@dirrm %%DATADIR%% |