diff -ur libeina-0.96.7.orig/configure.in libeina-0.96.7/configure.in --- libeina-0.96.7.orig/configure.in 2005-01-19 20:01:04.000000000 +0100 +++ libeina-0.96.7/configure.in 2005-10-13 16:50:22.000000000 +0200 @@ -4,12 +4,31 @@ AM_MAINTAINER_MODE +AC_ARG_ENABLE( + [magic], + [ --disable-magic Disables libmagic support]) + AC_CHECK_HEADER( [magic.h], - [AC_DEFINE(HAVE_MAGIC_H, YES, [Have a valid magic.h])], - [AC_MSG_ERROR([Install package libmagic-dev please])] + [ + if test "x$enable_magic" = "xyes" || test -z "$enable_magic" ; then + AC_DEFINE(HAVE_MAGIC_H, YES, [Have a valid magic.h]) + MAGIC_LIBS="-lmagic" + else + MAGIC_LIBS="" + fi + ], + [ + if test "x$enable_magic" = "xyes"; then + AC_MSG_ERROR([Install package libmagic-dev please]) + else + MAGIC_LIBS="" + fi + ] ) +AC_SUBST(MAGIC_LIBS) + dnl AC_CHECK_HEADER(magic.h, dnl [AC_MSG_ERROR([Install package libmagic-dev please])]) dnl [AC_DEFINE(HAVE_STDIO_H)], diff -ur libeina-0.96.7.orig/src/Makefile.am libeina-0.96.7/src/Makefile.am --- libeina-0.96.7.orig/src/Makefile.am 2004-09-15 17:45:20.000000000 +0200 +++ libeina-0.96.7/src/Makefile.am 2005-10-13 16:50:22.000000000 +0200 @@ -23,5 +23,5 @@ ## # -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ ## # -export-dynamic $(no_undefined) $(export_symbols) -libeina_1_0_la_LIBADD = @PACKAGE_LIBS@ $(INTLLIBS) -lmagic +libeina_1_0_la_LIBADD = @PACKAGE_LIBS@ $(INTLLIBS) @MAGIC_LIBS@ diff -ur libeina-0.96.7.orig/src/player.c libeina-0.96.7/src/player.c --- libeina-0.96.7.orig/src/player.c 2004-12-26 15:02:09.000000000 +0100 +++ libeina-0.96.7/src/player.c 2005-10-13 16:50:22.000000000 +0200 @@ -46,6 +46,8 @@ p->eos = FALSE; p->slots = NULL; p->state = EINA_STATE_STOP; + +#ifdef HAVE_MAGIC_H p->mimedetector = (magic_t) magic_open( MAGIC_MIME | MAGIC_PRESERVE_ATIME | @@ -56,7 +58,7 @@ "eos", G_CALLBACK(eina_player_trap_eos), (gpointer) p); - +#endif p->watcher_id = g_timeout_add(100, eina_player_eos_watcher, p); return p; @@ -65,8 +67,10 @@ /* Finalize player*/ void eina_player_unref(EinaPlayer *p) { GList *pl; - + +#ifdef HAVE_MAGIC_H magic_close(p->mimedetector); +#endif g_source_remove(p->watcher_id); eina_core_unref(p->core); @@ -177,27 +181,29 @@ gboolean eina_player_add(EinaPlayer *p, EinaStream *stream) { gboolean add_ok = FALSE; - gboolean is_audio, is_ogg; - const gchar *mimetype; const gchar *filename; - +#ifdef HAVE_MAGIC_H + gboolean is_audio, is_ogg; + const gchar *mimetype; +#endif if ( !eina_stream_is_local(stream) ) { /* Something on GnomeVFS/KIOSlave/... add */ return eina_player_add_file(p, stream); } else { filename = eina_stream_get_location(stream); +#ifdef HAVE_MAGIC_H mimetype = eina_priv_get_mime(p, filename); /* Stream is filesystem encoding */ if ( mimetype == NULL ) return FALSE; is_audio = g_str_has_prefix(mimetype, "audio/"); is_ogg = !g_ascii_strcasecmp("application/ogg", mimetype); - +#endif /* Filter by category */ if ( g_file_test(filename, G_FILE_TEST_IS_DIR) ) { add_ok |= eina_player_add_dir(p, stream); } - +#ifdef HAVE_MAGIC_H else if ( is_audio || is_ogg ) { add_ok |= eina_player_add_file(p, stream); } @@ -205,7 +211,10 @@ else if ( !g_ascii_strcasecmp("text/plain", mimetype) ) { add_ok |= eina_player_add_m3u(p, stream); } - +#endif + add_ok |= eina_player_add_file(p, stream); + add_ok |= eina_player_add_m3u(p, stream); + return add_ok; } } diff -ur libeina-0.96.7.orig/src/player-priv.c libeina-0.96.7/src/player-priv.c --- libeina-0.96.7.orig/src/player-priv.c 2004-12-26 15:02:09.000000000 +0100 +++ libeina-0.96.7/src/player-priv.c 2005-10-13 16:50:41.000000000 +0200 @@ -173,6 +173,7 @@ } } +#ifdef HAVE_MAGIC_H const gchar *eina_priv_get_mime(EinaPlayer *p, const gchar *filename) { const gchar *mimetype; gchar *pos; @@ -190,6 +191,8 @@ return mimetype; } +#endif + #if 0 gboolean eina_player_fadder_watcher(gpointer data) { EinaPlayer *p = data;