From 72de0ddd99a4a13a467e445e50b50e3392e05fb1 Mon Sep 17 00:00:00 2001
From: Nicolas Thill <nico@openwrt.org>
Date: Wed, 24 Aug 2005 19:11:35 +0000
Subject: [PATCH] add mt-daapd package

SVN-Revision: 1746
---
 openwrt/package/Config.in                     |  3 +
 openwrt/package/Makefile                      |  2 +
 openwrt/package/mt-daapd/Config.in            | 32 ++++++++
 openwrt/package/mt-daapd/Makefile             | 77 +++++++++++++++++++
 openwrt/package/mt-daapd/files/mt-daapd.init  | 22 ++++++
 .../package/mt-daapd/ipkg/mt-daapd.conffiles  |  2 +
 .../package/mt-daapd/ipkg/mt-daapd.control    |  9 +++
 7 files changed, 147 insertions(+)
 create mode 100644 openwrt/package/mt-daapd/Config.in
 create mode 100644 openwrt/package/mt-daapd/Makefile
 create mode 100644 openwrt/package/mt-daapd/files/mt-daapd.init
 create mode 100644 openwrt/package/mt-daapd/ipkg/mt-daapd.conffiles
 create mode 100644 openwrt/package/mt-daapd/ipkg/mt-daapd.control

diff --git a/openwrt/package/Config.in b/openwrt/package/Config.in
index de2b763c68..43e9a334c4 100644
--- a/openwrt/package/Config.in
+++ b/openwrt/package/Config.in
@@ -157,6 +157,9 @@ source "package/uclibc++/Config.in"
 source "package/zlib/Config.in"
 source "package/irssi/Config.in"
 
+comment "Multimedia ---"
+source "package/mt-daapd/Config.in"
+
 comment "Serial communications & terminal emulation ---"
 source "package/microcom/Config.in"
 source "package/picocom/Config.in"
diff --git a/openwrt/package/Makefile b/openwrt/package/Makefile
index 08d39e1997..0f5777c055 100644
--- a/openwrt/package/Makefile
+++ b/openwrt/package/Makefile
@@ -89,6 +89,7 @@ package-$(BR2_PACKAGE_MICROPERL) += microperl
 package-$(BR2_PACKAGE_MINI_HTTPD) += mini_httpd
 package-$(BR2_PACKAGE_MINI_SENDMAIL) += mini_sendmail
 package-$(BR2_PACKAGE_MONIT) += monit
+package-$(BR2_PACKAGE_MT_DAAPD) += mt-daapd
 package-$(BR2_PACKAGE_MTD) += mtd
 package-$(BR2_PACKAGE_MYSQL) += mysql
 package-$(BR2_PACKAGE_NCURSES) += ncurses
@@ -201,6 +202,7 @@ libxml2-compile: zlib-compile
 libxslt-compile: libxml2-compile
 lighttpd-compile: openssl-compile pcre-compile
 mini_httpd-compile: matrixssl-compile
+mt-daapd-compile: howl-compile libgdbm-compile libid3tag-compile
 mysql-compile: ncurses-compile zlib-compile
 net-snmp-compile: libelf-compile
 nfs-server-compile: portmap-compile
