<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.audio.cmus.devel">
    <title>gmane.comp.audio.cmus.devel</title>
    <link>http://blog.gmane.org/gmane.comp.audio.cmus.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/632"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/631"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/630"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/629"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/628"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/627"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/626"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/625"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/624"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/623"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/622"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/621"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/620"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/619"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/618"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/617"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/616"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/615"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/614"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/613"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/632">
    <title>[PATCH] waveout: fix compilation warning / error</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/632</link>
    <description>&lt;pre&gt;For me this fixes:
waveout.c:283: warning: implicit declaration of function 'snprintf'

But for the reporter, the warning is an error (possibly newer version of
toolchain?):
waveout.c:283:3: error: implicit declaration of function 'snprintf'

The &amp;lt;stdio.h&amp;gt; header is included after the &amp;lt;windows.h&amp;gt; header, as
suggested e.g. here:
http://en.wikibooks.org/wiki/Windows_Programming/windows.h

Reported-by: Semen &amp;lt;semen.starykh&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 waveout.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/waveout.c b/waveout.c
index 8813c3f..43bf20e 100644
--- a/waveout.c
+++ b/waveout.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -27,6 +27,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #define WIN32_LEAN_AND_MEAN
 #include &amp;lt;windows.h&amp;gt;
 #include &amp;lt;mmsystem.h&amp;gt;
+#include &amp;lt;stdio.h&amp;gt;
 
 static HWAVEOUT wave_out;
 static sample_format_t waveout_sf;
&lt;/pre&gt;</description>
    <dc:creator>Johannes Weißl</dc:creator>
    <dc:date>2012-05-23T20:54:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/631">
    <title>Re: Compiling cmus on Windows</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/631</link>
    <description>&lt;pre&gt;Hi Semen,

I'll reply inline:

On Wed, May 23, 2012 at 11:57:18PM +0700, Semen wrote:

It has been tested, also by me. I tried it again, and for me this error
(implicit declaration of function 'snprintf') is a warning. Maybe your
Cygwin toolchain is newer?

Anyway, the warning (and possibly the error) disappear if &amp;lt;stdio.h&amp;gt; is
included. I will submit a patch in a follow-up mail. Thanks for
reporting!

Grettings,
Johannes

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/

&lt;/pre&gt;</description>
    <dc:creator>Johannes Weißl</dc:creator>
    <dc:date>2012-05-23T20:27:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/630">
    <title>Re: [PATCH 4/4] configure: add better check for ffmpeg</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/630</link>
    <description>&lt;pre&gt;
Thanks! Lets see if it causes problems for people, and if not, we might
be able to turn CONFIG_FFMPEG back to "a" (automatic detection) again :-).

Johannes

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/&lt;/pre&gt;</description>
    <dc:creator>Johannes Weißl</dc:creator>
    <dc:date>2012-05-23T18:35:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/629">
    <title>Compiling cmus on Windows</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/629</link>
    <description>&lt;pre&gt;Hi.
I tried to install cmus from the pu branch on Windows (Cygwin), but to no
avail.

$ ./configure CONFIG_CDDB=n CONFIG_CDIO=n CONFIG_DISCID=n CONFIG_MODPLUG=n
CONFIG_MIKMOD=n CONFIG_MPC=n CONFIG_MP4=n CONFIG_AAC=n CONFIG_FFMPEG=n
CONFIG_CUE=n CONFIG_ROAR=n CONFIG_ALSA=n CONFIG_ARTS=n CONFIG_OSS=n
CONFIG_SUN=n
checking for program gcc... /usr/bin/gcc
checking for program gcc... /usr/bin/gcc
checking for CFLAGS -std=gnu99 -pipe -Wall -Wshadow -Wcast-align
-Wpointer-arith -Wwrite-strings -Wundef -Wmissing-prototypes
-Wredundant-decls -Wextra -Wno-sign-compare -Wformat-security... yes
checking for CFLAGS -Wdeclaration-after-statement... yes
checking for CFLAGS -Wold-style-definition... yes
checking for CFLAGS -Wno-pointer-sign... yes
checking for CFLAGS -Werror-implicit-function-declaration... yes
checking for CFLAGS -Wno-unused-parameter... yes
checking if CC can generate dependency information... yes
checking byte order... little-endian
checking for DL_LIBS (-ldl -Wl,--export-dynamic)... yes
checking for PTHREAD_LIBS (-lpthread)... yes
checking for realtime scheduling... yes
checking for NCURSES_LIBS (-lncursesw)... yes
checking for working ncurses setup... yes
checking for function resizeterm... yes
checking for function use_default_colors... yes
checking for ICONV_LIBS (-liconv)... yes
taking iconv from libiconv
checking for working iconv... yes
checking for header &amp;lt;byteswap.h&amp;gt;... yes
checking for function strdup... yes
checking for function strndup... yes
checking for program pkg-config... /usr/bin/pkg-config
checking for FLAC_LIBS (pkg-config)... -lFLAC -lm
checking for FLAC_CFLAGS (pkg-config)... -I/usr/include/FLAC
checking for MAD_LIBS (pkg-config)... -lmad
checking for MAD_CFLAGS (pkg-config)...
checking for VORBIS_LIBS (pkg-config)... -lvorbisfile -lvorbis -lm -logg
checking for VORBIS_CFLAGS (pkg-config)...
checking for WAVPACK_LIBS (pkg-config)... -lwavpack -liconv
checking for WAVPACK_CFLAGS (pkg-config)...
checking for PULSE_LIBS (pkg-config)... -lpulse -lpulsecommon-1.1
checking for PULSE_CFLAGS (pkg-config)... -D_REENTRANT
checking for AO_LIBS (pkg-config)... -lao -lpthread -lwinmm
checking for AO_CFLAGS (pkg-config)...
checking for WAVEOUT_LIBS (-lwinmm)... yes
updating config.mk

