New daapd includes support for zeroconf and AAC (MPEG4) files. To get full MPEG-4 support, I added a DEPEND line in the faac-1.24.ebuild that checks the mpeg4 USE flag (currently used for the same purpose by another package). I have not yet tested this, but it does seem to compile. see also http://sandy.mcarthur.org/code/zeroconf/ Bug 34298
Created attachment 30346 [details] media-libs/faac-1.24.ebuild Updated FAAC with FAAD DEPEND
Created attachment 30347 [details] media-sound/daapd-0.2.2b.ebuild New daapd with MPEG-4 and zeroconf support.
This should be added because iTunes 4.5 breaks version of daapd prior to 0.2.2a
hmm. i cant get this ebuild to work: >>> md5 src_uri ;-) daapd-0.2.2b.tgz >>> Checking daapd-0.2.2b.tgz's mtime... >>> /usr/portage/media-sound/daapd/daapd-0.2.2b.ebuild has been updated; recreating WORKDIR... >>> Unpacking source... >>> Unpacking daapd-0.2.2b.tgz to /var/tmp/portage/daapd-0.2.2b/work >>> Source unpacked. makefile:24: *** first argument to `word' function must be greater than 0. Stop. !!! ERROR: media-sound/daapd-0.2.2b failed. !!! Function src_compile, Line 32, Exitcode 2 !!! (no error message)
I have made an ebuild that is hard-coded to howl-0.9.4. It disables mpeg4ip and installs libhttp-persistant and daapd. It would be nice if it blocked libhttp-persistant, but I don't know how to do that. I made this ebuild because apple broke daapd with iTunes 4.5. Have fun. Jonathan Gerlach
I have made an ebuild that is hard-coded to howl-0.9.4. It disables mpeg4ip and installs libhttp-persistant and daapd. It would be nice if it blocked libhttp-persistant, but I don't know how to do that. I made this ebuild because apple broke daapd with iTunes 4.5. Have fun. Wow, guess who forgot to post the location of said ebuild? (ME) http://thegerlach.net/portageoverlay/daapd-2.2b.tar.gz Jonathan Gerlach
Created attachment 31563 [details] daapd-0.2.2b.ebuild
This new version (0.2.2b) installs daaplib too. For me it works (even with howl 0.9.5) Rigo
Oh, and it blocks libhttp-persistant too Jonathan ;)
This actually depends on howl > 0.9.2 at the very least. Someone should file a bug to add the latest howl (0.9.5) to gentoo if this its going to be added, thanks to the need for <howl.h> which is not provided with any current howl ebuilds.
In fact... Someone seriously has to fix this as it currently breaks, even with howl 0.9.5 installed, and /usr/include/howl-0.9.2 symlinked to /usr/local/include/howl: g++ -Wall -Wno-multichar -DHOWL_ENABLE -I. -I/usr/include -I./daaplib/include -I./libhttpd/src -I/usr/include/howl-bak -c daapd.cc daapd.cc:930: error: syntax error before `(' token daapd.cc:955: error: parse error before `char' daapd.cc:960: error: parse error before `if' daapd.cc: In function `void* startServiceDiscovery(void*)': daapd.cc:981: error: `sw_discovery' undeclared (first use this function) daapd.cc:981: error: (Each undeclared identifier is reported only once for each function it appears in.) daapd.cc:981: error: `howlSessionPtr' undeclared (first use this function) daapd.cc:981: error: parse error before `)' token daapd.cc:982: error: `sw_discovery_run' undeclared (first use this function) daapd.cc: In function `int main(int, char**)': daapd.cc:1018: error: `sw_discovery' undeclared (first use this function) daapd.cc:1018: error: parse error before `=' token daapd.cc:1023: error: `howlSession' undeclared (first use this function) make: *** [daapd.o] Error 1 !!! ERROR: media-sound/daapd-0.2.2b failed. !!! Function src_compile, Line 29, Exitcode 2 !!! make failed.
Created attachment 32509 [details] ebuild + patches got things up and running. this is my first contribution, but hopefully it works. it's using the mpeg4 USE flag suggested previously but i'm not sure how to tie that to the mp4v2 library (since that's all that's needed--opportunity for another ebuild?)
Created attachment 33490 [details] cleaner version
>>> Unpacking daapd-0.2.2b.tgz to /var/tmp/portage/daapd-0.2.2b/work * Applying 0.2.2b-daapd-gentoo.patch... * Failed Patch: 0.2.2b-daapd-gentoo.patch! enti daapd # cat /var/tmp/portage/daapd-0.2.2b/temp/0.2.2b-daapd-gentoo.patch-9126.out ***** 0.2.2b-daapd-gentoo.patch ***** ===================================== PATCH COMMAND: patch -p0 -g0 < /usr/local/portage/media-sound/daapd/files/0.2.2b-daapd-gentoo.patch ===================================== patching file /var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/makefile Hunk #1 FAILED at 1. Hunk #2 FAILED at 13. 2 out of 2 hunks FAILED -- saving rejects to file /var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/makefile.rej ===================================== PATCH COMMAND: patch -p1 -g0 < /usr/local/portage/media-sound/daapd/files/0.2.2b-daapd-gentoo.patch ===================================== can't find file to patch at input line 3 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |--- files/originals/makefile.daapd 2004-06-18 14:45:17.263052896 -0400 |+++ /var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/makefile 2004-06-18 14:45:42.126273112 -0400 -------------------------- No file to patch. Skipping patch. 2 out of 2 hunks ignored ===================================== PATCH COMMAND: patch -p2 -g0 < /usr/local/portage/media-sound/daapd/files/0.2.2b-daapd-gentoo.patch ===================================== can't find file to patch at input line 3 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |--- files/originals/makefile.daapd 2004-06-18 14:45:17.263052896 -0400 |+++ /var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/makefile 2004-06-18 14:45:42.126273112 -0400 -------------------------- No file to patch. Skipping patch. 2 out of 2 hunks ignored ===================================== PATCH COMMAND: patch -p3 -g0 < /usr/local/portage/media-sound/daapd/files/0.2.2b-daapd-gentoo.patch ===================================== missing header for unified diff at line 3 of patch can't find file to patch at input line 3 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |--- files/originals/makefile.daapd 2004-06-18 14:45:17.263052896 -0400 |+++ /var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/makefile 2004-06-18 14:45:42.126273112 -0400 -------------------------- No file to patch. Skipping patch. 2 out of 2 hunks ignored ===================================== PATCH COMMAND: patch -p4 -g0 < /usr/local/portage/media-sound/daapd/files/0.2.2b-daapd-gentoo.patch ===================================== missing header for unified diff at line 3 of patch can't find file to patch at input line 3 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |--- files/originals/makefile.daapd 2004-06-18 14:45:17.263052896 -0400 |+++ /var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/makefile 2004-06-18 14:45:42.126273112 -0400 -------------------------- No file to patch. Skipping patch. 2 out of 2 hunks ignored
sorry, this is on the "cleaner version"
Created attachment 33626 [details] this one compiles howl-0.9.5 neccessary
i noticed the latest attachment puts a dependency on >=net-libs/libhttpd-persistent-1.3p-r6 >=media-libs/daaplib-0.1.1a" i was under the impression that these are now included in the daapd tarball. anyway, heres the failure i get on the latest attachment: HTTPD Library Configuration complete cd libhttpd && make make[1]: Entering directory `/var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/libhttpd' g++ -Wall -Wno-multichar -DHOWL_ENABLE -DMPEG4_ENABLE -I. -I/usr/include -I./daaplib/include -I./libhttpd/src -I/usr/include/howl -c parsemp3.cc Regenerating Makefile. .distcc[15944] ERROR: compile on localhost failed db.cc: In member function `void Database::addM4a(std::string&, stat)': db.cc:285: error: `UINT64_TO_DOUBLE' undeclared (first use this function) db.cc:285: error: (Each undeclared identifier is reported only once for each function it appears in.) make: *** [db.o] Error 1 make: *** Waiting for unfinished jobs.... .. Done. Done. make[2]: Entering directory `/var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/libhttpd' --> [src] directory make[3]: Entering directory `/var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/libhttpd/src' Regenerating Makefile. ........ Done. Done. make[4]: Entering directory `/var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/libhttpd/src' g++ -Wall -I../src -g -I../ -I/usr/include -D_OS_UNIX -c protocol.c g++ -Wall -I../src -g -I../ -I/usr/include -D_OS_UNIX -c api.c g++ -Wall -I../src -g -I../ -I/usr/include -D_OS_UNIX -c version.c g++ -Wall -I../src -g -I../ -I/usr/include -D_OS_UNIX -c ip_acl.c g++ -Wall -I../src -g -I../ -I/usr/include -D_OS_UNIX -c select.c ar rc libhttpd-persistent.a protocol.o api.o version.o ip_acl.o select.o ranlib libhttpd-persistent.a make[4]: Leaving directory `/var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/libhttpd/src' make[3]: Leaving directory `/var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/libhttpd/src' <-- [src] done make[2]: Leaving directory `/var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/libhttpd' make[1]: Leaving directory `/var/tmp/portage/daapd-0.2.2b/work/daapd-0.2.2b/libhttpd' !!! ERROR: media-sound/daapd-0.2.2b failed. !!! Function src_compile, Line 33, Exitcode 2 !!! (no error message)
just as a note, there are newer versions of daapd now: "daapd 0.2.3b (experimental multithreading support; if you experience problems, try v0.2.2c)"
Apple is holding their World-Wide Developer Conference this week, and has released Rendezvous for Linux: http://developer.apple.com/macosx/rendezvous/
the init.d file for daapd also needs to be modified so that it depends on how, no ?
my previous email was "depending on howl", obviously. apart from that, the mentioned ebuild for 0.2.2b works, and the howl update is just a bump. Those updates make them works with iTunes 4.6 (windows)
please attatch ebuilds as text/plain. Please modify the ebuild so it uses the installed libhttpd-persistent instead of the one in the daapd tarball (this should be as simple as editing a couple Makefile.am's and running the auto* tools... see media-gfx/pixie if you're not sure how to do that). Please file a separate bug for the howl update. Is this package related to the packages mentioned in bugs #56040 and #56042?
ok... just waiting on the howl version bump... I took care of the faad2 and faac packages, but we've got to wait on someone in net-misc to bump howl. Also, please test out 0.2.2c and 0.2.3b as I would like to add both of those versions to portage, but I lack the ability to test.
Created attachment 35132 [details] ebuild for version 0.2.3b I added an ebuild for version 0.2.3b which compiles fine at my mashine. I had to add #ifndef UINT64_TO_DOUBLE #define UINT64_TO_DOUBLE(a) ((double)((int64_t)(a))) #endif to "types.h" in order to compile at my mashine. There was an error in db.cc if that was not included. Further more I added blocks for libhttpd-persist and daaplib to the ebuild since they are included in the daapd-0.2.3b package.
daapd-0.2.3b.ebuild works fot me as is. It compiles and I now use it for more than one minute without any problem.
please reattatch those as plain text with the filename as the description so I can view them... thanks... Try letting it run for a long time (a few hours) to see test out thread interactions...
Created attachment 35169 [details] daapd-0.2.3b.ebuild
Created attachment 35170 [details, diff] 0.2.3b-daapd-gentoo.patch
Created attachment 35171 [details, diff] 0.2.3b-libhttpd-gentoo.patch
Created attachment 35173 [details, diff] 0.2.3b-mpeg4-gentoo.patch
Created attachment 35231 [details] new daapd init script replaced --background parameter from start-stop-daemon by "-d" parameter from daapd. Fixed also a bug: "--" was missing after executable in the init script. We should consider enabling cache by default (ex. /var/cache/daapd/default.cache) and running daapd as a non root user for safety reasons before submitting the ebuild to the cvs.
The 0.2.3b ebuild looks like it's using the included daaplib and libhttp-persistent rather than the ones already installed... can you edit it to use the system libraries instead...
hello? I'm sure someone here is interested in getting this added... I just need you to edit the ebuild anbd possibly patch the build process (Makdfiles) to use the portage-installed libs...
Is ist possible to make it work with net-misc/howl-0.9.6 ?
Nobody on the sound team has an ipod, so if you guys want this added, one of you needs to contribute the ebuild which uses the portage-installed libs rather than the ones included.
just a thought.... perhaps this whole process would speed if the Jeremey would get a nice ipod donated. I count 6 persons on the cc: list that seem to be interested, so forking $30 each would get Jeremey the test hardware he needs :-) (of course a generous offer from Apple inc. to donate one for every gentoo developer would be even better)
Created attachment 37632 [details] daapd-0.2.3b.ebuild Here you are! It uses libhttpd-persistent and daaplib from portage, i fixed a missing dependancie. Can anyone test, if it works? And, if you want, you can remove the lines I commented out.
Ok, this ebuild doesn't install libhttpd-persistent and libdaap, it doesn't need them either, i think...
daapd really has nothing to do with an ipod. its a server which allows for zeroconf discovery to serve files. it is related to itunes because itunes uses daap to discover and stream music from another machine. while there aren't a lot of clients, itunes is not the only client.
I'm using this without an iPod. So why should anybody need an iPod for testing this? You need iTunes (Mac or Win PC) or you can even test it with tunesbrowser (is it in portage? If not, the necessary bugs are submitted). If we buy an iPod, then everybody on the CC-List can have it for 2 Months a year, ok? *g*
Created attachment 37653 [details, diff] 0.2.3b-extlibs-gentoo.patch This patch is needen foor the ebuild using extern libs
Created attachment 37654 [details] daapd-0.2.3b.ebuild And this is the ebuild you want.
Philipp, did that even compile for you? I get the following: g++ -Wall -Wno-multichar -DHOWL_ENABLE -DMPEG4_ENABLE -I. -I/usr/include -I/usr/include/howl -c db.cc daapd.cc:1030: error: `sw_discovery_publish_handler' was not declared in this scope daapd.cc:1030: error: parse error before `,' token daapd.cc: In function `_sw_discovery* setupServiceDiscovery(const char*, int, bool)': daapd.cc:1057: error: `sw_rendezvous_publish_id' undeclared (first use this function) daapd.cc:1057: error: (Each undeclared identifier is reported only once for each function it appears in.) daapd.cc:1057: error: parse error before `;' token daapd.cc:1067: error: `id' undeclared (first use this function) daapd.cc:1067: error: invalid conversion from `const char*' to `unsigned int' daapd.cc:1067: error: invalid conversion from `const int' to `const char*' daapd.cc:1067: warning: converting to non-pointer type `short unsigned int' from NULL daapd.cc:1067: warning: converting to non-pointer type `unsigned int' from NULL daapd.cc:1067: error: invalid conversion from `sw_result (*)(...)' to ` sw_result (*)(_sw_discovery*, unsigned int, _sw_discovery_publish_status, void*)' make: *** [daapd.o] Error 1 make: *** Waiting for unfinished jobs.... And I don't really have the time to look into it further right now. I've committed my working version of the ebuild with KEYWORDS="-*" Please use that as your base for further edits.
In my ebuild i wrote "=net-misc/howl-0.9.5" not ">=net-misc/..." I don't know, why it doesn't work/compile with 0.9.6, but with 0.9.5 it works well.
damn ... 0.9.5 doesn't work on amd64... and my x86 box is in the middle of emerging about 200 packages (I was on vacation for 3 weeks)... I'll check it out on the x86 box soon (I hope).
ok... added to portage. thanks. Check out bug #56042 for tunesbrowser... looks like Jon was asking youu for some feedback.