Page 1 of 1

Build error in renpy 6.13.12

Posted: Thu Jul 19, 2012 7:12 am
by multixrulz
Sorry if this is the wrong place for this problem. It seemed the most appropriate spot for build errors.

I'm trying to build renpy 6.13.12 on ArchLinux. The build command is

Code: Select all

CFLAGS=-Os module/setup.py build
it fails with the following (quoted in full)

Code: Select all

building 'pysdlsound.sound' extension
gcc -pthread -DNDEBUG -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Os -fPIC -I. -I/usr/include -I/usr/include/SDL -I/usr/include/freetype2 -I/usr/include/python2.7 -c gen/pysdlsound.sound.c -o build/temp.linux-x86_64-2.7/gen/pysdlsound.sound.o -Wno-unused-function
gen/pysdlsound.sound.c: In function ‘__pyx_pf_10pysdlsound_5sound_check_error’:
gen/pysdlsound.sound.c:557:13: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
gcc -pthread -DNDEBUG -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Os -fPIC -I. -I/usr/include -I/usr/include/SDL -I/usr/include/freetype2 -I/usr/include/python2.7 -c pss.c -o build/temp.linux-x86_64-2.7/pss.o -Wno-unused-function
gcc -pthread -DNDEBUG -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Os -fPIC -I. -I/usr/include -I/usr/include/SDL -I/usr/include/freetype2 -I/usr/include/python2.7 -c rwobject.c -o build/temp.linux-x86_64-2.7/rwobject.o -Wno-unused-function
gcc -pthread -DNDEBUG -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Os -fPIC -I. -I/usr/include -I/usr/include/SDL -I/usr/include/freetype2 -I/usr/include/python2.7 -c ffdecode.c -o build/temp.linux-x86_64-2.7/ffdecode.o -Wno-unused-function
ffdecode.c:197:5: error: unknown type name ‘ByteIOContext’
ffdecode.c:245:32: error: ‘FF_ER_CAREFUL’ undeclared here (not in a function)
ffdecode.c:287:1: error: unknown type name ‘ByteIOContext’
ffdecode.c: In function ‘rwops_open’:
ffdecode.c:290:5: error: unknown type name ‘ByteIOContext’
ffdecode.c:290:25: warning: initialization makes pointer from integer without a cast [enabled by default]
ffdecode.c: In function ‘audio_decode_frame’:
ffdecode.c:1539:13: warning: ‘avcodec_decode_audio3’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3658) [-Wdeprecated-declarations]
ffdecode.c:1561:59: error: ‘SAMPLE_FMT_S16’ undeclared (first use in this function)
ffdecode.c:1561:59: note: each undeclared identifier is reported only once for each function it appears in
ffdecode.c: In function ‘stream_component_open’:
ffdecode.c:1819:8: error: ‘AVCodecContext’ has no member named ‘error_recognition’
ffdecode.c:1828:5: warning: ‘avcodec_open’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3380) [-Wdeprecated-declarations]
ffdecode.c: In function ‘dump_stream_info’:
ffdecode.c:1956:5: error: unknown type name ‘AVMetadataTag’
ffdecode.c:1957:52: error: ‘AV_METADATA_IGNORE_SUFFIX’ undeclared (first use in this function)
ffdecode.c:1958:40: error: request for member ‘key’ in something not a structure or union
ffdecode.c:1958:50: error: request for member ‘value’ in something not a structure or union
ffdecode.c: In function ‘decode_thread’:
ffdecode.c:1971:5: error: unknown type name ‘AVFormatParameters’
ffdecode.c:1975:5: error: unknown type name ‘ByteIOContext’
ffdecode.c:1995:7: error: request for member ‘width’ in something not a structure or union
ffdecode.c:1996:7: error: request for member ‘height’ in something not a structure or union
ffdecode.c:1997:7: error: request for member ‘time_base’ in something not a structure or union
ffdecode.c:1998:7: error: request for member ‘pix_fmt’ in something not a structure or union
ffdecode.c:2053:5: warning: ‘av_find_stream_info’ is deprecated (declared at /usr/include/libavformat/avformat.h:1357) [-Wdeprecated-declarations]
ffdecode.c:2281:27: error: request for member ‘buffer’ in something not a structure or union
error: command 'gcc' failed with exit status 1
I have ffmpeg 1:0.11.1-1 installed. Presumably something new in ffmpeg has broken renpy, as I've previously built an older version against an older ffmpeg without problems.

Re: Build error in renpy 6.13.12

Posted: Thu Jul 19, 2012 9:55 am
by PyTom
That looks possible. I've been building Ren'Py against libav, rather than ffmpeg.

Re: Build error in renpy 6.13.12

Posted: Thu Jul 19, 2012 7:36 pm
by multixrulz
That's one big can of worms I didn't know about (ie the ffmpeg/libav fight).

I really don't have the choice of using libav (at least not without a lot of work). I would actually like to keep using Ren'Py, so what's the best way forward for me? I assume you're not too interested in maintaining different sets of code for libav and ffmpeg.

Re: Build error in renpy 6.13.12

Posted: Thu Jul 19, 2012 8:38 pm
by PyTom
Is it possible to jump back to an older version of ffmpeg? I wouldn't mind making the changes, I just don't have the time to figure them out at the moment.

Re: Build error in renpy 6.13.12

Posted: Mon Jul 23, 2012 5:42 am
by multixrulz
I can't revert ffmpeg. If I did, everything else that depends on ffmpeg would break, etc. etc. to the point where I could never upgrade my system. Not to mention that I can't get the old version package files. ArchLinux is a rolling release, this is one situation where that's a problem.

I haven't worked in C for years, but I'll poke around a bit and see if I can send a patch.

Re: Build error in renpy 6.13.12

Posted: Tue Jul 24, 2012 6:59 am
by multixrulz
Well I took a look at the offending source file, ffdecode.c. Since it appeared at first glance to be the source file for ffplay, I tried copying the contents of ffplay.c from my version of ffmpeg in there. After commenting out a couple of #includes and copying over a couple more, it compiled cleanly.

But I don't have any sound :-(

Obviously there's more to fix than what I've just done.

Do you have time to give me a few clues about how the renpy python module works?