$ make
   CC     ape.o
   CC     browser.o
   CC     buffer.o
   CC     cache.o
   CC     cmdline.o
   CC     cmus.o
   CC     command_mode.o
   CC     comment.o
   CC     channelmap.o
   CC     convert.lo
convert.c:1:0: warning: -fPIC ignored for target (all code is position
independent)
   CC     debug.o
   CC     discid.o
   CC     editable.o
   CC     expr.o
   CC     filters.o
   CC     format_print.o
   CC     gbuf.o
   CC     glob.o
   CC     help.o
   CC     history.o
   CC     http.o
   CC     id3.o
   GEN    .version
   CC     input.o
   CC     job.o
   CC     keys.o
   CC     keyval.o
   CC     lib.o
   CC     load_dir.o
   CC     locking.o
   CC     mergesort.o
   CC     misc.o
   CC     options.o
   CC     output.o
   CC     pcm.o
   CC     pl.o
   CC     play_queue.o
   CC     player.o
   CC     rbtree.o
   CC     read_wrapper.o
   CC     server.o
   CC     search.o
   CC     search_mode.o
   CC     spawn.o
   CC     tabexp.o
   CC     tabexp_file.o
   CC     track.o
   CC     track_info.o
   CC     tree.o
   CC     u_collate.o
   CC     uchar.o
   CC     ui_curses.o
   CC     window.o
   CC     worker.o
   CC     xstrjoin.o
   CC     file.o
   CC     path.o
   CC     prog.o
   CC     xmalloc.o
   LD     cmus
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld:
warning: --export-dynamic is not supported for PE targets, did you mean
--export-all-symbols?
   CC     main.o
   LD     cmus-remote
   CC     flac.lo
flac.c:1:0: warning: -fPIC ignored for target (all code is position
independent)
gcc -shared -o cmus.exe -Wl,--out-implib=libcmus.a
-Wl,--base-file,cmus.base \
        -Wl,--export-all-symbols -Wl,--no-whole-archive ape.o browser.o
buffer.o cache.o cmdline.o cmus.o command_mode.o comment.o channelmap.o
convert.lo debug.o discid.o editable.o expr.o filters.o format_print.o
gbuf.o glob.o help.o history.o http.o id3.o input.o job.o keys.o keyval.o
lib.o load_dir.o locking.o mergesort.o misc.o options.o output.o pcm.o pl.o
play_queue.o player.o rbtree.o read_wrapper.o server.o search.o
search_mode.o spawn.o tabexp.o tabexp_file.o track.o track_info.o tree.o
u_collate.o uchar.o ui_curses.o window.o worker.o xstrjoin.o file.o path.o
prog.o xmalloc.o -lpthread -lncursesw -liconv -ldl -Wl,--export-dynamic
-lm
Creating library file: libcmus.a
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld:
warning: --export-dynamic is not supported for PE targets, did you mean
--export-all-symbols?
dlltool --output-def cmus.def --dllname cmus.exe --export-all-symbols ape.o
browser.o buffer.o cache.o cmdline.o cmus.o command_mode.o comment.o
channelmap.o convert.lo debug.o discid.o editable.o expr.o filters.o
format_print.o gbuf.o glob.o help.o history.o http.o id3.o input.o job.o
keys.o keyval.o lib.o load_dir.o locking.o mergesort.o misc.o options.o
output.o pcm.o pl.o play_queue.o player.o rbtree.o read_wrapper.o server.o
search.o search_mode.o spawn.o tabexp.o tabexp_file.o track.o track_info.o
tree.o u_collate.o uchar.o ui_curses.o window.o worker.o xstrjoin.o file.o
path.o prog.o xmalloc.o
dlltool --base-file cmus.base --dllname cmus.exe --input-def cmus.def
--output-exp cmus.exp
gcc -o cmus.exe -Wl,cmus.exp ape.o browser.o buffer.o cache.o cmdline.o
cmus.o command_mode.o comment.o channelmap.o convert.lo debug.o discid.o
editable.o expr.o filters.o format_print.o gbuf.o glob.o help.o history.o
http.o id3.o input.o job.o keys.o keyval.o lib.o load_dir.o locking.o
mergesort.o misc.o options.o output.o pcm.o pl.o play_queue.o player.o
rbtree.o read_wrapper.o server.o search.o search_mode.o spawn.o tabexp.o
tabexp_file.o track.o track_info.o tree.o u_collate.o uchar.o ui_curses.o
window.o worker.o xstrjoin.o file.o path.o prog.o xmalloc.o -lpthread
-lncursesw -liconv -ldl -Wl,--export-dynamic   -lm
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld:
warning: --export-dynamic is not supported for PE targets, did you mean
--export-all-symbols?
   LD     flac.so
   CC     mad.lo
