summaryrefslogtreecommitdiff
path: root/media-sound/mt-daapd
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /media-sound/mt-daapd
reinit the tree, so we can have metadata
Diffstat (limited to 'media-sound/mt-daapd')
-rw-r--r--media-sound/mt-daapd/Manifest11
-rw-r--r--media-sound/mt-daapd/files/mt-daapd-0.2.3-sparc.patch20
-rw-r--r--media-sound/mt-daapd/files/mt-daapd-0.2.4.1-libsorder.patch140
-rw-r--r--media-sound/mt-daapd/files/mt-daapd-0.2.4.1-pidfile.patch50
-rw-r--r--media-sound/mt-daapd/files/mt-daapd-0.2.4.2-maintainer-mode.patch15
-rw-r--r--media-sound/mt-daapd/files/mt-daapd-0.2.4.2-oggvorbis.patch18
-rw-r--r--media-sound/mt-daapd/files/mt-daapd.init.245
-rw-r--r--media-sound/mt-daapd/metadata.xml11
-rw-r--r--media-sound/mt-daapd/mt-daapd-0.2.4.2.ebuild75
9 files changed, 385 insertions, 0 deletions
diff --git a/media-sound/mt-daapd/Manifest b/media-sound/mt-daapd/Manifest
new file mode 100644
index 000000000000..93d8c9da12cb
--- /dev/null
+++ b/media-sound/mt-daapd/Manifest
@@ -0,0 +1,11 @@
+AUX mt-daapd-0.2.3-sparc.patch 927 SHA256 fda7219e9cca646520debb1a1f853ea8144e6c3db7c04004cddeeb173df9645b SHA512 8f263a1a1905f9dde592dc321dc0a2ef5c4a8d9ae1e80eb7d9f04810fadca3cce38628282a0c7c27b4745a3fbce46893d834bf315013a1d5c200d64218371cce WHIRLPOOL 9b969c097b02c17ac75a327004a8188558b9469bd0adc540d39402537cb9a003a005dd031c5acca86b7190a70a3c2cdcf973a920180e3e994cdc8fd29a01151c
+AUX mt-daapd-0.2.4.1-libsorder.patch 5361 SHA256 b1895b9487279347bf488b40c26dcf8473edbd8abd61519fc7ee08181a15d78e SHA512 6333215ff44c4df2e87664b4262c733b1aa9334a0659ffc7deb1cdfe694eded6387f74fe30bb5709d38a9309b928d97c156a3ec4d165c7c3446eb428413403a9 WHIRLPOOL 468fffba83e1fc8afdfc74eff8e6a94ef7d16d34e81f3fedcb64dd1860c917104f100f89d273a329759b38443dcbd080d5a730a9ba5b1ec353583d22408f985e
+AUX mt-daapd-0.2.4.1-pidfile.patch 1908 SHA256 da3d9e7283886eadd0e8e31a5058d307ee693ca3207bafc5d6b6315fe2217659 SHA512 8dbf79b4ebe890a398b1b14b7a85d2f40fbffd8c0cabc21ee6271ca4f1c062f580fc113a8628eecff091d31fd6af54d3c408dacaa2e7433d191f31f26ad54dad WHIRLPOOL 9ffde0ff4df0848d39f2cff594301106f20337d7ff0626897215914c49c2287a98c2d0e2afd0a96ebaa65668f393fe2ae729c57260aecb7cb07c886bdb1ea669
+AUX mt-daapd-0.2.4.2-maintainer-mode.patch 405 SHA256 6b25f3b9fc395f86fec5e57a84557840d3ec03ebf510c95171d7554c23b20988 SHA512 a7fcabca95370395ba344c4f8273def2a401889e112bbe6163db324f72639a073be4406f1b812ae67d2a99fb8159c2296ee1b9a4f18a8492dcdeea0e3b4e52c7 WHIRLPOOL ca9fd586f5b68675f88a42bb8e0a15fd2e86fa82ab46784fa0d6f51a712e332ec928ce1c33d264526b8b8cc05fc51106227dde2b87c95af3aed798a3a20cf4fa
+AUX mt-daapd-0.2.4.2-oggvorbis.patch 663 SHA256 22fae7111000eb4e0d638d2d09deb006db0723f033895530c70ffcdc5f320160 SHA512 0ec74b9cdf4fde912944c95f148fc0f232249c978954e4a4ed052ca60c7ec4cfb7ae88f791bf2d8b895ce69bbd6580bfbd5e88439e09ce33a3e32de34dd47533 WHIRLPOOL 4f9af543ba296da0bf305a87967c617c1c7bccdf2f10e35fb7e22a596abe1de64e6cbcbec38ce1fa7d988bf89f91184e2dbb903887395f289c12804f1e7bd850
+AUX mt-daapd.init.2 1238 SHA256 19496ff49a64ecfb392601f3f08f31c59dabc28c3f3346fc5aa0cc1deaa2c629 SHA512 8e4649a8fcc1d3de94c872644ff0bee62cb32efc5e5f1bb2c25c1ad42e2b675524f76417b0ccff30f0574fda126b4316c512508bbe7283973ee1020d84e95df7 WHIRLPOOL ea464b97a1104923e105d332002dd0e2b60520905e6c1ce5d565a899489b2439a566e8d597a15c859e79f9507d9517867efaced278098f33484de25098b5bfee
+DIST mt-daapd-0.2.4.2.tar.gz 436513 SHA256 50d89f77bdc3fd0ca408d52cabff528224fcc7319acc3b9456db0e3164a3b6cf SHA512 1a944f31cc63355d33c7fd821d4509b8b69805ae29aa23f1307bf7602f6a62beba1f5ab5f4005387177f17c5fdf8db91b338f010b4be4ab0cd783dc72c6df60f WHIRLPOOL f33fa892ff44da38fab7a1ec60e14acf363997b6b660334cf0e2cd9e78a971c9e9f52556c58927b2520b7d0b8f7ddd4df65067a182f07067b1dbb2519b9769bc
+EBUILD mt-daapd-0.2.4.2.ebuild 1913 SHA256 a6b62607476464fcbf7a296739c022b1b0bdb4ee2a0dc55bec679bbb6f600b9b SHA512 41fda1f05096e9bc11f7a6d53e5f7b06de9b2fe9f72001090a2ca915be58f0548bb52cb49793f19d686ca8951b0aa3606c8df448b3fdaf4a61896a2ed4dfcf73 WHIRLPOOL 7a3f457523c41af110183289a7f9be1902654907e752316ac153f12de983404ed5ef646877dc365f2473190955610ab0ed4853ef69a4069698701845f3a4f363
+MISC ChangeLog 2928 SHA256 6b0891d184ea802cf5d421cceb2d82044a3b69656da04ea8abdc8142f53b4b3c SHA512 8935e8c563fe6e890834a66e78df1a1b4712c253be26d67c8f29752e6468a736aa56d59907c0f7498fd85ac94959c5cf2cc57e5341053681630d86f9b94666af WHIRLPOOL 56c7b75dbccfd7e312f7ae19d0d55d33917bacbb72442a4be14f280a965e0c957ab0b23ef68596f7f9bb08f36754490b785d81de99fe0bb9c3c0fbf11972729b
+MISC ChangeLog-2015 12760 SHA256 b31dc09f1faee98170f2b12bd72163ea0021b899d5515ecef0288fdeafc35659 SHA512 cd903850f158440aa4511e464c71a30348805d1775bafc41e00956f3b45f2d66e413e57d0ee1c44611187aba7c712549a7447ab59f9f6a8b827ffeef9d93e677 WHIRLPOOL 62dd7d7ffe94f59538c2b422aca898c955268b33ed7e58e362aa85a282715382b7d4c3905adfe8c96dab24cab31df45647b441a91ef076e79ee5a6982d67a0ab
+MISC metadata.xml 331 SHA256 370af381fb61cfe50fce8c5e40f457d8f3602046078b581119e826dd584ca6af SHA512 75a2feebcc5b6226a059c79d8519bbf79de8ff4025c43389a39cb287ff220176e99f2fa2abdcdb371ebf9d988cc8bea4ca018ed347c98e9aedfc4ef7cbead941 WHIRLPOOL 21e6521fe5356189e5e14bd4d31d504187da16480dc4030aa6c075714ee7d2c7bc85e080ab881be372d10ba114023afdf5ff19780aa5468300cda886b9b8725a
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 000000000000..482b25c13779
--- /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 000000000000..a4c5a176ada4
--- /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 000000000000..5976316e5bf2
--- /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 <file> Use configfile specified\n");
+ printf(" -p Parse playlist file\n");
++ printf(" -P <file> 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-0.2.4.2-maintainer-mode.patch b/media-sound/mt-daapd/files/mt-daapd-0.2.4.2-maintainer-mode.patch
new file mode 100644
index 000000000000..a81483db6a11
--- /dev/null
+++ b/media-sound/mt-daapd/files/mt-daapd-0.2.4.2-maintainer-mode.patch
@@ -0,0 +1,15 @@
+--- configure.in.orig 2008-07-06 23:57:08.000000000 +0200
++++ configure.in 2008-07-06 23:57:46.000000000 +0200
+@@ -17,10 +17,12 @@
+ rend_posix=true
+
+ STATIC_LIBS=no
+ CPPFLAGS="${CPPFLAGS} -g"
+
++AM_MAINTAINER_MODE
++
+ dnl fix freebsd's broken (?) libpthread
+ AC_CHECK_LIB(c_r,pthread_creat,THREAD_LIBS="-lc_r", [
+ AC_CHECK_LIB(pthread,pthread_create,THREAD_LIBS="-lpthread") ])
+ AC_SUBST(THREAD_LIBS)
+
diff --git a/media-sound/mt-daapd/files/mt-daapd-0.2.4.2-oggvorbis.patch b/media-sound/mt-daapd/files/mt-daapd-0.2.4.2-oggvorbis.patch
new file mode 100644
index 000000000000..714f34142ac2
--- /dev/null
+++ b/media-sound/mt-daapd/files/mt-daapd-0.2.4.2-oggvorbis.patch
@@ -0,0 +1,18 @@
+--- configure.in.orig 2009-03-11 08:15:14.000000000 -0500
++++ configure.in 2009-03-11 08:25:36.000000000 -0500
+@@ -63,9 +63,14 @@
+ AC_SUBST(AVAHI_LIBS)
+
+ AC_ARG_ENABLE(oggvorbis,[ --enable-oggvorbis Enable Ogg/Vorbis support],
++ [ case "${enableval}" in
++ yes)
+ use_oggvorbis=true;
+ # LDFLAGS="${LDFLAGS} -logg -lvorbis";
+- CPPFLAGS="${CPPFLAGS} -DOGGVORBIS")
++ CPPFLAGS="${CPPFLAGS} -DOGGVORBIS"
++ esac
++ ]
++ )
+
+ AM_CONDITIONAL(COND_REND_HOWL, test x$rend_howl = xtrue)
+ AM_CONDITIONAL(COND_REND_AVAHI, test x$rend_avahi = xtrue)
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 100644
index 000000000000..eacc6ea7b7e1
--- /dev/null
+++ b/media-sound/mt-daapd/files/mt-daapd.init.2
@@ -0,0 +1,45 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# 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.<name>, then it will load /etc/mt-daapd.d/<name>.conf as config
+# file.
+# Remember to give them different logs and cache directories.
+#
+# The main instance (with no <name>) uses /etc/mt-daapd.conf
+
+# Check for OpenRC/Baselayout 2 -- see bug #230917
+if [ -f /lib/librc.so -o -f /etc/init.d/sysfs -o -f /lib/rc/version ]; then
+ myservice=$RC_SVCNAME
+fi
+
+CONF="${myservice##*.}"
+if [ -n ${CONF} -a ${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 mDNSResponderPosix
+}
+
+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/metadata.xml b/media-sound/mt-daapd/metadata.xml
new file mode 100644
index 000000000000..a7b87586932a
--- /dev/null
+++ b/media-sound/mt-daapd/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sound@gentoo.org</email>
+ <name>Gentoo Sound project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">mt-daapd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/media-sound/mt-daapd/mt-daapd-0.2.4.2.ebuild b/media-sound/mt-daapd/mt-daapd-0.2.4.2.ebuild
new file mode 100644
index 000000000000..a36e59993f8e
--- /dev/null
+++ b/media-sound/mt-daapd/mt-daapd-0.2.4.2.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=2
+inherit autotools eutils
+
+DESCRIPTION="A multi-threaded implementation of Apple's DAAP server"
+HOMEPAGE="http://www.mt-daapd.org"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm ~hppa ~mips ppc sh sparc x86 ~amd64-linux ~x86-linux"
+IUSE="vorbis"
+
+RDEPEND="media-libs/libid3tag
+ sys-libs/gdbm
+ net-dns/avahi[dbus]
+ vorbis? ( media-libs/libvorbis )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ cp "${FILESDIR}"/${PN}.init.2 initd
+
+ sed -i -e 's:#USEHOWL need mDNSResponderPosix:need avahi-daemon:' initd
+
+ epatch "${FILESDIR}"/${PN}-0.2.3-sparc.patch \
+ "${FILESDIR}"/${PN}-0.2.4.1-libsorder.patch \
+ "${FILESDIR}"/${PN}-0.2.4.1-pidfile.patch \
+ "${FILESDIR}"/${P}-maintainer-mode.patch \
+ "${FILESDIR}"/${P}-oggvorbis.patch
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_enable vorbis oggvorbis) \
+ --disable-maintainer-mode \
+ --enable-avahi \
+ --disable-mdns
+}
+
+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}.<name>, and it will"
+ elog "load the data from /etc/${PN}.d/<name>.conf."
+ elog "Make sure that you have different cache directories for them."
+ einfo
+}