diff --git a/media-sound/mt-daapd/Manifest b/media-sound/mt-daapd/Manifest new file mode 100644 index 0000000..4640e0c --- /dev/null +++ b/media-sound/mt-daapd/Manifest @@ -0,0 +1,24 @@ +AUX mt-daapd-0.2.3-sparc.patch 927 RMD160 029a51e22054655fac678e254f427748b941ab48 SHA1 ae966d89cd736f58b06edd357fdc485fd42cab0c SHA256 fda7219e9cca646520debb1a1f853ea8144e6c3db7c04004cddeeb173df9645b +MD5 227a3d186fe7904440caec11492341db files/mt-daapd-0.2.3-sparc.patch 927 +RMD160 029a51e22054655fac678e254f427748b941ab48 files/mt-daapd-0.2.3-sparc.patch 927 +SHA256 fda7219e9cca646520debb1a1f853ea8144e6c3db7c04004cddeeb173df9645b files/mt-daapd-0.2.3-sparc.patch 927 +AUX mt-daapd-0.2.4.1-libsorder.patch 5361 RMD160 56e2ebe811145e388eae6ae105a1c9f3cebf3bff SHA1 6019e4bc865e9d0291a456d3f0c2d3d2a3536711 SHA256 b1895b9487279347bf488b40c26dcf8473edbd8abd61519fc7ee08181a15d78e +MD5 f88620839109b3d16d8b13fb90c746a0 files/mt-daapd-0.2.4.1-libsorder.patch 5361 +RMD160 56e2ebe811145e388eae6ae105a1c9f3cebf3bff files/mt-daapd-0.2.4.1-libsorder.patch 5361 +SHA256 b1895b9487279347bf488b40c26dcf8473edbd8abd61519fc7ee08181a15d78e files/mt-daapd-0.2.4.1-libsorder.patch 5361 +AUX mt-daapd-0.2.4.1-pidfile.patch 1908 RMD160 20b751d8ec53fa850eab8237830203824b8c90bd SHA1 fd6325eae8c6e7a384199d910bf6565d42d073b4 SHA256 da3d9e7283886eadd0e8e31a5058d307ee693ca3207bafc5d6b6315fe2217659 +MD5 c1130a9222dd1e2de25aeb298f9640d8 files/mt-daapd-0.2.4.1-pidfile.patch 1908 +RMD160 20b751d8ec53fa850eab8237830203824b8c90bd files/mt-daapd-0.2.4.1-pidfile.patch 1908 +SHA256 da3d9e7283886eadd0e8e31a5058d307ee693ca3207bafc5d6b6315fe2217659 files/mt-daapd-0.2.4.1-pidfile.patch 1908 +AUX mt-daapd.init.2 1200 RMD160 b5dc96a1bf7c390d9a818ea5a8018ac6c1f8a90c SHA1 96187b2ca0ac89e5a69834df87c10997ae013cf5 SHA256 6e4336639ead7da81d659a289fad0600b30b112420016fd63bf426eeae2098a1 +MD5 674db97976bcc4e34df95a17ffe8750c files/mt-daapd.init.2 1200 +RMD160 b5dc96a1bf7c390d9a818ea5a8018ac6c1f8a90c files/mt-daapd.init.2 1200 +SHA256 6e4336639ead7da81d659a289fad0600b30b112420016fd63bf426eeae2098a1 files/mt-daapd.init.2 1200 +DIST mt-daapd-svn-1586.tar.gz 1286592 RMD160 af6ddf88142d189bbb375479b544201fc3513a5d SHA1 8096a5907ceaa00de2decb63441b899802ba39de SHA256 d90e6f9e1752f0dd5a13c38403e8ff9542955f89abee8693abfb78bbe87601ea +EBUILD mt-daapd-1586.ebuild 2348 RMD160 b52577056cd62e1dd021c741190f697bbe33e929 SHA1 43f31074b08c70499b10bb09fce229bf6e0b27ea SHA256 bf704e7f769169a8e8b9132071492bd65ca1cbe8062ec7b593c5d05f50a9a6f1 +MD5 d562170ba192601266bbe418086ba40d mt-daapd-1586.ebuild 2348 +RMD160 b52577056cd62e1dd021c741190f697bbe33e929 mt-daapd-1586.ebuild 2348 +SHA256 bf704e7f769169a8e8b9132071492bd65ca1cbe8062ec7b593c5d05f50a9a6f1 mt-daapd-1586.ebuild 2348 +MD5 9dc98d9bd0d1f97bd3996d3b8ee25944 files/digest-mt-daapd-1586 256 +RMD160 7cac11d7ce204b10a91fa868de7d4bd243de0223 files/digest-mt-daapd-1586 256 +SHA256 57a17cf09f8a4ed1414b86b4c678f17920698aaaa8d0b6693c76e45b31cde2cf files/digest-mt-daapd-1586 256 diff --git a/media-sound/mt-daapd/files/digest-mt-daapd-1586 b/media-sound/mt-daapd/files/digest-mt-daapd-1586 new file mode 100644 index 0000000..16b3606 --- /dev/null +++ b/media-sound/mt-daapd/files/digest-mt-daapd-1586 @@ -0,0 +1,3 @@ +MD5 1d274d45a06492e1475e0f720175706c mt-daapd-svn-1586.tar.gz 1286592 +RMD160 af6ddf88142d189bbb375479b544201fc3513a5d mt-daapd-svn-1586.tar.gz 1286592 +SHA256 d90e6f9e1752f0dd5a13c38403e8ff9542955f89abee8693abfb78bbe87601ea mt-daapd-svn-1586.tar.gz 1286592 diff --git a/media-sound/mt-daapd/files/mt-daapd-0.2.3-sparc.patch b/media-sound/mt-daapd/files/mt-daapd-0.2.3-sparc.patch new file mode 100644 index 0000000..482b25c --- /dev/null +++ b/media-sound/mt-daapd/files/mt-daapd-0.2.3-sparc.patch @@ -0,0 +1,20 @@ +diff -Nura mt-daapd-0.2.3/src/mp3-scanner.c mt-daapd-0.2.3.sparc/src/mp3-scanner.c +--- mt-daapd-0.2.3/src/mp3-scanner.c 2005-02-05 18:22:47.000000000 -0300 ++++ mt-daapd-0.2.3.sparc/src/mp3-scanner.c 2006-01-03 16:39:50.000000000 -0300 +@@ -1663,14 +1663,14 @@ + /* now check for an XING header */ + if(strncasecmp((char*)&buffer[index+fi.xing_offset+4],"XING",4) == 0) { + DPRINTF(E_DBG,L_SCAN,"Found Xing header\n"); +- xing_flags=*((int*)&buffer[index+fi.xing_offset+4+4]); ++ memcpy (&xing_flags, &buffer[index+fi.xing_offset+4+4], sizeof(int)); + xing_flags=ntohs(xing_flags); + + DPRINTF(E_DBG,L_SCAN,"Xing Flags: %02X\n",xing_flags); + + if(xing_flags & 0x1) { + /* Frames field is valid... */ +- fi.number_of_frames=*((int*)&buffer[index+fi.xing_offset+4+8]); ++ memcpy (&fi.number_of_frames, &buffer[index+fi.xing_offset+4+8], sizeof(int)); + fi.number_of_frames=ntohs(fi.number_of_frames); + } + } diff --git a/media-sound/mt-daapd/files/mt-daapd-0.2.4.1-libsorder.patch b/media-sound/mt-daapd/files/mt-daapd-0.2.4.1-libsorder.patch new file mode 100644 index 0000000..a4c5a17 --- /dev/null +++ b/media-sound/mt-daapd/files/mt-daapd-0.2.4.1-libsorder.patch @@ -0,0 +1,140 @@ +diff -ur mt-daapd-0.2.4.1.orig/configure.in mt-daapd-0.2.4.1/configure.in +--- mt-daapd-0.2.4.1.orig/configure.in 2007-10-22 02:50:24.000000000 +0300 ++++ mt-daapd-0.2.4.1/configure.in 2007-10-28 23:31:43.000000000 +0200 +@@ -20,8 +20,9 @@ + CPPFLAGS="${CPPFLAGS} -g" + + dnl fix freebsd's broken (?) libpthread +-AC_CHECK_LIB(c_r,pthread_creat,LDFLAGS="${LDFLAGS} -lc_r", [ +- AC_CHECK_LIB(pthread,pthread_create,LDFLAGS="${LDFLAGS} -lpthread") ]) ++AC_CHECK_LIB(c_r,pthread_creat,THREAD_LIBS="-lc_r", [ ++ AC_CHECK_LIB(pthread,pthread_create,THREAD_LIBS="-lpthread") ]) ++AC_SUBST(THREAD_LIBS) + + AC_ARG_ENABLE(debug,[ --enable-debug Enable debugging features], + CPPFLAGS="${CPPFLAGS} -Wall") +@@ -35,26 +36,29 @@ + esac ]) + + AC_ARG_ENABLE(efence,[ --enable-efence Enable electric fence], +- LDFLAGS="${LDFLAGS} -lefence") ++ EFENCE_LIBS="-lefence") ++AC_SUBST(EFENCE_LIBS) + AC_ARG_ENABLE(nslu2,[ --enable-nslu2 Build for NSLU2/uNSLUng], + CFLAGS="${CFLAGS} -DNSLU2") + + AC_ARG_ENABLE(howl,[ --enable-howl Use howl 0.9.2 or later], + [ case "${enableval}" in +- yes) rend_howl=true; rend_posix=false; rend_avahi=false; LDFLAGS="${LDFLAGS} -lhowl"; ++ yes) rend_howl=true; rend_posix=false; rend_avahi=false; HOWL_LIBS="-lhowl"; + CPPFLAGS="${CPPFLAGS} -DWITH_HOWL";; + no) rend_howl=false;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-howl);; + esac ]) ++AC_SUBST(HOWL_LIBS) + + AC_ARG_ENABLE(avahi,[ --enable-avahi Use avahi 0.6 or later], + [ case "${enableval}" in + yes) PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6 ]); +- rend_avahi=true; rend_howl=false; rend_posix=false; LDFLAGS="${LDFLAGS} $AVAHI_LIBS"; ++ rend_avahi=true; rend_howl=false; rend_posix=false; + CPPFLAGS="${CPPFLAGS} $AVAHI_CFLAGS -DWITH_AVAHI";; + no) rend_avahi=false;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-avahi);; + esac ]) ++AC_SUBST(AVAHI_LIBS) + + AC_ARG_ENABLE(oggvorbis,[ --enable-oggvorbis Enable Ogg/Vorbis support], + use_oggvorbis=true; +@@ -82,7 +86,7 @@ + CPPFLAGS="$CPPFLAGS -DNOT_HAVE_SA_LEN -D_XPG4_2" + CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__ -DHAVE_BROKEN_RECVIF_NAME" + CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS" +- LDFLAGS="$LDFLAGS -lnsl -lsocket";; ++ EXTRA_LIBS="$EXTRA_LIBS -lnsl -lsocket";; + *freebsd*) + CPPFLAGS="$CPPFLAGS -DFREEBSD";; + *linux*) +@@ -98,6 +102,8 @@ + AM_CONDITIONAL(COND_REND_POSIX,false);; + esac + ++AC_SUBST(EXTRA_LIBS) ++ + dnl Checks for libraries. + AC_ARG_WITH(static-libs, + [--with-static-libs[[=DIR]] use static libs in DIR],[ +@@ -154,12 +160,13 @@ + AC_CHECK_LIB(gdbm,gdbm_open,echo "Have gdbm", echo "Must have gdbm";exit) + + if test "$STATIC_LIBS" != "no"; then +- LDFLAGS="${LDFLAGS} ${STATIC_LIBS}/libgdbm.a" ++ GDBM_LIBS="${STATIC_LIBS}/libgdbm.a" + echo "Adding static libgdbm" + else +- LDFLAGS="${LDFLAGS} -lgdbm" ++ GDBM_LIBS="-lgdbm" + echo "Adding dynamic libgdbm" + fi ++AC_SUBST(GDBM_LIBS) + + AC_CHECK_HEADERS(id3tag.h,, [ + AC_MSG_ERROR([id3tag.h not found... try --with-id3tag=dir])]) +@@ -170,12 +177,14 @@ + AC_CHECK_LIB(id3tag,id3_file_open,echo "Have id3tag",echo "Must have libid3tag";exit) + + if test "$STATIC_LIBS" != "no"; then +- LDFLAGS="${LDFLAGS} ${STATIC_LIBS}/libid3tag.a -lz" ++ ID3_LIBS="${STATIC_LIBS}/libid3tag.a -lz" + echo "Adding static libid3tag" + else +- LDFLAGS="${LDFLAGS} -lid3tag -lz" ++ ID3_LIBS="-lid3tag -lz" + echo "Adding dynamic libid3tag" + fi ++AC_SUBST([ID3_LIBS]) ++ + CFLAGS=$oldcflags + + if test x$use_oggvorbis = xtrue; then +@@ -184,22 +193,23 @@ + AC_CHECK_LIB(ogg,ogg_sync_init,echo "Have ogg",echo "Must have libogg for Ogg/Vorbis support";exit) + + if test x"$STATIC_LIBS" != x"no"; then +- LDFLAGS="${LDFLAGS} ${STATIC_LIBS}/libogg.a" ++ OGG_LIBS="${STATIC_LIBS}/libogg.a" + echo "Adding static libogg" + else +- LDFLAGS="${LDFLAGS} -logg" ++ OGG_LIBS="-logg" + echo "Adding dynamic libogg" + fi ++ AC_SUBST(OGG_LIBS) + + AC_CHECK_HEADERS(vorbis/codec.h,, [ + AC_MSG_ERROR([vorbis/codec.h not found... Must have libvorbis installed for Ogg/Vorbis support])]) + AC_CHECK_LIB(vorbis,vorbis_info_init,echo "Have vorbis",echo "Must have libvorbis for Ogg/Vorbis support";exit) + + if test x"$STATIC_LIBS" != x"no"; then +- LDFLAGS="${LDFLAGS} ${STATIC_LIBS}/libvorbis.a" ++ OGG_LIBS="${OGG_LIBS} ${STATIC_LIBS}/libvorbis.a" + echo "Adding static libvorbis" + else +- LDFLAGS="${LDFLAGS} -lvorbis" ++ OGG_LIBS="${OGG_LIBS} -lvorbis" + echo "Adding dynamic libvorbis" + fi + fi +diff -ur mt-daapd-0.2.4.1.orig/src/Makefile.am mt-daapd-0.2.4.1/src/Makefile.am +--- mt-daapd-0.2.4.1.orig/src/Makefile.am 2007-10-22 03:32:27.000000000 +0300 ++++ mt-daapd-0.2.4.1/src/Makefile.am 2007-10-28 23:31:33.000000000 +0200 +@@ -34,6 +34,9 @@ + redblack.c redblack.h dynamic-art.c dynamic-art.h query.c query.h \ + $(PRENDSRC) $(ORENDSRC) $(HRENDSRC) $(OGGVORBISSRC) $(ARENDSRC) + ++mt_daapd_LDADD = $(GDBM_LIBS) $(ID3_LIBS) $(OGG_LIBS) $(THREAD_LIBS) \ ++ $(EFENCE_LIBS) $(HOWL_LIBS) $(AVAHI_LIBS) $(EXTRA_LIBS) ++ + EXTRA_DIST = mDNS.c mDNSClientAPI.h mDNSDebug.h mDNSPosix.c \ + mDNSUNP.c mDNSPlatformFunctions.h mDNSPosix.h mDNSUNP.h \ + rend-howl.c rend-posix.c rend-osx.c db-memory.c \ diff --git a/media-sound/mt-daapd/files/mt-daapd-0.2.4.1-pidfile.patch b/media-sound/mt-daapd/files/mt-daapd-0.2.4.1-pidfile.patch new file mode 100644 index 0000000..5976316 --- /dev/null +++ b/media-sound/mt-daapd/files/mt-daapd-0.2.4.1-pidfile.patch @@ -0,0 +1,50 @@ +diff -ur mt-daapd-0.2.4.1.orig/src/main.c mt-daapd-0.2.4.1/src/main.c +--- mt-daapd-0.2.4.1.orig/src/main.c 2007-10-22 02:27:57.000000000 +0300 ++++ mt-daapd-0.2.4.1/src/main.c 2007-10-28 23:54:29.000000000 +0200 +@@ -551,6 +551,7 @@ + printf(" -m Disable mDNS\n"); + printf(" -c Use configfile specified\n"); + printf(" -p Parse playlist file\n"); ++ printf(" -P Write the PID to specified file\n"); + printf(" -f Run in foreground\n"); + printf(" -y Yes, go ahead and run as non-root user\n"); + printf("\n\n"); +@@ -708,6 +709,7 @@ + int main(int argc, char *argv[]) { + int option; + char *configfile=DEFAULT_CONFIGFILE; ++ char *pidfile=PIDFILE; + WSCONFIG ws_config; + WSHANDLE server; + int parseonly=0; +@@ -726,7 +728,7 @@ + config.use_mdns=1; + err_debuglevel=1; + +- while((option=getopt(argc,argv,"D:d:c:mpfry")) != -1) { ++ while((option=getopt(argc,argv,"D:d:c:mpP:fry")) != -1) { + switch(option) { + case 'd': + err_debuglevel=atoi(optarg); +@@ -754,6 +756,10 @@ + foreground=1; + break; + ++ case 'P': ++ pidfile=optarg; ++ break; ++ + case 'r': + reload=1; + break; +@@ -803,8 +809,8 @@ + + /* open the pidfile, so it can be written once we detach */ + if((!foreground) && (!force_non_root)) { +- if(-1 == (pid_fd = open(PIDFILE,O_CREAT | O_WRONLY | O_TRUNC, 0644))) +- DPRINTF(E_FATAL,L_MAIN,"Error opening pidfile (%s): %s\n",PIDFILE,strerror(errno)); ++ if(-1 == (pid_fd = open(pidfile,O_CREAT | O_WRONLY | O_TRUNC, 0644))) ++ DPRINTF(E_FATAL,L_MAIN,"Error opening pidfile (%s): %s\n",pidfile,strerror(errno)); + + if(0 == (pid_fp = fdopen(pid_fd, "w"))) + DPRINTF(E_FATAL,L_MAIN,"fdopen: %s\n",strerror(errno)); diff --git a/media-sound/mt-daapd/files/mt-daapd.init.2 b/media-sound/mt-daapd/files/mt-daapd.init.2 new file mode 100755 index 0000000..4f38b52 --- /dev/null +++ b/media-sound/mt-daapd/files/mt-daapd.init.2 @@ -0,0 +1,41 @@ +#!/sbin/runscript +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-sound/mt-daapd/files/mt-daapd.init.2,v 1.2 2005/10/30 17:33:17 flameeyes Exp $ +# Somehow based on init.d file shipped with mt-daapd itself. +# +# You can run multiple copies of this service just symlinking them to +# mt-daapd., then it will load /etc/mt-daapd.d/.conf as config +# file. +# Remember to give them different logs and cache directories. +# +# The main instance (with no ) uses /etc/mt-daapd.conf + +CONF="${myservice##*.}" +if [[ -n ${CONF} && ${myservice} != "mt-daapd" ]]; then + PIDFILE="/var/run/mt-daapd.${CONF}.pid" + CONFFILE="/etc/mt-daapd.d/${CONF}.conf" +else + PIDFILE="/var/run/mt-daapd.pid" + CONFFILE="/etc/mt-daapd.conf" +fi + +depend() { + need net + #USEHOWL need mDNSResponder +} + +start() { + ebegin "Starting mt-daapd DAAP server" + start-stop-daemon --start --quiet --pidfile ${PIDFILE} \ + --exec /usr/sbin/mt-daapd -- -P ${PIDFILE} -c ${CONFFILE} + eend $? +} + +stop() { + ebegin "Stopping mt-daapd DAAP server" + start-stop-daemon --stop --quiet --pidfile ${PIDFILE} --signal 2 + eend $? + + rm -f ${PIDFILE} +} diff --git a/media-sound/mt-daapd/mt-daapd-1586.ebuild b/media-sound/mt-daapd/mt-daapd-1586.ebuild new file mode 100644 index 0000000..8fcb173 --- /dev/null +++ b/media-sound/mt-daapd/mt-daapd-1586.ebuild @@ -0,0 +1,97 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-sound/mt-daapd/mt-daapd-0.2.4.1.ebuild,v 1.8 2007/12/31 03:10:40 vapier Exp $ + +inherit autotools eutils + +DESCRIPTION="A multi-threaded implementation of Apple's DAAP server" +HOMEPAGE="http://www.mt-daapd.org" +SRC_URI="http://nightlies.fireflymediaserver.org/nightlies/svn-${PV}/${PN}-svn-${PV}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 arm ~mips ppc sh sparc x86" +IUSE="avahi vorbis" + +RDEPEND="media-libs/libid3tag + sys-libs/gdbm + avahi? ( net-dns/avahi ) + !avahi? ( net-misc/mDNSResponder ) + vorbis? ( media-libs/libvorbis )" +DEPEND="${RDEPEND} + dev-util/pkgconfig" + +pkg_setup() { + local fail="Re-emerge net-dns/avahi with USE dbus." + + if use avahi && ! built_with_use net-dns/avahi dbus; then + eerror "${fail}" + die "${fail}" + fi +} + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/${PN}-0.2.3-sparc.patch + epatch "${FILESDIR}"/${PN}-0.2.4.1-libsorder.patch + epatch "${FILESDIR}"/${PN}-0.2.4.1-pidfile.patch + eautoreconf + + cp "${FILESDIR}"/${PN}.init.2 initd + + if use avahi; then + sed -i -e 's:#USEHOWL need mDNSResponder:need avahi-daemon:' initd + else + sed -i -e 's:#USEHOWL ::' initd + fi +} + +src_compile() { + local myconf + + if use avahi; then + myconf="--enable-avahi --disable-mdns" + else + myconf="--disable-avahi --enable-mdns" + fi + + econf $(use_enable vorbis oggvorbis) \ + ${myconf} + + emake || die "emake failed." +} + +src_install() { + emake DESTDIR="${D}" install || die "emake install failed." + + insinto /etc + newins contrib/mt-daapd.conf mt-daapd.conf.example + doins contrib/mt-daapd.playlist + + newinitd initd ${PN} + + keepdir /var/cache/mt-daapd /etc/mt-daapd.d + dodoc AUTHORS ChangeLog CREDITS NEWS README TODO +} + +pkg_postinst() { + einfo + elog "You have to configure your mt-daapd.conf following" + elog "/etc/mt-daapd.conf.example file." + einfo + + if use vorbis; then + einfo + elog "You need to edit you extensions list in /etc/mt-daapd.conf" + elog "if you want your mt-daapd to serve ogg files." + einfo + fi + + einfo + elog "If you want to start more than one ${PN} service, symlink" + elog "/etc/init.d/${PN} to /etc/init.d/${PN}., and it will" + elog "load the data from /etc/${PN}.d/.conf." + elog "Make sure that you have different cache directories for them." + einfo +}