mad.c:1:0: warning: -fPIC ignored for target (all code is position
independent)
   CC     nomad.lo
nomad.c:1:0: warning: -fPIC ignored for target (all code is position
independent)
   LD     mad.so
   CC     vorbis.lo
vorbis.c:1:0: warning: -fPIC ignored for target (all code is position
independent)
   LD     vorbis.so
   CC     wavpack.lo
wavpack.c:1:0: warning: -fPIC ignored for target (all code is position
independent)
   LD     wavpack.so
   CC     wav.lo
wav.c:1:0: warning: -fPIC ignored for target (all code is position
independent)
   LD     wav.so
   CC     pulse.lo
pulse.c:1:0: warning: -fPIC ignored for target (all code is position
independent)
   LD     pulse.so
   CC     ao.lo
ao.c:1:0: warning: -fPIC ignored for target (all code is position
independent)
   LD     ao.so
   CC     waveout.lo
waveout.c:1:0: warning: -fPIC ignored for target (all code is position
independent)
waveout.c: In function 'waveout_get_option':
waveout.c:283:3: error: implicit declaration of function 'snprintf'
waveout.c:283:3: warning: incompatible implicit declaration of built-in
function 'snprintf'
scripts/lib.mk:76: recipe for target `waveout.lo' failed
make: *** [waveout.lo] Error 1

Is this possible to run cmus on Windows? Was it tested?
What compiler/parameters should I use?
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/&lt;/pre&gt;</description>
    <dc:creator>Semen</dc:creator>
    <dc:date>2012-05-23T16:57:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/628">
    <title>Re: [PATCH 4/4] configure: add better check for ffmpeg</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/628</link>
    <description>&lt;pre&gt;
OK — I think there are just 2 different views on how the responsibility should
be split between configure and make. 


I have no hard feelings about this, so since you have a good patch — let it go
in! Merged. Thanks a lot, once again.

Gregory


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/&lt;/pre&gt;</description>
    <dc:creator>Gregory Petrosyan</dc:creator>
    <dc:date>2012-05-22T14:32:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/627">
    <title>[PATCH] configure: add better check for ffmpeg</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/627</link>
    <description>&lt;pre&gt;It turns out the FFmpeg API is so unstable (especially now that there
are two projects) that we can't guarantee the compilation of the ffmpeg
plugin. So the best option is to let ./configure test the actual
successful build as test.
---
 cdio.c         |    4 ++++
 command_mode.c |    2 ++
 configure      |   20 +++++++++++++++++++-
 convert.c      |    2 ++
 debug.h        |    2 ++
 ffmpeg.c       |    2 ++
 input.c        |    2 ++
 job.c          |    2 ++
 modplug.c      |    2 ++
 mp4.c          |    2 ++
 mpc.c          |    2 ++
 options.c      |    2 ++
 output.c       |    2 ++
 ui_curses.c    |    2 ++
 utils.h        |    2 ++
 vorbis.c       |    2 ++
 xmalloc.h      |    2 ++
 17 files changed, 53 insertions(+), 1 deletion(-)

diff --git a/cdio.c b/cdio.c
index 70a79a5..e437183 100644
--- a/cdio.c
+++ b/cdio.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -38,7 +38,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;fcntl.h&amp;gt;
 
 #undef HAVE_CDDB
+
+#ifdef HAVE_CONFIG
 #include "config/cdio.h"
+#endif
+
 #ifdef HAVE_CDDB
 #include "http.h"
 #include "xstrjoin.h"
diff --git a/command_mode.c b/command_mode.c
index 763f211..cc6ff08 100644
--- a/command_mode.c
+++ b/command_mode.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -44,7 +44,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "list.h"
 #include "debug.h"
 #include "load_dir.h"
+#ifdef HAVE_CONFIG
 #include "config/datadir.h"
+#endif
 #include "help.h"
 #include "op.h"
 
diff --git a/configure b/configure
index 83e9ce4..9791b64 100755
--- a/configure
+++ b/configure
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -354,7 +354,23 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; check_ffmpeg()
 else
 check_header "ffmpeg/avcodec.h" $FFMPEG_CFLAGS || return $?
 fi
-return 0
+# ffmpeg api changes so frequently that it is best to compile the module
+libs="$LDDLFLAGS $FFMPEG_LIBS"
+cflags="$SOFLAGS $FFMPEG_CFLAGS"
+if test "$HAVE_FFMPEG_AVCODEC_H" = y
+then
+cflags="$cflags -DHAVE_FFMPEG_AVCODEC_H"
+fi
+topdir=`dirname "$0"`
+ffmpeg_code=`cat "$topdir"/ffmpeg.c | sed 's/\\\n//g'`
+msg_checking "for successful build of ffmpeg.c"
+if try_compile_link "$ffmpeg_code" $cflags $libs
+then
+msg_result yes
+return 0
+fi
+msg_result no
+return 1
 }
 
 check_string_function()
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -516,6 +532,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; config_header config/iconv.h HAVE_ICONV
 config_header config/xmalloc.h HAVE_STRDUP HAVE_STRNDUP
 config_header config/cue.h CONFIG_CUE
 
+CFLAGS="${CFLAGS} -DHAVE_CONFIG"
+
 makefile_vars bindir datadir libdir mandir exampledir
 makefile_vars CONFIG_CDIO CONFIG_FLAC CONFIG_MAD CONFIG_MIKMOD CONFIG_MODPLUG CONFIG_MPC CONFIG_VORBIS CONFIG_WAVPACK CONFIG_WAV CONFIG_MP4 CONFIG_AAC CONFIG_FFMPEG CONFIG_CUE
 makefile_vars CONFIG_ROAR CONFIG_PULSE CONFIG_ALSA CONFIG_AO CONFIG_ARTS CONFIG_OSS CONFIG_SUN CONFIG_WAVEOUT
diff --git a/convert.c b/convert.c
index 3c78e93..7b18ab3 100644
--- a/convert.c
+++ b/convert.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -18,7 +18,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 #include "convert.h"
 #include "xmalloc.h"
+#ifdef HAVE_CONFIG
 #include "config/iconv.h"
+#endif
 
 #ifdef HAVE_ICONV
 #include &amp;lt;iconv.h&amp;gt;
diff --git a/debug.h b/debug.h
index 5cd6b64..c5c7b7e 100644
--- a/debug.h
+++ b/debug.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -20,7 +20,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #define DEBUG_H
 
 #include "compiler.h"
+#ifdef HAVE_CONFIG
 #include "config/debug.h"
+#endif
 
 #include &amp;lt;errno.h&amp;gt;
 #include &amp;lt;stdint.h&amp;gt;
diff --git a/ffmpeg.c b/ffmpeg.c
index c14b8e8..bd73f49 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -21,7 +21,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "debug.h"
 #include "utils.h"
 #include "comment.h"
+#ifdef HAVE_CONFIG
 #include "config/ffmpeg.h"
+#endif
 
 #include &amp;lt;stdio.h&amp;gt;
 #ifdef HAVE_FFMPEG_AVCODEC_H
diff --git a/input.c b/input.c
index 39a9a3b..737c2aa 100644
--- a/input.c
+++ b/input.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -31,7 +31,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "misc.h"
 #include "debug.h"
 #include "ui_curses.h"
+#ifdef HAVE_CONFIG
 #include "config/libdir.h"
+#endif
 
 #include &amp;lt;unistd.h&amp;gt;
 #include &amp;lt;string.h&amp;gt;
diff --git a/job.c b/job.c
index a44e9f4..2582bd5 100644
--- a/job.c
+++ b/job.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -33,7 +33,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "player.h"
 #include "discid.h"
 #include "xstrjoin.h"
+#ifdef HAVE_CONFIG
 #include "config/cue.h"
+#endif
 #ifdef CONFIG_CUE
 #include "cue_utils.h"
 #endif
diff --git a/modplug.c b/modplug.c
index 6c01c1c..6bdda8d 100644
--- a/modplug.c
+++ b/modplug.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -20,7 +20,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "file.h"
 #include "xmalloc.h"
 #include "comment.h"
+#ifdef HAVE_CONFIG
 #include "config/modplug.h"
+#endif
 
 #include &amp;lt;modplug.h&amp;gt;
 #include &amp;lt;sys/types.h&amp;gt;
diff --git a/mp4.c b/mp4.c
index e8535aa..5bc7fa5 100644
--- a/mp4.c
+++ b/mp4.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -20,7 +20,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "xmalloc.h"
 #include "debug.h"
 #include "file.h"
+#ifdef HAVE_CONFIG
 #include "config/mp4.h"
+#endif
 #include "comment.h"
 #include "aac.h"
 
diff --git a/mpc.c b/mpc.c
index 9b7628e..37793d5 100644
--- a/mpc.c
+++ b/mpc.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -25,7 +25,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "xmalloc.h"
 #include "read_wrapper.h"
 
+#ifdef HAVE_CONFIG
 #include "config/mpc.h"
+#endif
 
 #if MPC_SV8
 #include &amp;lt;mpc/mpcdec.h&amp;gt;
diff --git a/options.c b/options.c
index d7d6c23..8325c05 100644
--- a/options.c
+++ b/options.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -35,7 +35,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "prog.h"
 #include "output.h"
 #include "input.h"
+#ifdef HAVE_CONFIG
 #include "config/datadir.h"
+#endif
 #include "track_info.h"
 #include "cache.h"
 #include "debug.h"
diff --git a/output.c b/output.c
index e94f279..1a5740d 100644
--- a/output.c
+++ b/output.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -26,7 +26,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "debug.h"
 #include "ui_curses.h"
 #include "options.h"
+#ifdef HAVE_CONFIG
 #include "config/libdir.h"
+#endif
 
 #include &amp;lt;string.h&amp;gt;
 #include &amp;lt;strings.h&amp;gt;
diff --git a/ui_curses.c b/ui_curses.c
index 2ef05f2..5b575f6 100644
--- a/ui_curses.c
+++ b/ui_curses.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -48,8 +48,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "file.h"
 #include "path.h"
 #include "mixer.h"
+#ifdef HAVE_CONFIG
 #include "config/curses.h"
 #include "config/iconv.h"
+#endif
 
 #include &amp;lt;unistd.h&amp;gt;
 #include &amp;lt;stdlib.h&amp;gt;
diff --git a/utils.h b/utils.h
index d3aa75f..d1bad57 100644
--- a/utils.h
+++ b/utils.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -19,7 +19,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #ifndef _UTILS_H
 #define _UTILS_H
 
+#ifdef HAVE_CONFIG
 #include "config/utils.h"
+#endif
 
 #include &amp;lt;stdlib.h&amp;gt;
 #include &amp;lt;string.h&amp;gt;
diff --git a/vorbis.c b/vorbis.c
index 2b69a2a..74f28ce 100644
--- a/vorbis.c
+++ b/vorbis.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -20,7 +20,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "xmalloc.h"
 #include "read_wrapper.h"
 #include "debug.h"
+#ifdef HAVE_CONFIG
 #include "config/tremor.h"
+#endif
 #include "comment.h"
 
 #ifdef CONFIG_TREMOR
diff --git a/xmalloc.h b/xmalloc.h
index 1974e08..2b8ef94 100644
--- a/xmalloc.h
+++ b/xmalloc.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -20,7 +20,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #define _XMALLOC_H
 
 #include "compiler.h"
+#ifdef HAVE_CONFIG
 #include "config/xmalloc.h"
+#endif
 
 #include &amp;lt;stdlib.h&amp;gt;
 #include &amp;lt;string.h&amp;gt;
&lt;/pre&gt;</description>
    <dc:creator>Johannes Weißl</dc:creator>
    <dc:date>2012-05-20T23:23:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/626">
    <title>Re: detachable cmus / "daemon" mode</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/626</link>
    <description>&lt;pre&gt;Hi Semen,

as Jason already wrote, this can be accomplished with GNU screen. It is
fairly often requested, so I wrote a wiki entry how to do it:

http://cmus.sourceforge.net/wiki/doku.php?id=detachable_cmus

Tell us if you need more help!

Greetings,
Johannes

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/

&lt;/pre&gt;</description>
    <dc:creator>Johannes Weißl</dc:creator>
    <dc:date>2012-05-20T23:23:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/625">
    <title>Re: [PATCH 4/4] configure: add better check for ffmpeg</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/625</link>
    <description>&lt;pre&gt;Hi Gregory,

On Fri, May 18, 2012 at 11:52:21AM +0400, Gregory Petrosyan wrote:

Hmm, I think that is the wrong approach. It goes against the idea of
./configure &amp;amp;&amp;amp; make: configure should find out what and how to build,
and make should just execute those rules. And if the only way
configure can find out if a small part of the program can be built is by
compiling/linking it, then so be it.

I attached (separate mail) a new patch, which does the proposed
encapsulation of config-headers. Tell me what you think :-).


Thanks!


Johannes

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/&lt;/pre&gt;</description>
    <dc:creator>Johannes Weißl</dc:creator>
    <dc:date>2012-05-20T23:20:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/624">
    <title>Re: cmus-devel Digest, Vol 71, Issue 8</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/624</link>
    <description>&lt;pre&gt;

Ahh, running in the background. You can achieve this through
programs such as GNU Screen:

https://en.wikipedia.org/wiki/GNU_Screen

You can control cmus through cmus-remote, or bring the interface
back up with screen.

           - Jason

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/

&lt;/pre&gt;</description>
    <dc:creator>Jason Woofenden</dc:creator>
    <dc:date>2012-05-20T18:05:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/623">
    <title>Re: cmus-devel Digest, Vol 71, Issue 8</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/623</link>
    <description>&lt;pre&gt;I mean go to work in the background and return to the shell (When you enter
"cmus" command in a shell interface returns). I've seen this behavior in
the MOC player (http://moc.daper.net/). I know that there are some native
linux terminal techniques for this purpose. If you consider this request
stupid, then sorry for the time taken away.

2012/5/20 &amp;lt;cmus-devel-request&amp;lt; at &amp;gt;lists.sourceforge.net&amp;gt;

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/&lt;/pre&gt;</description>
    <dc:creator>Semen</dc:creator>
    <dc:date>2012-05-20T15:52:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/622">
    <title>Re: Feature request</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/622</link>
    <description>&lt;pre&gt;
Are you serious?

If so what do you mean?

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/

&lt;/pre&gt;</description>
    <dc:creator>Jason Woofenden</dc:creator>
    <dc:date>2012-05-20T07:34:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/621">
    <title>Feature request</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/621</link>
    <description>&lt;pre&gt;Hi.
Could you add an ability to quit from cmus without playback stopping?
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/&lt;/pre&gt;</description>
    <dc:creator>Semen</dc:creator>
    <dc:date>2012-05-20T06:33:05</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/620">
    <title>Re: Cmus and .m3u files</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/620</link>
    <description>&lt;pre&gt;
I've posted a patch that implements this behaviour; the patch is
pushed to the pu branch of the git repo. Thanks for the suggestion!

       Gregory

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/&lt;/pre&gt;</description>
    <dc:creator>Gregory Petrosyan</dc:creator>
    <dc:date>2012-05-18T08:33:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/619">
    <title>Re: [PATCH 4/4] configure: add better check for ffmpeg</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/619</link>
    <description>&lt;pre&gt;
Maybe we should just not abort the 'make' when plugin compilation fails, and
just report it to user? This sounds a lot less intrusive and more general to
me.

Merged the first 3 patches, thanks a lot!

        Gregory

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/

&lt;/pre&gt;</description>
    <dc:creator>Gregory Petrosyan</dc:creator>
    <dc:date>2012-05-18T07:52:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/618">
    <title>Re: Cmus and .m3u files</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/618</link>
    <description>&lt;pre&gt;
Well, since the subject line fits something that's been on my mind, but didn't really feel strongly enough about to start a disscussion, maybe I'll just toss it in here and make the thread possibly useful anyway... ;)

I was thinking that it might be nice, when viewing the contents of a playlist file in the file browser screen, if the flow of mc-style navigation could be maintained by adding a ".." (or something different to distinguish from an actual directory listing) at the top of the list so that hitting "Home, Enter" takes you back to the parent directory. I always seem to do this before remembering that it doesn't work, and it's not immediately obvious that you need to hit Backspace if you're not familiar with the program yet. Does anyone else think this makes sense?

&lt;/pre&gt;</description>
    <dc:creator>yawfle</dc:creator>
    <dc:date>2012-05-16T21:01:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/617">
    <title>Re: Cmus and .m3u files</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/617</link>
    <description>&lt;pre&gt;Hi,
Somehow I completely missed this in the man page. The real problem
though, and what caused me to send a completely pointless email
requesting a feature that was already in place was a mistyped rm
command. It's really hard to find a use an m3u if you have deleted it
before attempting to use it :)
Thanks
Storm
&lt;/pre&gt;</description>
    <dc:creator>Storm Dragon</dc:creator>
    <dc:date>2012-05-16T16:12:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/616">
    <title>Re: Cmus and .m3u files</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/616</link>
    <description>&lt;pre&gt;
It does support m3u. It's even documented in the man page.

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/

&lt;/pre&gt;</description>
    <dc:creator>gt</dc:creator>
    <dc:date>2012-05-16T04:45:24</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/615">
    <title>Re: [PATCH 4/4] configure: add better check for ffmpeg</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/615</link>
    <description>&lt;pre&gt;
As it turns out this works only if cmus has been configured before, so
consider this patch (not the others) void. The only solution I can think
of is this:

We encapsulate every '#include "config/..."' with a "#if HAVE_CONFIG"
conditional (this is not that uncommon, with autoconf you do exactly
the same). What do you think?


Johannes

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/&lt;/pre&gt;</description>
    <dc:creator>Johannes Weißl</dc:creator>
    <dc:date>2012-05-15T19:49:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/614">
    <title>[PATCH 3/4] ffmpeg: fix compile error (rev 518d8d4)</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/614</link>
    <description>&lt;pre&gt;ffmpeg.c:200:3: error: implicit declaration of function 'avformat_find_stream_info'

with ffmpeg revision 518d8d436566e6260d73346cd999ff69eeb94e49
---
 ffmpeg.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index 58291f9..c14b8e8 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -194,7 +194,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int ffmpeg_open(struct input_plugin_data *ip_data)
 }
 
 do {
-#if (LIBAVFORMAT_VERSION_INT &amp;lt; ((53&amp;lt;&amp;lt;16)+(5&amp;lt;&amp;lt;8)+0))
+#if (LIBAVFORMAT_VERSION_INT &amp;lt;= ((53&amp;lt;&amp;lt;16)+(5&amp;lt;&amp;lt;8)+0))
 err = av_find_stream_info(ic);
 #else
 err = avformat_find_stream_info(ic, NULL);
&lt;/pre&gt;</description>
    <dc:creator>Johannes Weißl</dc:creator>
    <dc:date>2012-05-15T19:36:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/613">
    <title>[PATCH 1/4] add ffmpeg test script</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/613</link>
    <description>&lt;pre&gt;This script enables automatic testing of the cmus ffmpeg plugin against
thousands of (relevant) revisions of FFmpeg. Only for (devoted)
developers :-).
---
 scripts/ffmpeg_test.sh |  220 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 220 insertions(+)
 create mode 100755 scripts/ffmpeg_test.sh

diff --git a/scripts/ffmpeg_test.sh b/scripts/ffmpeg_test.sh
new file mode 100755
index 0000000..927b213
--- /dev/null
+++ b/scripts/ffmpeg_test.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,220 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+#!/bin/bash
+# vim: set expandtab shiftwidth=4:
+#
+# Copyright 2010-2012 Various Authors
+# Copyright 2012 Johannes Weißl
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.
+
+# many (!) FFmpeg versions will be installed here, at least 25GB
+FFMPEG_BUILD_DIR=$HOME/cmus_ffmpeg_test/ffmpeg_builds
+
+# ffmpeg/libav source will be cloned into this directory
+FFMPEG_SRC_DIR=$HOME/cmus_ffmpeg_test/ffmpeg_src
+
+# source code of cmus is expected here
+CMUS_SRC_DIR=$HOME/cmus_ffmpeg_test/cmus_src
+
+# cmus versions will be installed here
+CMUS_BUILD_DIR=$HOME/cmus_ffmpeg_test/cmus_builds
+
+FFMPEG_CLONE_URL=git://source.ffmpeg.org/ffmpeg.git
+LIBAV_CLONE_URL=git://git.libav.org/libav.git
+
+# headers of ffmpeg that are relevant to cmus compilation
+HEADERS="avcodec.h avformat.h avio.h mathematics.h version.h"
+
+# argument to make -j
+MAKE_J=$(grep -c "^processor" /proc/cpuinfo 2&amp;gt;/dev/null || echo 1)
+
+print_usage () {
+    echo "Usage: $progname build_ffmpeg | build_libav | build_cmus | test_cmus"
+    echo
+    echo "build_{ffmpeg,libav}:"
+    echo " 1. clone/pull source into $FFMPEG_SRC_DIR/{ffmpeg,libav}"
+    echo " 2. build and install (necessary) revisions into $FFMPEG_BUILD_DIR"
+    echo "    can take days and needs up to 25 GB hard disk (!)"
+    echo "    you can use ctrl-c to stop the script and run it later to continue"
+    echo
+    echo "build_cmus:"
+    echo " 1. expects cmus source in $CMUS_SRC_DIR"
+    echo " 2. build cmus for every revision in $FFMPEG_BUILD_DIR and install"
+    echo "    to $CMUS_BUILD_DIR"
+    echo
+    echo "test_cmus:"
+    echo " test ffmpeg plugin of every cmus build in $CMUS_BUILD_DIR"
+}
+
+function get_commits () {
+    for name in "$&amp;lt; at &amp;gt;" ; do
+        find -type f -name "$name" -exec git log --follow --pretty=format:"%H%n" {} \;
+    done
+    for tag in $(git tag) ; do
+        git show "$tag" | sed -n "s/^commit //p"
+    done
+}
+
+function uniq_stable () {
+    nl -ba | sort -suk2 | sort -n | cut -f2-
+}
+
+DONE=
+trap 'DONE=1' SIGINT
+
+function build_to_prefix () {
+    prefix=$1
+    cur=$2
+    all=$3
+    cur_name=$4
+    build_cmd=$5
+    echo -n "[$((cur*100/all))%] "
+    if [ -e "$prefix.broken" ] ; then
+        echo "skip $cur_name, broken"
+    elif [ -e "$prefix.part" ] ; then
+        echo "skip $cur_name, is being build"
+    else
+        if [ -e "$prefix" ] ; then
+            echo "skip $cur_name, already built"
+        else
+            echo -n "build and install to $prefix: "
+            echo $build_cmd &amp;gt;"$prefix.log"
+            (mkdir -p "$prefix.part" &amp;amp;&amp;amp; eval $build_cmd &amp;amp;&amp;amp; mv "$prefix.part/$prefix" "$prefix" &amp;amp;&amp;amp; rm -rf "$prefix.part") &amp;gt;&amp;gt;"$prefix.log" 2&amp;gt;&amp;amp;1 &amp;amp;&amp;amp; echo "ok" ||
+                    (touch "$prefix.broken" ; echo "FAILED:" ; echo $build_cmd)
+        fi
+    fi
+    [ -n "$DONE" ] &amp;amp;&amp;amp; rm -rvf "$prefix" "$prefix".part "$prefix".broken
+}
+
+function build_revisions () {
+    name=$1
+    url=$2
+    mkdir -p "$FFMPEG_SRC_DIR" "$FFMPEG_BUILD_DIR"
+    FFMPEG_SRC_DIR=$FFMPEG_SRC_DIR/$name
+    if [ -e "$FFMPEG_SRC_DIR" ] ; then
+        echo "pull $url in $FFMPEG_SRC_DIR"
+        pushd "$FFMPEG_SRC_DIR" &amp;gt;/dev/null
+        git reset --hard origin/master &amp;gt;/dev/null
+        git clean -fxd &amp;gt;/dev/null
+        git pull &amp;gt;/dev/null
+    else
+        echo "clone $url in $FFMPEG_SRC_DIR"
+        git clone "$url" "$FFMPEG_SRC_DIR" &amp;gt;/dev/null
+        pushd "$FFMPEG_SRC_DIR" &amp;gt;/dev/null
+    fi
+    commits=$(get_commits $HEADERS | uniq_stable)
+    commits_count=$(echo $commits | wc -w)
+    i=0
+    for c in $commits ; do
+        i=$((i+1))
+        git reset --hard "$c" &amp;gt;/dev/null
+        git clean -fxd &amp;gt;/dev/null
+        prefix="$FFMPEG_BUILD_DIR/$c"
+        build_to_prefix "$prefix" "$i" "$commits_count" "$c" \
+            "./configure --prefix=\"$prefix.part\" --enable-shared --disable-static &amp;amp;&amp;amp; make -j$MAKE_J &amp;amp;&amp;amp; make install"
+        [ -n "$DONE" ] &amp;amp;&amp;amp; break
+    done
+    popd &amp;gt;/dev/null
+}
+
+build_cmus () {
+    pushd "$CMUS_SRC_DIR" &amp;gt;/dev/null
+    mkdir -p "$CMUS_BUILD_DIR"
+    revdirs=$(find "$FFMPEG_BUILD_DIR" -mindepth 1 -maxdepth 1 -type d ! -name "*.part")
+    revdirs_count=$(echo $revdirs | wc -w)
+    i=0
+    for revdir in $revdirs ; do
+        i=$((i+1))
+        rev=$(basename "$revdir")
+        prefix="$CMUS_BUILD_DIR/$rev"
+        make distclean &amp;gt;/dev/null 2&amp;gt;&amp;amp;1
+        build_to_prefix "$prefix" "$i" "$revdirs_count" "$rev" \
+            "CFLAGS=\"-I$revdir/include\" LDFLAGS=\"-L$revdir/lib\" ./configure prefix=\"$prefix\" CONFIG_FFMPEG=y DEBUG=2 &amp;amp;&amp;amp; make -j$MAKE_J &amp;amp;&amp;amp; make install DESTDIR=\"$prefix.part\""
+        [ -n "$DONE" ] &amp;amp;&amp;amp; break
+    done
+    popd &amp;gt;/dev/null
+}
+
+test_cmus () {
+    mkdir -p "$CMUS_BUILD_DIR"
+    revdirs=$(find "$CMUS_BUILD_DIR" -mindepth 1 -maxdepth 1 -type d ! -name "*.part")
+    revdirs_count=$(echo $revdirs | wc -w)
+    i=0
+    for revdir in $revdirs ; do
+        i=$((i+1))
+        rev=$(basename "$revdir")
+        tmpdir=$(mktemp -d)
+        lib_prefix=$FFMPEG_BUILD_DIR/$rev
+        echo -n "[$((i*100/revdirs_count))%] test $revdir: "
+        if CMUS_HOME=$tmpdir LD_LIBRARY_PATH=$lib_prefix/lib:$LD_LIBRARY_PATH "$revdir"/bin/cmus --plugins | grep -q "^ *ffmpeg" ; then
+            echo "working"
+        else
+            echo "not working: "
+            echo "CMUS_HOME=$tmpdir LD_LIBRARY_PATH=$lib_prefix/lib:$LD_LIBRARY_PATH \"$revdir\"/bin/cmus --plugins"
+            cat $tmpdir/cmus-debug.txt
+        fi
+        rm "$tmpdir"/cmus-debug.txt
+        rmdir "$tmpdir"
+        [ -n "$DONE" ] &amp;amp;&amp;amp; break
+    done
+}
+
+progname=$(basename "$0")
+
+while [ $# -gt 0 ] ; do
+    case "$1" in
+        -h | --help)
+            print_usage
+            exit 0
+            ;;
+         --)
+            shift ; break
+            ;;
+        -*)
+            echo &amp;gt;&amp;amp;2 "$progname: unrecognized option \`$1'"
+            echo &amp;gt;&amp;amp;2 "Try \`$0 --help' for more information."
+            exit 1
+            ;;
+        *)
+            break
+            ;;
+    esac
+done
+
+if [ $# -eq 0 ] ; then
+    print_usage
+    exit 0
+elif [ $# -gt 1 ] ; then
+    echo &amp;gt;&amp;amp;2 "$progname: too many arguments"
+    echo &amp;gt;&amp;amp;2 "Try \`$0 --help' for more information."
+    exit 1
+fi
+
+case "$1" in
+    build_ffmpeg)
+        build_revisions ffmpeg "$FFMPEG_CLONE_URL"
+        ;;
+    build_libav)
+        build_revisions libav "$LIBAV_CLONE_URL"
+        ;;
+    build_cmus)
+        build_cmus
+        ;;
+    test_cmus)
+        test_cmus
+        ;;
+    *)
+        echo &amp;gt;&amp;amp;2 "$progname: unrecognized command \`$1'"
+        echo &amp;gt;&amp;amp;2 "Try \`$0 --help' for more information."
+        exit 1
+esac
&lt;/pre&gt;</description>
    <dc:creator>Johannes Weißl</dc:creator>
    <dc:date>2012-05-15T19:36:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.audio.cmus.devel/612">
    <title>[PATCH 4/4] configure: add better check for ffmpeg</title>
    <link>http://permalink.gmane.org/gmane.comp.audio.cmus.devel/612</link>
    <description>&lt;pre&gt;It turns out the FFmpeg API is so unstable (especially now that there
are two projects) that we can't guarantee the compilation of the ffmpeg
plugin. So the best option is to let ./configure test the actual
successful build as test.
---
 configure |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 83e9ce4..c40def7 100755
--- a/configure
+++ b/configure
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -354,7 +354,23 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; check_ffmpeg()
 else
 check_header "ffmpeg/avcodec.h" $FFMPEG_CFLAGS || return $?
 fi
-return 0
+# ffmpeg api changes so frequently that it is best to compile the module
+libs="$LDDLFLAGS $FFMPEG_LIBS"
+cflags="$SOFLAGS $FFMPEG_CFLAGS"
+if test "$HAVE_FFMPEG_AVCODEC_H" = y
+then
+cflags="$cflags -DHAVE_FFMPEG_AVCODEC_H"
+fi
+topdir=`dirname "$0"`
+ffmpeg_code=`cat "$topdir"/ffmpeg.c | grep -v '^#include "config/' | sed 's/\\\n//g'`
+msg_checking "for successful build of ffmpeg.c"
+if try_compile_link "$ffmpeg_code" $cflags $libs
+then
+msg_result yes
+return 0
+fi
+msg_result no
+return 1
 }
 
 check_string_function()
&lt;/pre&gt;</description>
    <dc:creator>Johannes Weißl</dc:creator>
    <dc:date>2012-05-15T19:36:09</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.audio.cmus.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.audio.cmus.devel</link>
  </textinput>
</rdf:RDF>