diff --git a/openwrt/package/mt-daapd/Config.in b/openwrt/package/mt-daapd/Config.in
new file mode 100644
index 0000000000..6850c4e650
--- /dev/null
+++ b/openwrt/package/mt-daapd/Config.in
@@ -0,0 +1,32 @@
+config BR2_PACKAGE_MT_DAAPD
+	prompt "mt-daapd - A multi-threaded DAAP (Digital Audio Access Protocol) daemon"
+	tristate 
+#	default m if CONFIG_DEVEL
+	default n
+	select BR2_PACKAGE_LIBGDBM
+	select BR2_PACKAGE_LIBHOWL
+	select BR2_PACKAGE_LIBID3TAG
+	help
+	 mt-daapd is a program which acts as an iTunes (DAAP) server for Linux and 
+	 other POSIX unixes. It may eventually support Win32 as well.
+	 
+	 Some random features that it supports:
+	 
+	   * Supports the Roku SoundBridge (query/browse/index support) 
+	   * Supports periodic rescans of the database 
+	   * Can advertise shoutcast streams 
+	   * Supports password-protected shares 
+	   * Is web-configurable and managable 
+	   * Support dynamic playlists, like iTunes "Smart playlists" 
+	   * Probably other things I've forgotten 
+	 
+	 All is not perfect, however. Currently, there are several drawbacks to it:
+	 
+	   * database is indexed by inode, so all music must be on one filesystem 
+	   * browse by artist is slow on Roku, times out (with large databases ~10K songs) 
+	   * Probably other things I've forgotten 
+	 
+	 http://www.mt-daapd.org/
+	 
+	 Depends: libgdbm, libhowl, libid3tag, libpthread
+	 
diff --git a/openwrt/package/mt-daapd/Makefile b/openwrt/package/mt-daapd/Makefile
new file mode 100644
index 0000000000..98a2088c30
--- /dev/null
+++ b/openwrt/package/mt-daapd/Makefile
@@ -0,0 +1,77 @@
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=mt-daapd
+PKG_VERSION:=0.2.1.1
+PKG_RELEASE:=1
+PKG_MD5SUM:=87356d2750ad82388a58d901aa566465
+
+PKG_SOURCE_URL:=@SF/mt-daapd
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
+include $(TOPDIR)/package/rules.mk
+
+$(eval $(call PKG_template,MT_DAAPD,mt-daapd,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+
+$(PKG_BUILD_DIR)/.configured:
+	(cd $(PKG_BUILD_DIR); rm -rf config.{cache,status} ; \
+		$(TARGET_CONFIGURE_OPTS) \
+		CFLAGS="$(TARGET_CFLAGS)" \
+		CPPFLAGS="-I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include" \
+		LDFLAGS="-L$(STAGING_DIR)/usr/include -L$(STAGING_DIR)/usr/lib" \
+		ac_cv_func_setpgrp_void=yes \
+		./configure \
+			--target=$(GNU_TARGET_NAME) \
+			--host=$(GNU_TARGET_NAME) \
+			--build=$(GNU_HOST_NAME) \
+			--program-prefix="" \
+			--program-suffix="" \
+			--prefix=/usr \
+			--exec-prefix=/usr \
+			--bindir=/usr/bin \
+			--datadir=/usr/share \
+			--includedir=/usr/include \
+			--infodir=/usr/share/info \
+			--libdir=/usr/lib \
+			--libexecdir=/usr/lib \
+			--localstatedir=/var \
+			--mandir=/usr/share/man \
+			--sbindir=/usr/sbin \
+			--sysconfdir=/etc \
+			$(DISABLE_LARGEFILE) \
+			$(DISABLE_NLS) \
+			--enable-shared \
+			--disable-static \
+			--enable-mdns \
+			--enable-howl \
+			--with-howl-includes="$(STAGING_DIR)/usr/include/howl" \
+			--without-static-libs \
+	)
+	touch $@
+
+$(PKG_BUILD_DIR)/.built:
+	rm -rf $(PKG_INSTALL_DIR)
+	mkdir -p $(PKG_INSTALL_DIR)
+	$(MAKE) -C $(PKG_BUILD_DIR) \
+		DESTDIR="$(PKG_INSTALL_DIR)" \
+		all install
+	touch $@
+
+$(IPKG_MT_DAAPD):
+	install -m0755 -d $(IDIR_MT_DAAPD)/etc
+	install -m0644 $(PKG_BUILD_DIR)/contrib/mt-daapd.conf $(IDIR_MT_DAAPD)/etc/
+	install -m0644 $(PKG_BUILD_DIR)/contrib/mt-daapd.playlist $(IDIR_MT_DAAPD)/etc/
+	install -m0755 -d $(IDIR_MT_DAAPD)/etc/init.d
+	install -m0755 ./files/mt-daapd.init $(IDIR_MT_DAAPD)/etc/init.d/mt-daapd
+	install -m0755 -d $(IDIR_MT_DAAPD)/usr/share
+	cp -fpR $(PKG_INSTALL_DIR)/usr/share/mt-daapd $(IDIR_MT_DAAPD)/usr/share/
+	install -m0755 -d $(IDIR_MT_DAAPD)/usr/sbin
+	cp -fpR $(PKG_INSTALL_DIR)/usr/sbin/mt-daapd $(IDIR_MT_DAAPD)/usr/sbin/
+	$(RSTRIP) $(IDIR_MT_DAAPD)
+	$(IPKG_BUILD) $(IDIR_MT_DAAPD) $(PACKAGE_DIR)
+
diff --git a/openwrt/package/mt-daapd/files/mt-daapd.init b/openwrt/package/mt-daapd/files/mt-daapd.init
new file mode 100644
index 0000000000..2968769c78
--- /dev/null
+++ b/openwrt/package/mt-daapd/files/mt-daapd.init
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+BIN=mt-daapd
+DEFAULT=/etc/default/$BIN
+RUN_D=/var/run
+PID_F=$RUN_D/$BIN.pid
+[ -f $DEFAULT ] && . $DEFAULT
+
+case $1 in
+ start)
+  [ -d $RUN_D ] || mkdir -p $RUN_D
+  $BIN $OPTIONS
+  ;;
+ stop)
+  [ -f $PID_F ] && kill -INT $(cat $PID_F)
+  ;;
+ *)
+  echo "usage: $0 (start|stop)"
+  exit 1
+esac
+
+exit $?
diff --git a/openwrt/package/mt-daapd/ipkg/mt-daapd.conffiles b/openwrt/package/mt-daapd/ipkg/mt-daapd.conffiles
new file mode 100644
index 0000000000..2e5ee2b4d4
--- /dev/null
+++ b/openwrt/package/mt-daapd/ipkg/mt-daapd.conffiles
@@ -0,0 +1,2 @@
+/etc/mt-daapd.conf
+/etc/mt-daapd.playlist
diff --git a/openwrt/package/mt-daapd/ipkg/mt-daapd.control b/openwrt/package/mt-daapd/ipkg/mt-daapd.control
new file mode 100644
index 0000000000..9d9d5b178f
--- /dev/null
+++ b/openwrt/package/mt-daapd/ipkg/mt-daapd.control
@@ -0,0 +1,9 @@
+Package: mt-daapd
+Priority: optional
+Section: net
+Version: [TBDL]
+Architecture: [TBDL]
+Maintainer: OpenWrt Developers Team <bugs@openwrt.org>
+Source: http://openwrt.org/cgi-bin/viewcvs.cgi/openwrt/package/mt-daapd/
+Depends: libgdbm, libhowl, libid3tag, libpthread
+Description: a multi-threaded DAAP (Digital Audio Access Protocol) daemon
-- 
2.30.2