[FFmpeg-devel] ffmpeg-N-58703-g7b2534b build break - libavutil/ffversion.h missing

Reimar Döffinger Reimar.Doeffinger at gmx.de
Tue Dec 3 17:00:24 CET 2013

On 03.12.2013, at 14:42, David Favor <david at davidfavor.com> wrote:
> James Almer wrote:
>> On 02/12/13 8:22 PM, David Favor wrote:
>>> Michael Niedermayer wrote:
>>>> On Mon, Dec 02, 2013 at 07:08:00AM -0600, David Favor wrote:
>>>>> The recent change renaming libavutil/version.h to libavutil/ffversion.h has broken
>>>>> the build.
>>>>> The usual temp fix of manually renaming this file also breaks the build.
>>>> broken where and how exactly ?
>>>> http://fate.ffmpeg.org/ is mostly green ...
>>> Geez... attachment didn't go through... Here's the build residue...
>>> git describe --tags --match N
>>> # installed: 2.1.1-58662-2013-11-30-gf2f17dd (/david-favor-tools/osx-10.9/bin/ffmpeg)
>>> # source   : 2.1.1-58721-2013-12-03-g210a78a
>>> # rebuild  : source updated
>>> rm -f /smartbuild/work/ffmpeg.git/build.log
>>> cd /smartbuild/work/ffmpeg.git
>>> make distclean >/dev/null 2>&1 || /usr/bin/true
>>> [ ! -e /opt/local/include/freetype2/freetype.h ] || ln -sf /opt/local/include/freetype2 
>> /opt/local/include/freetype2/freetype
>>> ./configure --prefix=/david-favor-tools/osx-10.9 --enable-pic --enable-gpl --disable-debug 
>> --extra-cflags='-I/david-favor-tools/osx-10.9/include -I/opt/local/include -I/usr/local/include -I/usr/include' --extra-ldflags='-Wl,-rpath,/david-favor-tools/osx-10.9/lib -Wl,-rpath,/opt/local/lib -Wl,-rpath,/usr/local/lib -Wl,-rpath,/usr/lib -L/david-favor-tools/osx-10.9/lib -L/opt/local/lib -L/usr/local/lib -L/usr/lib' --enable-version3 --enable-shared --disable-static --enable-ffplay --enable-ffprobe --enable-ffserver --enable-runtime-cpudetect --enable-nonfree --enable-zlib --enable-bzlib --enable-openssl --enable-libmp3lame --enable-libfaac --enable-libfdk_aac --enable-libvpx --enable-libtheora --enable-libvorbis --enable-libxvid --enable-libopus --enable-libopenjpeg --enable-libx264 --enable-postproc --enable-frei0r --enable-libopencore-amrnb --enable-libfreetype --enable-libmodplug --enable-libass --enable-openssl  >> /smartbuild/work/ffmpeg.git/build.log 2>&1
>>> echo '#define FFMPEG_VERSION "2.1.1-58721-2013-12-03-g210a78a"' > version.h && touch .version
>>> make -j8  >> /smartbuild/work/ffmpeg.git/build.log 2>&1
>> Is this the list of commands you or a script ran? Because if so, that echo line is the culprit.
>> You should let make create the version header and .version instead of doing it manually.
>> But if you must, you need to change version.h with libavutil/ffversion.h because the former is not used anymore, and also add some preprocessor guards if run make install.
>> Regards.
> Ah... That's what it was... Thanks!
> So any custom version generation looks to require this sequence...
> 1) make libavutil/ffversion.h
> 2) change #define FFMPEG_VERSION "N-58725-g0e15a34" in libavutil/ffversion.h
> 3) make
> So allow make to generate ffversion.h + hack it + do a normal make, in which case
> the ffversion.h timestamp will be newer than the .version timestamp, so the hacked
> version will be retained.
> Let me know if this is correct.
> And thanks for the notice of how I was munging the build.

I'd say add support for e.g. a CUSTOM_FFMPEG_VERSION (or similar) environment variable instead.
Or maybe better a file that if it exists is used instead of git info or so.
This also helps with source tars that do not include the git tree.
In fact we must have sonething like that already for the releases.

More information about the ffmpeg-devel mailing list