Here is a patch to fix the 64-bit problems in mt-daapd.
Index: patches/patch-src_daap_c
===================================================================
RCS file: patches/patch-src_daap_c
diff -N patches/patch-src_daap_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_daap_c 4 Jul 2008 14:20:30 -0000
@@ -0,0 +1,84 @@
+$OpenBSD$
+--- src/daap.c.orig Sat Apr 19 15:17:23 2008
++++ src/daap.c Fri Jul 4 10:17:01 2008
+@@ -175,7 +175,7 @@ int daap_add_mdcl(DAAP_BLOCK *root, char *tag, char *n
+
+ mdcl=daap_add_empty(root,"mdcl");
+ if(mdcl) {
+- g=(int)daap_add_string(mdcl,"mcnm",tag);
++ g = !!daap_add_string(mdcl,"mcnm",tag);
+ g = g && daap_add_string(mdcl,"mcna",name);
+ g = g && daap_add_short(mdcl,"mcty",number);
+ }
+@@ -202,7 +202,7 @@ DAAP_BLOCK *daap_response_content_codes(void) {
+
+ root=daap_add_empty(NULL,"mccr");
+ if(root) {
+- g = (int)daap_add_int(root,"mstt",200);
++ g = !!daap_add_int(root,"mstt",200);
+
+ while(current->type) {
+ g = g && daap_add_mdcl(root,current->tag,current->description,
+@@ -235,7 +235,7 @@ DAAP_BLOCK *daap_response_login(char *hostname) {
+
+ root=daap_add_empty(NULL,"mlog");
+ if(root) {
+- g = (int)daap_add_int(root,"mstt",200);
++ g = !!daap_add_int(root,"mstt",200);
+ session=config_get_next_session();
+ g = g && daap_add_int(root,"mlid",session);
+ }
+@@ -437,7 +437,7 @@ DAAP_BLOCK *daap_response_songlist(char* metaStr, char
+
+ root=daap_add_empty(NULL,"adbs");
+ if(root) {
+- g = (int)daap_add_int(root,"mstt",200);
++ g = !!daap_add_int(root,"mstt",200);
+ g = g && daap_add_char(root,"muty",0);
+ g = g && daap_add_int(root,"mtco",0);
+ g = g && daap_add_int(root,"mrco",0);
+@@ -630,7 +630,7 @@ DAAP_BLOCK *daap_response_update(int fd, int clientver
+
+ root=daap_add_empty(NULL,"mupd");
+ if(root) {
+- g = (int)daap_add_int(root,"mstt",200);
++ g = !!daap_add_int(root,"mstt",200);
+ /* theoretically, this would go up if the db changes? */
+ g = g && daap_add_int(root,"musr",db_version());
+ }
+@@ -661,7 +661,7 @@ DAAP_BLOCK *daap_response_playlists(char *name) {
+
+ root=daap_add_empty(NULL,"aply");
+ if(root) {
+- g = (int)daap_add_int(root,"mstt",200);
++ g = !!daap_add_int(root,"mstt",200);
+ g = g && daap_add_char(root,"muty",0);
+ g = g && daap_add_int(root,"mtco",1 + db_get_playlist_count());
+ g = g && daap_add_int(root,"mrco",1 + db_get_playlist_count());
+@@ -731,7 +731,7 @@ DAAP_BLOCK *daap_response_dbinfo(char *name) {
+
+ root=daap_add_empty(NULL,"avdb");
+ if(root) {
+- g = (int)daap_add_int(root,"mstt",200);
++ g = !!daap_add_int(root,"mstt",200);
+ g = g && daap_add_char(root,"muty",0);
+ g = g && daap_add_int(root,"mtco",1);
+ g = g && daap_add_int(root,"mrco",1);
+@@ -788,7 +788,7 @@ DAAP_BLOCK *daap_response_server_info(char *name, char
+ apro = 2 << 16;
+ }
+
+- g = (int)daap_add_int(root,"mstt",200); /* result */
++ g = !!daap_add_int(root,"mstt",200); /* result */
+ g = g && daap_add_int(root,"mpro",mpro); /* dmap proto ? */
+ g = g && daap_add_int(root,"apro",apro); /* daap protocol */
+
+@@ -889,7 +889,7 @@ DAAP_BLOCK *daap_response_playlist_items(unsigned int
+
+ root=daap_add_empty(NULL,"apso");
+ if(root) {
+- g = (int)daap_add_int(root,"mstt",200);
++ g = !!daap_add_int(root,"mstt",200);
+ g = g && daap_add_char(root,"muty",0);
+ g = g && daap_add_int(root,"mtco",0);
+ g = g && daap_add_int(root,"mrco",0);
Index: patches/patch-src_playlist_c
===================================================================
RCS file: patches/patch-src_playlist_c
diff -N patches/patch-src_playlist_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_playlist_c 4 Jul 2008 14:20:30 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- src/playlist.c.orig Sat Apr 19 15:31:30 2008
++++ src/playlist.c Fri Jul 4 10:18:03 2008
+@@ -352,7 +352,7 @@ int pl_eval_node(MP3FILE *pmp3, PL_NODE *pnode) {
+ retval = not ? r_arg : !r_arg;
+ break;
+ case INCLUDES:
+- r_arg=(int)strcasestr(cval,pnode->arg2.cval);
++ r_arg=!!strcasestr(cval,pnode->arg2.cval);
+ retval = not ? !r_arg : r_arg;
+ break;
+ }
Index: patches/patch-src_query_c
===================================================================
RCS file: patches/patch-src_query_c
diff -N patches/patch-src_query_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_query_c 4 Jul 2008 14:20:30 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- src/query.c.orig Sat Apr 19 15:17:23 2008
++++ src/query.c Fri Jul 4 10:18:56 2008
+@@ -577,7 +577,7 @@ static int string_query(query_node_t* query, void* tar
+ }
+
+ case qot_contains:
+- return (int) strcasestr(ts, query->right.str); /* returns null if
not found */
++ return !!strcasestr(ts, query->right.str); /* returns null if not found
*/
+
+ default:
+ DPRINTF(E_LOG,L_QRY,"Illegal query type: %d\n", query->type);
Arnaud