From: Florian Fainelli Date: Thu, 12 Aug 2010 13:58:30 +0000 (+0000) Subject: [package] add minidlna (#7685) X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=aaaa951732539458e6647d454a76fe63a3322adb [package] add minidlna (#7685) SVN-Revision: 22610 --- diff --git a/multimedia/minidlna/Makefile b/multimedia/minidlna/Makefile new file mode 100644 index 0000000000..f6018447f0 --- /dev/null +++ b/multimedia/minidlna/Makefile @@ -0,0 +1,44 @@ +# +# Copyright (C) 2010 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=minidlna +PKG_VERSION:=1.0.18 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION)_src.tar.gz +PKG_SOURCE_URL:=@SF/minidlna +PKG_MD5SUM:=8681b100242f0a2fef93cab7cdef061e +PKG_BUILD_DIR:=$(BUILD_DIR)/minidlna + +include $(INCLUDE_DIR)/package.mk + +define Package/minidlna + SECTION:=multimedia + CATEGORY:=Multimedia + TITLE:=UPnP A/V & DLNA Media Server + URL:=http://minidlna.sourceforge.net/ + DEPENDS:=+libintl +libiconv +libpthread +libexif +libjpeg \ ++libsqlite3 +libffmpeg +libid3tag +libflac +libvorbis +libuuid +endef + +define Package/minidlna/description + MiniDLNA (aka ReadyDLNA) is server software with the aim of + being fully compliant with DLNA/UPnP-AV clients. +endef + +define Package/minidlna/install + $(INSTALL_DIR) $(1)/etc + $(INSTALL_DATA) $(PKG_BUILD_DIR)/minidlna.conf $(1)/etc/ + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/minidlna $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/minidlna.init $(1)/etc/init.d/minidlna +endef + +$(eval $(call BuildPackage,minidlna)) diff --git a/multimedia/minidlna/files/minidlna.init b/multimedia/minidlna/files/minidlna.init new file mode 100644 index 0000000000..2218f4621c --- /dev/null +++ b/multimedia/minidlna/files/minidlna.init @@ -0,0 +1,15 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2010 OpenWrt.org + +START=50 +BIN=/usr/bin/minidlna +PID=/var/run/minidlna.pid +SSD=start-stop-daemon + +start() { + $SSD -p $PID -S -x $BIN -- -P $PID -R +} + +stop() { + $SSD -p $PID -K -s SIGINT +} diff --git a/multimedia/minidlna/patches/001-genconfig-checks.patch b/multimedia/minidlna/patches/001-genconfig-checks.patch new file mode 100644 index 0000000000..58233eaca8 --- /dev/null +++ b/multimedia/minidlna/patches/001-genconfig-checks.patch @@ -0,0 +1,41 @@ +--- a/genconfig.sh ++++ b/genconfig.sh +@@ -24,22 +24,22 @@ + + # Detect if there are missing headers + # NOTE: This check only works with a normal distro +-[ ! -e "/usr/include/sqlite3.h" ] && MISSING="libsqlite3 $MISSING" +-[ ! -e "/usr/include/jpeglib.h" ] && MISSING="libjpeg $MISSING" +-[ ! -e "/usr/include/libexif/exif-loader.h" ] && MISSING="libexif $MISSING" +-[ ! -e "/usr/include/id3tag.h" ] && MISSING="libid3tag $MISSING" +-[ ! -e "/usr/include/ogg/ogg.h" ] && MISSING="libogg $MISSING" +-[ ! -e "/usr/include/vorbis/codec.h" ] && MISSING="libvorbis $MISSING" +-[ ! -e "/usr/include/FLAC/metadata.h" ] && MISSING="libflac $MISSING" +-[ ! -e "/usr/include/ffmpeg/avutil.h" -a \ +- ! -e "/usr/include/libavutil/avutil.h" -a \ +- ! -e "/usr/include/ffmpeg/libavutil/avutil.h" ] && MISSING="libavutil $MISSING" +-[ ! -e "/usr/include/ffmpeg/avformat.h" -a \ +- ! -e "/usr/include/libavformat/avformat.h" -a \ +- ! -e "/usr/include/ffmpeg/libavformat/avformat.h" ] && MISSING="libavformat $MISSING" +-[ ! -e "/usr/include/ffmpeg/avcodec.h" -a \ +- ! -e "/usr/include/libavcodec/avcodec.h" -a \ +- ! -e "/usr/include/ffmpeg/libavcodec/avcodec.h" ] && MISSING="libavcodec $MISSING" ++[ ! -e "$STAGING_DIR/usr/include/sqlite3.h" ] && MISSING="libsqlite3 $MISSING" ++[ ! -e "$STAGING_DIR/usr/include/jpeglib.h" ] && MISSING="libjpeg $MISSING" ++[ ! -e "$STAGING_DIR/usr/include/libexif/exif-loader.h" ] && MISSING="libexif $MISSING" ++[ ! -e "$STAGING_DIR/usr/include/id3tag.h" ] && MISSING="libid3tag $MISSING" ++[ ! -e "$STAGING_DIR/usr/include/ogg/ogg.h" ] && MISSING="libogg $MISSING" ++[ ! -e "$STAGING_DIR/usr/include/vorbis/codec.h" ] && MISSING="libvorbis $MISSING" ++[ ! -e "$STAGING_DIR/usr/include/FLAC/metadata.h" ] && MISSING="libflac $MISSING" ++[ ! -e "$STAGING_DIR/usr/include/ffmpeg/avutil.h" -a \ ++ ! -e "$STAGING_DIR/usr/include/libavutil/avutil.h" -a \ ++ ! -e "$STAGING_DIR/usr/include/ffmpeg/libavutil/avutil.h" ] && MISSING="libavutil $MISSING" ++[ ! -e "$STAGING_DIR/usr/include/ffmpeg/avformat.h" -a \ ++ ! -e "$STAGING_DIR/usr/include/libavformat/avformat.h" -a \ ++ ! -e "$STAGING_DIR/usr/include/ffmpeg/libavformat/avformat.h" ] && MISSING="libavformat $MISSING" ++[ ! -e "$STAGING_DIR/usr/include/ffmpeg/avcodec.h" -a \ ++ ! -e "$STAGING_DIR/usr/include/libavcodec/avcodec.h" -a \ ++ ! -e "$STAGING_DIR/usr/include/ffmpeg/libavcodec/avcodec.h" ] && MISSING="libavcodec $MISSING" + if [ -n "$MISSING" ]; then + echo -e "\nERROR! Cannot continue." + echo -e "The following required libraries are either missing, or are missing development headers:\n" diff --git a/multimedia/minidlna/patches/002-makefile-tweaks.patch b/multimedia/minidlna/patches/002-makefile-tweaks.patch new file mode 100644 index 0000000000..6f8c7c5566 --- /dev/null +++ b/multimedia/minidlna/patches/002-makefile-tweaks.patch @@ -0,0 +1,45 @@ +--- a/Makefile ++++ b/Makefile +@@ -13,9 +13,21 @@ + #CFLAGS = -Wall -O -D_GNU_SOURCE -g -DDEBUG + #CFLAGS = -Wall -g -Os -D_GNU_SOURCE + CFLAGS = -Wall -g -O3 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 \ +- -I/usr/include/ffmpeg \ +- -I/usr/include/libavutil -I/usr/include/libavcodec -I/usr/include/libavformat \ +- -I/usr/include/ffmpeg/libavutil -I/usr/include/ffmpeg/libavcodec -I/usr/include/ffmpeg/libavformat ++ -I$(STAGING_DIR)/usr/include \ ++ -I$(STAGING_DIR)/usr/include/FLAC \ ++ -I$(STAGING_DIR)/usr/include/libavcodec \ ++ -I$(STAGING_DIR)/usr/include/libavformat \ ++ -I$(STAGING_DIR)/usr/include/libavutil \ ++ -I$(STAGING_DIR)/usr/include/libexif \ ++ -I$(STAGING_DIR)/usr/include/uuid \ ++ -I$(STAGING_DIR)/usr/include/vorbis \ ++ -I$(STAGING_DIR)/usr/lib/libiconv/include \ ++ -I$(STAGING_DIR)/usr/lib/libintl/include ++LDFLAGS = -L$(STAGING_DIR)/usr/lib \ ++ -L$(STAGING_DIR)/usr/lib/libintl/lib \ ++ -L$(STAGING_DIR)/usr/lib/libiconv/lib \ ++ -Wl,-rpath=$(STAGING_DIR)/usr/lib \ ++ -Wl,-rpath-link=$(STAGING_DIR)/usr/lib + #STATIC_LINKING: LDFLAGS = -static + CC = gcc + RM = rm -f +@@ -36,7 +48,7 @@ + + ALLOBJS = $(BASEOBJS) $(LNXOBJS) + +-LIBS = -lpthread -lexif -ljpeg -lsqlite3 -lavformat -lid3tag -lFLAC -lvorbis ++LIBS = -lintl -liconv -lpthread -lexif -ljpeg -lsqlite3 -lavformat -lid3tag -lFLAC -lvorbis -luuid + #STATIC_LINKING: LIBS = -lvorbis -logg -lm -lsqlite3 -lpthread -lexif -ljpeg -lFLAC -lm -lid3tag -lz -lavformat -lavutil -lavcodec -lm + + TESTUPNPDESCGENOBJS = testupnpdescgen.o upnpdescgen.o +@@ -58,7 +70,7 @@ + $(INSTALL) -d $(ETCINSTALLDIR) + $(INSTALL) --mode=0644 minidlna.conf $(ETCINSTALLDIR) + +-minidlna: $(BASEOBJS) $(LNXOBJS) $(LIBS) ++minidlna: $(BASEOBJS) $(LNXOBJS) + @echo Linking $@ + @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(BASEOBJS) $(LNXOBJS) $(LIBS) + diff --git a/multimedia/minidlna/patches/003-missing-include.patch b/multimedia/minidlna/patches/003-missing-include.patch new file mode 100644 index 0000000000..bbb6bbddf6 --- /dev/null +++ b/multimedia/minidlna/patches/003-missing-include.patch @@ -0,0 +1,10 @@ +--- a/minidlna.c ++++ b/minidlna.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/multimedia/minidlna/patches/004-configuration-tweak.patch b/multimedia/minidlna/patches/004-configuration-tweak.patch new file mode 100644 index 0000000000..e31624b537 --- /dev/null +++ b/multimedia/minidlna/patches/004-configuration-tweak.patch @@ -0,0 +1,33 @@ +--- a/minidlna.conf ++++ b/minidlna.conf +@@ -2,7 +2,7 @@ + port=8200 + + # network interface to bind to (this is the only interface that will serve files) +-#network_interface=eth0 ++network_interface=br-lan + + # set this to the directory you want scanned. + # * if have multiple directories, you can have multiple media_dir= lines +@@ -11,10 +11,10 @@ + # + "A" for audio (eg. media_dir=A,/home/jmaggard/Music) + # + "V" for video (eg. media_dir=V,/home/jmaggard/Videos) + # + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures) +-media_dir=/opt ++media_dir=/mnt + + # set this if you want to customize the name that shows up on your clients +-#friendly_name=My DLNA Server ++friendly_name=My DLNA Server + + # set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache + #db_dir=/var/cache/minidlna +@@ -25,7 +25,7 @@ + + # set this to no to disable inotify monitoring to automatically discover new files + # note: the default is yes +-inotify=yes ++inotify=no + + # set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO + enable_tivo=no