diff options
Diffstat (limited to 'multimedia/mediatomb')
-rw-r--r-- | multimedia/mediatomb/README | 6 | ||||
-rw-r--r-- | multimedia/mediatomb/config.xml | 151 | ||||
-rw-r--r-- | multimedia/mediatomb/doinst.sh | 29 | ||||
-rw-r--r-- | multimedia/mediatomb/mediatomb-0.12.1-libmp4v2_191_p479.patch | 187 | ||||
-rw-r--r-- | multimedia/mediatomb/mediatomb-mp4v2-check.patch | 86 | ||||
-rw-r--r-- | multimedia/mediatomb/mediatomb.SlackBuild | 131 | ||||
-rw-r--r-- | multimedia/mediatomb/mediatomb.info | 10 | ||||
-rw-r--r-- | multimedia/mediatomb/rc.mediatomb | 84 | ||||
-rw-r--r-- | multimedia/mediatomb/rc.mediatomb.conf | 21 | ||||
-rw-r--r-- | multimedia/mediatomb/samsung-mkv.patch | 445 | ||||
-rw-r--r-- | multimedia/mediatomb/slack-desc | 19 |
11 files changed, 0 insertions, 1169 deletions
diff --git a/multimedia/mediatomb/README b/multimedia/mediatomb/README deleted file mode 100644 index 5df3a1abf3..0000000000 --- a/multimedia/mediatomb/README +++ /dev/null @@ -1,6 +0,0 @@ -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 optionally depends on libmp4v2 and lastfmlib. diff --git a/multimedia/mediatomb/config.xml b/multimedia/mediatomb/config.xml deleted file mode 100644 index 71f37bb039..0000000000 --- a/multimedia/mediatomb/config.xml +++ /dev/null @@ -1,151 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<config version="2" xmlns="http://mediatomb.cc/config/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mediatomb.cc/config/2 http://mediatomb.cc/config/2.xsd"> - <server> - <ui enabled="yes" show-tooltips="yes"> - <accounts enabled="no" session-timeout="30"> - <account user="mediatomb" password="mediatomb"/> - </accounts> - </ui> - <name>MediaTomb</name> - <udn></udn> - <home>/var/lib/mediatomb</home> - <webroot>/usr/share/mediatomb/web</webroot> - <storage> - <sqlite3 enabled="yes"> - <database-file>mediatomb.db</database-file> - </sqlite3> - <mysql enabled="no"> - <host>localhost</host> - <username>mediatomb</username> - <database>mediatomb</database> - </mysql> - </storage> - <protocolInfo extend="no"/><!-- For PS3 support change to "yes" --> - <!-- - Uncomment the lines below to get rid of jerky avi playback on the - DSM320 or to enable subtitles support on the DSM units - --> - <!-- - <custom-http-headers> - <add header="X-User-Agent: redsonic"/> - </custom-http-headers> - - <manufacturerURL>redsonic.com</manufacturerURL> - <modelNumber>105</modelNumber> - --> - <!-- Uncomment the line below if you have a Telegent TG100 --> - <!-- - <upnp-string-limit>101</upnp-string-limit> - --> - <extended-runtime-options> - <ffmpegthumbnailer enabled="no"> - <thumbnail-size>128</thumbnail-size> - <seek-percentage>5</seek-percentage> - <filmstrip-overlay>yes</filmstrip-overlay> - <workaround-bugs>no</workaround-bugs> - <image-quality>8</image-quality> - </ffmpegthumbnailer> - <mark-played-items enabled="no" suppress-cds-updates="yes"> - <string mode="prepend">*</string> - <mark> - <content>video</content> - </mark> - </mark-played-items> - <lastfm enabled="no"> - <username>lastfmuser</username> - <password>lastfmpass</password> - </lastfm> - </extended-runtime-options> - </server> - <import hidden-files="no"> - <scripting script-charset="UTF-8"> - <common-script>/usr/share/mediatomb/js/common.js</common-script> - <playlist-script>/usr/share/mediatomb/js/playlists.js</playlist-script> - <virtual-layout type="builtin"> - <import-script>/usr/share/mediatomb/js/import.js</import-script> - </virtual-layout> - </scripting> - <mappings> - <extension-mimetype ignore-unknown="no"> - <map from="mp3" to="audio/mpeg"/> - <map from="ogx" to="application/ogg"/> - <map from="ogv" to="video/ogg"/> - <map from="oga" to="audio/ogg"/> - <map from="ogg" to="audio/ogg"/> - <map from="ogm" to="video/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="m3u" to="audio/x-mpegurl"/> - <map from="pls" to="audio/x-scpls"/> - <map from="flv" to="video/x-flv"/> - <map from="mkv" to="video/x-matroska"/> - <map from="mka" to="audio/x-matroska"/> - <!-- Uncomment the line below for PS3 divx support --> - <!-- <map from="avi" to="video/divx"/> --> - <!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 --> - <!-- <map from="avi" to="video/avi"/> --> - </extension-mimetype> - <mimetype-upnpclass> - <map from="audio/*" 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"/> - <treat mimetype="audio/x-mpegurl" as="playlist"/> - <treat mimetype="audio/x-scpls" as="playlist"/> - <treat mimetype="audio/x-wav" as="pcm"/> - <treat mimetype="audio/L16" as="pcm"/> - <treat mimetype="video/x-msvideo" as="avi"/> - <treat mimetype="video/mp4" as="mp4"/> - <treat mimetype="audio/mp4" as="mp4"/> - <treat mimetype="application/x-iso9660" as="dvd"/> - <treat mimetype="application/x-iso9660-image" as="dvd"/> - </mimetype-contenttype> - </mappings> - <online-content> - <YouTube enabled="no" refresh="28800" update-at-start="no" purge-after="604800" racy-content="exclude" format="mp4" hd="no"> - <favorites user="mediatomb"/> - <standardfeed feed="most_viewed" time-range="today"/> - <playlists user="mediatomb"/> - <uploads user="mediatomb"/> - <standardfeed feed="recently_featured" time-range="today"/> - </YouTube> - </online-content> - </import> - <transcoding enabled="no"> - <mimetype-profile-mappings> - <transcode mimetype="video/x-flv" using="vlcmpeg"/> - <transcode mimetype="application/ogg" using="vlcmpeg"/> - <transcode mimetype="application/ogg" using="oggflac2raw"/> - <transcode mimetype="audio/x-flac" using="oggflac2raw"/> - </mimetype-profile-mappings> - <profiles> - <profile name="oggflac2raw" enabled="no" type="external"> - <mimetype>audio/L16</mimetype> - <accept-url>no</accept-url> - <first-resource>yes</first-resource> - <accept-ogg-theora>no</accept-ogg-theora> - <agent command="ogg123" arguments="-d raw -o byteorder:big -f %out %in"/> - <buffer size="1048576" chunk-size="131072" fill-size="262144"/> - </profile> - <profile name="vlcmpeg" enabled="no" type="external"> - <mimetype>video/mpeg</mimetype> - <accept-url>yes</accept-url> - <first-resource>yes</first-resource> - <accept-ogg-theora>yes</accept-ogg-theora> - <agent command="vlc" arguments="-I dummy %in --sout #transcode{venc=ffmpeg,vcodec=mp2v,vb=4096,fps=25,aenc=ffmpeg,acodec=mpga,ab=192,samplerate=44100,channels=2}:standard{access=file,mux=ps,dst=%out} vlc:quit"/> - <buffer size="14400000" chunk-size="512000" fill-size="120000"/> - </profile> - </profiles> - </transcoding> -</config> diff --git a/multimedia/mediatomb/doinst.sh b/multimedia/mediatomb/doinst.sh deleted file mode 100644 index adc456f74f..0000000000 --- a/multimedia/mediatomb/doinst.sh +++ /dev/null @@ -1,29 +0,0 @@ -config() { - NEW="$1" - OLD="$(dirname $NEW)/$(basename $NEW .new)" - # If there's no config file by that name, mv it over: - if [ ! -r $OLD ]; then - mv $NEW $OLD - elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then - # toss the redundant copy - rm $NEW - fi - # Otherwise, we leave the .new copy for the admin to consider... -} - -preserve_perms() { - NEW="$1" - OLD="$(dirname $NEW)/$(basename $NEW .new)" - if [ -e $OLD ]; then - cp -a $OLD ${NEW}.incoming - cat $NEW > ${NEW}.incoming - mv ${NEW}.incoming $NEW - fi - config $NEW -} - -# Prepare the new configuration files -config etc/mediatomb/config.xml.new -config etc/rc.d/rc.mediatomb.conf.new -preserve_perms etc/rc.d/rc.mediatomb.new - diff --git a/multimedia/mediatomb/mediatomb-0.12.1-libmp4v2_191_p479.patch b/multimedia/mediatomb/mediatomb-0.12.1-libmp4v2_191_p479.patch deleted file mode 100644 index 6a6b51e1e0..0000000000 --- a/multimedia/mediatomb/mediatomb-0.12.1-libmp4v2_191_p479.patch +++ /dev/null @@ -1,187 +0,0 @@ -diff -urN old/src/metadata/libmp4v2_handler.cc new/src/metadata/libmp4v2_handler.cc ---- old/src/metadata/libmp4v2_handler.cc 2012-04-05 01:46:26.000000000 +0200 -+++ new/src/metadata/libmp4v2_handler.cc 2012-04-05 02:01:24.000000000 +0200 -@@ -65,29 +65,28 @@ - static void addMetaField(metadata_fields_t field, MP4FileHandle mp4, Ref<CdsItem> item) - { - String value; -- char* mp4_retval = NULL; -- u_int16_t track; -- u_int16_t total_tracks; -- - Ref<StringConverter> sc = StringConverter::i2i(); - -+ const MP4Tags* new_tags = MP4TagsAlloc(); -+ -+ if (!MP4TagsFetch(new_tags, mp4)) -+ return; -+ - switch (field) - { - case M_TITLE: -- MP4GetMetadataName(mp4, &mp4_retval); -+ value = new_tags->name; - break; - case M_ARTIST: -- MP4GetMetadataArtist(mp4, &mp4_retval); -+ value = new_tags->artist; - break; - case M_ALBUM: -- MP4GetMetadataAlbum(mp4, &mp4_retval); -+ value = new_tags->album; - break; - case M_DATE: -- MP4GetMetadataYear(mp4, &mp4_retval); -- if (mp4_retval) -+ value = new_tags->releaseDate; -+ if (value.length() > 0) - { -- value = mp4_retval; -- free(mp4_retval); - if (string_ok(value)) - value = value + "-01-01"; - else -@@ -95,34 +94,31 @@ - } - break; - case M_GENRE: -- MP4GetMetadataGenre(mp4, &mp4_retval); -+ value = new_tags->genre; - break; - case M_DESCRIPTION: -- MP4GetMetadataComment(mp4, &mp4_retval); -+ value = new_tags->comments; - break; - case M_TRACKNUMBER: -- MP4GetMetadataTrack(mp4, &track, &total_tracks); -- if (track > 0) -+ if (new_tags->track) - { -- value = String::from(track); -- item->setTrackNumber((int)track); -+ value = String::from(new_tags->track->index); -+ item->setTrackNumber((int)new_tags->track->index); - } - else -+ { -+ MP4TagsFree( new_tags ); - return; -+ } - break; - default: -+ MP4TagsFree( new_tags ); - return; - } - -- if ((field != M_DATE) && (field != M_TRACKNUMBER) && -- (mp4_retval)) -- { -- value = mp4_retval; -- free(mp4_retval); -- } -- -+ MP4TagsFree( new_tags ); - value = trim_string(value); -- -+ - if (string_ok(value)) - { - item->setMetadata(MT_KEYS[field].upnp, sc->convert(value)); -@@ -190,14 +186,19 @@ - } - - #if defined(HAVE_MAGIC) -- u_int8_t *art_data; -- u_int32_t art_data_len; -+ void *art_data = 0; -+ u_int32_t art_data_len = 0; - String art_mimetype; -+ -+ const MP4Tags* new_tags = MP4TagsAlloc(); -+ MP4TagsFetch(new_tags, mp4); -+ if (new_tags->artworkCount) -+ { -+ art_data = new_tags->artwork->data; -+ art_data_len = new_tags->artwork->size; -+ } - #ifdef HAVE_MP4_GET_METADATA_COVER_ART_COUNT -- if (MP4GetMetadataCoverArtCount(mp4) && -- MP4GetMetadataCoverArt(mp4, &art_data, &art_data_len)) --#else -- MP4GetMetadataCoverArt(mp4, &art_data, &art_data_len); -+ if (new_tags->artworkCount && art_data_len > 0) - #endif - { - if (art_data) -@@ -211,11 +212,10 @@ - } - catch (Exception ex) - { -- free(art_data); -+ MP4TagsFree(new_tags); - throw ex; - } - -- free(art_data); - if (art_mimetype != _(MIMETYPE_DEFAULT)) - { - Ref<CdsResource> resource(new CdsResource(CH_MP4)); -@@ -225,6 +225,7 @@ - } - } - } -+ MP4TagsFree(new_tags); - #endif - MP4Close(mp4); - } -@@ -249,26 +250,35 @@ - - if (ctype != ID3_ALBUM_ART) - throw _Exception(_("LibMP4V2Handler: got unknown content type: ") + ctype); -+ -+ const MP4Tags* new_tags = MP4TagsAlloc(); -+ if (MP4TagsFetch(new_tags, mp4)) -+ { - #ifdef HAVE_MP4_GET_METADATA_COVER_ART_COUNT -- if (!MP4GetMetadataCoverArtCount(mp4)) -- throw _Exception(_("LibMP4V2Handler: resource has no album art information")); -+ if (!new_tags->artworkCount) -+ throw _Exception(_("LibMP4V2Handler: resource has no album art information")); - #endif -- u_int8_t *art_data; -- u_int32_t art_data_len; -- if (MP4GetMetadataCoverArt(mp4, &art_data, &art_data_len)) -- { -- if (art_data) -+ void *art_data = 0; -+ u_int32_t art_data_len; -+ -+ const MP4TagArtwork* art = new_tags->artwork; -+ art_data = art->data; -+ art_data_len = art->size; -+ if (art) - { -- *data_size = (off_t)art_data_len; -- Ref<IOHandler> h(new MemIOHandler((void *)art_data, art_data_len)); -- free(art_data); -- return h; -+ if (art_data) -+ { -+ *data_size = (off_t)art_data_len; -+ Ref<IOHandler> h(new MemIOHandler(art_data, art_data_len)); -+ MP4TagsFree(new_tags); -+ return h; -+ } - } -+ MP4TagsFree(new_tags); - } -- - throw _Exception(_("LibMP4V2Handler: could not serve album art " -- "for file") + item->getLocation() + -- " - embedded image not found"); -+ "for file") + item->getLocation() + -+ " - embedded image not found"); - } - - #endif // HAVE_LIBMP4V2 -De binära filerna old/src/metadata/.libmp4v2_handler.cc.swp och new/src/metadata/.libmp4v2_handler.cc.swp skiljer diff --git a/multimedia/mediatomb/mediatomb-mp4v2-check.patch b/multimedia/mediatomb/mediatomb-mp4v2-check.patch deleted file mode 100644 index 226a22a631..0000000000 --- a/multimedia/mediatomb/mediatomb-mp4v2-check.patch +++ /dev/null @@ -1,86 +0,0 @@ -commit bed8f03202336fc7863ec6a39e130473f59061c6 -Author: Sergey 'Jin' Bostandzhyan <jin at mediatomb dot cc> -Date: Sun Jan 27 23:08:04 2013 +0100 - - Extra configure check for libmp4v2 compatibility - - We do not support the newer libmpv2 version yet, so don't error out when - compiling, catch it in configure. - -diff --git a/acinclude.m4 b/acinclude.m4 -index f4962c6..3cc5ec3 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -533,7 +533,8 @@ AC_DEFUN([MT_CHECK_OPTIONAL_PACKAGE], - AC_MSG_ERROR([unable to configure $1 support]) - fi - -- if test "x$mt_[]translit($1, `/.-', `___')_status" = xyes; then -+ if ((test "x$mt_[]translit($1, `/.-', `___')_status" = xyes) && -+ (test "x$9" != "xundef")); then - AC_DEFINE(translit(HAVE_$1, `a-z/.-', `A-Z___'), [1], [$1 library presence]) - fi - -diff --git a/configure.ac b/configure.ac -index e72dd78..9241797 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1390,7 +1390,7 @@ LIBMP4V2_STATUS= - - MT_CHECK_OPTIONAL_PACKAGE([libmp4v2], [disable], - [libmp4v2 support for mp4 metadata extraction], -- [$MP4_HEADER], [mp4v2], [MP4Read]) -+ [$MP4_HEADER], [mp4v2], [MP4Read], [], [], [undef]) - - if test "x$LIBMP4V2_STATUS" = xyes; then - CFLAGS="$CFLAGS $LIBMP4V2_CFLAGS" -@@ -1399,6 +1399,37 @@ if test "x$LIBMP4V2_STATUS" = xyes; then - AC_DEFINE_UNQUOTED([LIBMP4V2_INCLUDE], [<$MP4_HEADER.h>], [$MP4_HEADER.h]) - AC_LANG_SAVE - AC_LANG_CPLUSPLUS -+ AC_MSG_CHECKING([for libmp4v2 compatibility]) -+ AC_COMPILE_IFELSE( -+ [AC_LANG_PROGRAM( -+ [ -+ #include <$MP4_HEADER.h> -+ ], -+ [ -+ (void)MP4GetMetadataName(0, 0); -+ ] -+ )], -+ [ -+ AC_MSG_RESULT([yes]) -+ AC_DEFINE([HAVE_LIBMP4V2], [1], [libmp4v2 library presence]) -+ ], -+ [ -+ AC_MSG_RESULT([not compatible]) -+ if test "x$LIBMP4V2_OPTION_REQUESTED" = "xyes"; then -+ AC_MSG_ERROR([Unable to configure libmp4v2 support]) -+ else -+ LIBMP4V2_STATUS="not compatible" -+ fi -+ ]) -+ LDFLAGS="$LDFLAGS_SAVE" -+ CFLAGS="$CFLAGS_SAVE" -+ CXXFLAGS="$CXXFLAGS_SAVE" -+fi -+ -+if test "x$LIBMP4V2_STATUS" = "xyes"; then -+ CFLAGS="$CFLAGS $LIBMP4V2_CFLAGS" -+ CXXFLAGS="$CXXFLAGS $LIBMP4V2_CFLAGS" -+ LDFLAGS="$LDFLAGS $LIBMP4V2_LDFLAGS $LIBMP4V2_LIBS" - AC_MSG_CHECKING([for MP4GetMetadataCoverArtCount() in libmp4v2]) - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( -@@ -1437,7 +1468,10 @@ if test "x$LIBMP4V2_STATUS" = xyes; then - AC_MSG_RESULT([no]) - ]) - -- AC_LANG_RESTORE -+ AC_LANG_RESTORE -+ LDFLAGS="$LDFLAGS_SAVE" -+ CFLAGS="$CFLAGS_SAVE" -+ CXXFLAGS="$CXXFLAGS_SAVE" - fi - - ########## INOTIFY TOOLS diff --git a/multimedia/mediatomb/mediatomb.SlackBuild b/multimedia/mediatomb/mediatomb.SlackBuild deleted file mode 100644 index c72b45de0c..0000000000 --- a/multimedia/mediatomb/mediatomb.SlackBuild +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/sh - -# Slackware build script for mediatomb - -# Copyright 2010-2016 Heinz Wiesinger, Amsterdam, The Netherlands -# All rights reserved. -# -# Redistribution and use of this script, with or without modification, is -# permitted provided that the following conditions are met: -# -# 1. Redistributions of this script must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED -# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -PRGNAM=mediatomb -VERSION=${VERSION:-b66dc1f} -BUILD=${BUILD:-2} -TAG=${TAG:-_SBo} - -if [ -z "$ARCH" ]; then - case "$( uname -m )" in - i?86) ARCH=i486 ;; - arm*) ARCH=arm ;; - *) ARCH=$( uname -m ) ;; - esac -fi - -CWD=$(pwd) -TMP=${TMP:-/tmp/SBo} -PKG=$TMP/package-$PRGNAM -OUTPUT=${OUTPUT:-/tmp} - -if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" - LIBDIRSUFFIX="" -elif [ "$ARCH" = "i686" ]; then - SLKCFLAGS="-O2 -march=i686 -mtune=i686" - LIBDIRSUFFIX="" -elif [ "$ARCH" = "x86_64" ]; then - SLKCFLAGS="-O2 -fPIC" - LIBDIRSUFFIX="64" -else - SLKCFLAGS="-O2" - LIBDIRSUFFIX="" -fi - -if ! grep ^mediatomb: /etc/group 2>&1 > /dev/null; then - echo " Must have a mediatomb group to run this script." - echo " # groupadd -g 241 mediatomb" - echo " Or something similar." - exit 1 -elif ! grep ^mediatomb: /etc/passwd 2>&1 > /dev/null; then - echo " Must have a mediatomb user to run this script." - echo " # useradd -u 241 -g mediatomb -d /var/lib/mediatomb mediatomb" - echo " Or something similar." - exit 1 -fi - -set -e - -rm -rf $PKG -mkdir -p $TMP $PKG $OUTPUT -cd $TMP -rm -rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM-$VERSION.tar.xz -cd $PRGNAM-$VERSION -chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; - -# Fix building with new libmp4v2 -patch -p1 -R -i $CWD/mediatomb-mp4v2-check.patch -patch -p1 -i $CWD/mediatomb-0.12.1-libmp4v2_191_p479.patch - -# Fix support for Samsung TVs -patch -p1 -i $CWD/samsung-mkv.patch - -autoreconf -vif - -# We need LDFLAGS="-ldl" for proper sqlite detection -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS" \ -LDFLAGS="-ldl" \ -./configure \ - --prefix=/usr \ - --libdir=/usr/lib${LIBDIRSUFFIX} \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --mandir=/usr/man \ - --build=$ARCH-slackware-linux - -make -make install-strip DESTDIR=$PKG - -mkdir -p $PKG/etc/rc.d -cp $CWD/rc.mediatomb $PKG/etc/rc.d/rc.mediatomb.new -cp $CWD/rc.mediatomb.conf $PKG/etc/rc.d/rc.mediatomb.conf.new - -mkdir -p $PKG/etc/mediatomb -install -m 644 $CWD/config.xml $PKG/etc/mediatomb/config.xml.new -chown -R mediatomb:mediatomb $PKG/etc/mediatomb - -mkdir -p $PKG/var/{lib,log}/mediatomb -chown mediatomb:mediatomb $PKG/var/{lib,log}/mediatomb - -find $PKG/usr/man -type f -exec gzip -9 {} \; - -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a AUTHORS ChangeLog COPYING INSTALL NEWS README TODO \ - $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild - -mkdir -p $PKG/install -cat $CWD/slack-desc > $PKG/install/slack-desc -cat $CWD/doinst.sh > $PKG/install/doinst.sh - -cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/multimedia/mediatomb/mediatomb.info b/multimedia/mediatomb/mediatomb.info deleted file mode 100644 index e78081786a..0000000000 --- a/multimedia/mediatomb/mediatomb.info +++ /dev/null @@ -1,10 +0,0 @@ -PRGNAM="mediatomb" -VERSION="b66dc1f" -HOMEPAGE="http://mediatomb.cc/" -DOWNLOAD="http://www.liwjatan.at/files/src/mediatomb/mediatomb-b66dc1f.tar.xz" -MD5SUM="7f4eb80f9e708564e6b8db45ee63f002" -DOWNLOAD_x86_64="" -MD5SUM_x86_64="" -REQUIRES="" -MAINTAINER="Heinz Wiesinger" -EMAIL="pprkut@liwjatan.at" diff --git a/multimedia/mediatomb/rc.mediatomb b/multimedia/mediatomb/rc.mediatomb deleted file mode 100644 index 206fb70741..0000000000 --- a/multimedia/mediatomb/rc.mediatomb +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh -# Start/stop/restart mediatomb. -# $Id: rc.mediatomb,v 1.0 2010/11/01 -# Authors: Heinz Wiesinger <pprkut@liwjatan.at> -# --------------------------------------------------------------------------- - -MEDIATOMB_PIDDIR="/var/run/mediatomb/" -MEDIATOMB_PIDFILE="/var/run/mediatomb/mediatomb.pid" -MEDIATOMB_LOGFILE="/var/log/mediatomb/mediatomb.log" - -# Get additional configuration information from /etc/rc.d/rc.mediatomb.conf: -. /etc/rc.d/rc.mediatomb.conf - -mediatomb_start() -{ - echo -n "Starting mediatomb ... " - if ! [ -e "${MEDIATOMB_PIDDIR}" ]; then - mkdir -p "${MEDIATOMB_PIDDIR}" - fi - if [ -e "${MEDIATOMB_PIDFILE}" ]; then - echo "already running!" - else - if [ "${MEDIATOMB_INTERFACE}" != "" ]; then - MEDIATOMB_OPTIONS="$MEDIATOMB_OPTIONS --interface ${MEDIATOMB_INTERFACE}" - fi - if [ "${MEDIATOMB_PORT}" != "" ]; then - MEDIATOMB_OPTIONS="$MEDIATOMB_OPTIONS --port ${MEDIATOMB_PORT}" - fi - /usr/bin/mediatomb \ - --daemon \ - --user ${MEDIATOMB_USER} \ - --group ${MEDIATOMB_GROUP} \ - --pidfile ${MEDIATOMB_PIDFILE} \ - --logfile ${MEDIATOMB_LOGFILE} \ - --config ${MEDIATOMB_CONFIG} \ - ${MEDIATOMB_OPTIONS} - echo "done!" - fi -} - -mediatomb_stop() -{ - echo -n "Stopping mediatomb ... " - if [ -e "${MEDIATOMB_PIDFILE}" ]; then - kill -TERM $(cat ${MEDIATOMB_PIDFILE}) > /dev/null 2>&1 - echo "done!" - rm -f "${MEDIATOMB_PIDFILE}" - else - echo "not running!" - fi -} - -mediatomb_restart() -{ - mediatomb_stop - sleep 1 - mediatomb_start -} - -mediatomb_status() -{ - if [ -e "${MEDIATOMB_PIDFILE}" ]; then - echo "mediatomb is running!" - else - echo "mediatomb is not running!" - fi -} - -case "$1" in -'start') - mediatomb_start - ;; -'stop') - mediatomb_stop - ;; -'status') - mediatomb_status - ;; -'restart') - mediatomb_restart - ;; -*) - echo "usage $0 start|stop|restart|status" -esac diff --git a/multimedia/mediatomb/rc.mediatomb.conf b/multimedia/mediatomb/rc.mediatomb.conf deleted file mode 100644 index af5ea4feef..0000000000 --- a/multimedia/mediatomb/rc.mediatomb.conf +++ /dev/null @@ -1,21 +0,0 @@ -# /etc/rc.d/rc.mediatomb.conf -# -# This file contains the configuration settings for mediatomb. - -# Main configuration file that should be used for mediatomb -MEDIATOMB_CONFIG="/etc/mediatomb/config.xml" - -# The user under which mediatomb should run -MEDIATOMB_USER="mediatomb" - -# The group under which mediatomb should run -MEDIATOMB_GROUP="mediatomb" - -# Network Interface to bind to -MEDIATOMB_INTERFACE="" - -# Server port (the SDK only permits values >= 49152) -MEDIATOMB_PORT="" - -# Additional mediatomb options -MEDIATOMB_OPTIONS="" diff --git a/multimedia/mediatomb/samsung-mkv.patch b/multimedia/mediatomb/samsung-mkv.patch deleted file mode 100644 index 6b146d7b0f..0000000000 --- a/multimedia/mediatomb/samsung-mkv.patch +++ /dev/null @@ -1,445 +0,0 @@ -Workaround for Samsung Smart TV 2012 : - - URI patch made by swiergot http://sourceforge.net/tracker/index.php?func=detail&aid=3532724&group_id=129766&atid=715782 - - per device content-type engine : change video/x-matroska with video/x-mkv for Samsung devices only - ---- a/tombupnp/upnp/src/genlib/miniserver/miniserver.c -+++ b/tombupnp/upnp/src/genlib/miniserver/miniserver.c -@@ -842,6 +842,8 @@ - return UPNP_E_INTERNAL_ERROR; // miniserver running - } - -+ ssdpdevices_init(&GlobalSsdpDevices); -+ - miniSocket = - ( MiniServerSockArray * ) malloc( sizeof( MiniServerSockArray ) ); - if( miniSocket == NULL ) -@@ -963,5 +965,8 @@ - } - shutdown( sock, SD_BOTH ); - UpnpCloseSocket( sock ); -+ -+ ssdpdevices_destroy(&GlobalSsdpDevices); -+ - return 0; - } ---- a/tombupnp/upnp/src/genlib/net/http/webserver.c -+++ b/tombupnp/upnp/src/genlib/net/http/webserver.c -@@ -1211,6 +1211,7 @@ - * - * Parameters: - * IN http_message_t *req ; HTTP Request message -+* IN SOCKINFO *info ; Socket info (fd with remote ip & port) - * OUT enum resp_type *rtype ; Tpye of response - * OUT membuffer *headers ; - * OUT membuffer *filename ; Get filename from request document -@@ -1230,6 +1231,7 @@ - ************************************************************************/ - static int - process_request( IN http_message_t * req, -+ IN SOCKINFO *info, - OUT enum resp_type *rtype, - OUT membuffer * headers, - OUT membuffer * filename, -@@ -1473,6 +1475,19 @@ - goto error_handler; - } - -+ // change "x-matroska" by "x-mkv", for samsung devices only -+ char *newtype; -+ if((strcmp(finfo.content_type, "video/x-matroska")==0)) { -+ if(ssdpdevice_servermatch(&GlobalSsdpDevices, info->foreign_ip_addr.s_addr, "samsung")) { -+// printf("Req from Samsung device : %s\n", finfo.content_type); -+ // change is made in two steps : free the previous string, malloc a new one -+ if((newtype= (char *) strdup("video/x-mkv"))) { -+ free(finfo.content_type); -+ finfo.content_type = newtype; -+ } -+ } -+ } -+ - if( RespInstr->IsRangeActive && RespInstr->IsChunkActive ) { - //Content-Range: bytes 222-3333/4000 HTTP_PARTIAL_CONTENT - //Transfer-Encoding: chunked -@@ -1800,7 +1815,7 @@ - //Process request should create the different kind of header depending on the - //the type of request. - ret = -- process_request( req, &rtype, &headers, &filename, &xmldoc, -+ process_request( req, info, &rtype, &headers, &filename, &xmldoc, - &RespInstr, &Fp); - if( ret != UPNP_E_SUCCESS ) { - // send error code ---- a/tombupnp/upnp/src/genlib/net/uri/uri.c -+++ b/tombupnp/upnp/src/genlib/net/uri/uri.c -@@ -1042,7 +1042,8 @@ - out->path_type = REL_PATH; - } - -- if( ( ( begin_hostport + 1 ) < max ) && ( in[begin_hostport] == '/' ) -+ //parse hostport only if scheme was found -+ if( ( begin_hostport > 0 ) && ( ( begin_hostport + 1 ) < max ) && ( in[begin_hostport] == '/' ) - && ( in[begin_hostport + 1] == '/' ) ) { - begin_hostport += 2; - -@@ -1059,6 +1060,12 @@ - out->hostport.text.size = 0; - out->hostport.text.buff = 0; - begin_path = begin_hostport; -+ -+ //remove excessive leading slashes (fix for Samsung Smart TV 2012) -+ while( ( ( begin_path + 1 ) < max ) && ( in[begin_path] == '/' ) && ( in[begin_path + 1] == '/') ) { -+ begin_path++; -+ } -+ - } - - begin_fragment = ---- a/tombupnp/upnp/src/inc/ssdplib.h -+++ b/tombupnp/upnp/src/inc/ssdplib.h -@@ -161,9 +161,22 @@ - struct sockaddr_in dest_addr; - } ssdp_thread_data; - -+typedef struct -+{ -+ ithread_mutex_t mutex; -+ LinkedList deviceslist; -+} ssdpdevices_t; -+ -+typedef struct -+{ -+ uint32_t s_addr; -+ char *serverdesc; -+} ssdp_device_t; - - /* globals */ - -+extern ssdpdevices_t GlobalSsdpDevices; -+ - CLIENTONLY(extern SOCKET gSsdpReqSocket;); - - typedef int (*ParserFun)(char *, Event *); -@@ -174,6 +187,64 @@ - //int AnalyzeCommand(char * szCommand, Event * Evt); - - /************************************************************************ -+* Function : ssdpdevices_free -+* -+* Parameters : -+* void *d ; -+* -+* Description : Free memory allocated for each SSDP Device -+* -+* Return : void ; -+* -+* Note : -+************************************************************************/ -+void ssdpdevice_free( void *d ); -+ -+/************************************************************************ -+* Function : ssdpdevice_compare -+* -+* Parameters : -+* void* param1 ; -+* void* param2 ; -+* -+* Description : Compare two SSDP devices by their ip address -+* -+* Return : int ; -+* -+* Note : -+************************************************************************/ -+int ssdpdevice_compare( void *param1, void *param2 ); -+ -+/************************************************************************ -+* Function : ssdpdevices_init -+* -+* Parameters : -+* INOUT ssdpdevices_t* s ; Array of SSDP Devices -+* -+* Description : Initialize and allocate memory for the array of SSDP devices -+* -+* Return : void ; -+* -+* Note : -+************************************************************************/ -+ -+void ssdpdevices_init(ssdpdevices_t* s); -+ -+/************************************************************************ -+* Function : ssdpdevices_destroy -+* -+* Parameters : -+* INOUT ssdpdevices_t* msg ; Array of SSDP Devices -+* -+* Description : Free memory allocated for the Array of SSDP Devices -+* -+* Return : void ; -+* -+* Note : -+************************************************************************/ -+void ssdpdevices_destroy( ssdpdevices_t *s ); -+ -+/************************************************************************ - * Function : Make_Socket_NoBlocking - * - * Parameters: ---- a/tombupnp/upnp/src/ssdp/ssdp_server.c -+++ b/tombupnp/upnp/src/ssdp/ssdp_server.c -@@ -52,8 +52,231 @@ - #include "unixutil.h" - #endif - -+#include <regex.h> -+ - #define MAX_TIME_TOREAD 45 - -+// global containing the array of devices -+ssdpdevices_t GlobalSsdpDevices; -+ -+/************************************************************************ -+* Function : ssdpdevices_free -+* -+* Parameters : -+* void *msg ; -+* -+* Description : Free memory allocated for each SSDP Device -+* -+* Return : void ; -+* -+* Note : -+************************************************************************/ -+void -+ssdpdevice_free( void *d ) -+{ -+ ssdp_device_t *sd = ( ssdp_device_t * ) d; -+ -+ free(sd->serverdesc); -+ -+ free( sd ); -+} -+ -+/************************************************************************ -+* Function : ssdpdevice_compare -+* -+* Parameters : -+* void* param1 ; -+* void* param2 ; -+* -+* Description : Compare two SSDP devices by their ip address -+* -+* Return : int ; -+* -+* Note : -+************************************************************************/ -+int -+ssdpdevice_compare( void *param1, -+ void *param2 ) -+{ -+ assert( param1 != NULL ); -+ assert( param2 != NULL ); -+ -+ return ( ( ssdp_device_t * ) param1 )->s_addr == -+ ( ( ssdp_device_t * ) param2 )->s_addr; -+} -+ -+/************************************************************************ -+* Function : ssdpdevices_init -+* -+* Parameters : -+* INOUT ssdpdevices_t* s ; Array of SSDP Devices -+* -+* Description : Initialize and allocate memory for the array of SSDP devices -+* -+* Return : void ; -+* -+* Note : -+************************************************************************/ -+ -+void ssdpdevices_init(ssdpdevices_t* s) { -+ ithread_mutex_init( &s->mutex, NULL ); -+ ListInit( &s->deviceslist, ssdpdevice_compare, ssdpdevice_free ); -+} -+ -+/************************************************************************ -+* Function : ssdpdevices_destroy -+* -+* Parameters : -+* INOUT ssdpdevices_t* s ; Array of SSDP Devices -+* -+* Description : Free memory allocated for the Array of SSDP Devices -+* -+* Return : void ; -+* -+* Note : -+************************************************************************/ -+void -+ssdpdevices_destroy( ssdpdevices_t *s ) -+{ -+ int ret; -+ -+ assert( s != NULL ); -+ -+ ithread_mutex_lock( &s->mutex ); -+ ListDestroy( &s->deviceslist, 1 ); -+ ithread_mutex_unlock( &s->mutex ); -+ -+ ret = ithread_mutex_destroy( &s->mutex ); -+ assert( ret == 0 ); -+ -+} -+ -+/************************************************************************ -+* Function : create_device_node -+* -+* Parameters : -+* IN uint32_t *ip4addr; IP Address -+* IN membuffer *mbuf; Server descripton -+* -+* Description : Create a device structure and fill it with ip & description -+* -+* Return : ssdp_device_t * -+* -+* Note : -+************************************************************************/ -+ -+ssdp_device_t *create_device(uint32_t ipaddr, membuffer *mbuf) { -+ ssdp_device_t *newd; -+ if( (newd = (ssdp_device_t *) malloc(sizeof(ssdp_device_t)))) { -+ if( ( newd->serverdesc = str_alloc ( mbuf->buf, mbuf->length) ) ) { -+ newd->s_addr = ipaddr; -+ return(newd); -+ } -+ free(newd); -+ } -+ return(NULL); -+} -+ -+ -+/************************************************************************ -+* Function : ssdpdevices_updatelist -+* -+* Parameters : -+* INOUT ssdpdevices_t* s ; Array of SSDP Devices -+* IN uint32_t *ip4addr; IP Address -+* IN char *serverstr; Server descripton -+* -+* Description : Insert or update the list with given device -+* -+* Return : void ; -+* -+* Note : -+************************************************************************/ -+void -+ssdpdevices_updatelist( ssdpdevices_t *s, uint32_t ip4addr, membuffer *serverstr) -+{ -+ assert( s != NULL ); -+ assert( ip4addr != 0 ); -+ assert( serverstr != NULL ); -+ -+ int found = 0; -+ -+ // Loop through each existing device -+ ithread_mutex_lock( &s->mutex ); -+ LinkedList *l = &s->deviceslist; -+ ListNode *temp = NULL; -+ ssdp_device_t *d,*newd; -+ for (temp = ListHead(l);temp!=NULL;temp = ListNext(l,temp)) -+ { -+ d=(ssdp_device_t *)temp->item; -+ if(d->s_addr == ip4addr) { -+ found = 1; -+ break; -+ } -+ } -+ -+ // Add the entry if necessary -+ if(!found) { -+ if( ( newd = create_device(ip4addr, serverstr))) { -+ ListAddTail( l, newd); -+ } -+ } -+ ithread_mutex_unlock( &s->mutex ); -+ -+} -+ -+/************************************************************************ -+* Function : ssdpdevice_descmatch -+* -+* Parameters : -+* IN ssdpdevices_t* s ; Array of SSDP Devices -+* IN uint32_t ipaddr; Ip addres to check -+* IN char *regexp; Regex to match -+* -+* Description : Check whether the device's description matches the given regex -+* -+* Return : int (1 = match, else no match) -+* -+* Note : -+************************************************************************/ -+int -+ssdpdevice_servermatch( ssdpdevices_t *s, uint32_t ip4addr, char *regex) -+{ -+ assert( s != NULL ); -+ assert( ip4addr != 0 ); -+ assert( regex != NULL ); -+ -+ int ret = 0; -+ regex_t reg; -+ -+ if( regcomp(®, regex, REG_EXTENDED | REG_NOSUB | REG_ICASE) != 0) { -+ printf("Invalid regex : %s\n", regex); -+ return(0); -+ } -+ -+ // Loop through each existing device -+ ithread_mutex_lock( &s->mutex ); -+ LinkedList *l = &s->deviceslist; -+ ListNode *temp = NULL; -+ ssdp_device_t *d; -+ for (temp = ListHead(l);temp!=NULL;temp = ListNext(l,temp)) -+ { -+ d=(ssdp_device_t *)temp->item; -+ if(d->s_addr == ip4addr) { -+ // We found the ip addr, let's check if the desc contains the searched string -+ if(regexec(®, d->serverdesc, 0, NULL, 0) == 0) { -+ ret=1; -+ } -+ break; -+ } -+ } -+ -+ ithread_mutex_unlock( &s->mutex ); -+ return(ret); -+} -+ -+ -+ - CLIENTONLY( SOCKET gSsdpReqSocket = 0; - ) - -@@ -756,6 +979,24 @@ - if( !valid_ssdp_msg( &parser->msg ) ) { - goto error_handler; - } -+ -+ // update liste of devices for each NOTIFY received -+ -+ if ( parser->msg.method == HTTPMETHOD_NOTIFY ) { -+// printf( "SSDP recvd code NOTIFY = %d from %s\n", parser->msg.method, inet_ntoa(data->dest_addr.sin_addr)); -+ LinkedList *g=&parser->msg.headers; -+ ListNode *temp = NULL; -+ http_header_t *h; -+ for (temp = ListHead(g);temp!=NULL;temp = ListNext(g,temp)) -+ { -+ h=(http_header_t *)temp->item; -+ if(strncasecmp(h->name.buf, "SERVER", h->name.length) == 0) { -+ ssdpdevices_updatelist(&GlobalSsdpDevices, data->dest_addr.sin_addr.s_addr, &h->value); -+ } -+ } -+ -+ } -+ - return 0; //////// done; thread will free 'data' - - error_handler: diff --git a/multimedia/mediatomb/slack-desc b/multimedia/mediatomb/slack-desc deleted file mode 100644 index f4326c71f6..0000000000 --- a/multimedia/mediatomb/slack-desc +++ /dev/null @@ -1,19 +0,0 @@ -# HOW TO EDIT THIS FILE: -# The "handy ruler" below makes it easier to edit a package description. -# Line up the first '|' above the ':' following the base package name, and -# the '|' on the right side marks the last column you can put a character in. -# You must make exactly 11 lines for the formatting to be correct. It's also -# customary to leave one space after the ':' except on otherwise blank lines. - - |-----handy-ruler------------------------------------------------------| -mediatomb: mediatomb (UPnP Media Server) -mediatomb: -mediatomb: MediaTomb is an open source (GPL) UPnP MediaServer with a nice -mediatomb: web user interface, it allows you to stream your digital media -mediatomb: through your home network and listen to/watch it on a variety -mediatomb: of UPnP compatible devices. -mediatomb: -mediatomb: Homepage: http://mediatomb.cc/ -mediatomb: -mediatomb: -mediatomb: |