[php-maint] Bug#694143: php5-ffmpeg: FTBFS because of deprecated functions

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Tue Apr 29 10:44:05 UTC 2014


Hi,

On 28.04.2014 23:37, Mikael Nordfeldth wrote:
> Hello, I would like to present a patch which will help build
> 'php5-ffmpeg' against libav-0.9, after passing a hurdle which is not
> handled by the patch.

thanks for the patch, it works. ;)

> The hurdle is that 'libavutil-dev' has the header file 'time.h':
>     $ apt-file search libavutil/time.h
>     libavutil-dev: /usr/include/libavutil/time.h
>     [...]
>
> The include path /usr/include/libavutil is added when the build scripts
> configure ffmpeg-php, so the "<time.h>" references in various system
> libraries get pointed to the _wrong_ time.h. The workaround I came up
> with (because I did not come up with a proper solution) was to add:
>     #include "/usr/include/time.h"
> into /usr/include/libavutil/time.h
>
> If the wrong time.h is read, as is the case for the first issue of this
> FTBFS, several declarations of structs such as 'time_t' are missing.

There is a patch for this in the upstream bug tracker [1], but most of 
this patch is irrelevant for the version in Debian (which probably 
should be updated), as it seems not to include headers from libavutil. 
Attached is a stripped down version, that allows (together with 
building ffmpeg-php with libav9.

> The attached patch fixes the problems which occur _after_ the time.h
> issue is fixed. The patch is designed to be put into the
> 'debian/patches' directory and added last in the 'debian/patches/series'
> file. I don't currently know much more on how to package patches for
> Debian projects :)

This package could use an update to source format 3.0 (quilt) [2].

> While this makes it build alright, there is some kind of problem
> remaining. I get bad frame counts on the getFrameCount() call (45888
> frames instead of something like 190), while referencing frames with
> getFrame(n) still fetches properly, in my test case the last fetchable
> frame being 188.
>
> So if someone else could please have a look at how to make it build with
> the colliding libavutil/time.h we're soon able to have this package back
> in the repositories :)

I'm wondering if this package should be back in jessie, because upstream 
seems to be dead since 2009 and even with these patches it fails to 
build with FFmpeg2.2/libav10, that are coming to Debian now [3][4]:

/tmp/buildd/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function 
'_php_get_codec_name':
/tmp/buildd/ffmpeg-php-0.6.0/ffmpeg_movie.c:955:28: error: 
'AVCodecContext' has no member named 'sub_id'
              if (decoder_ctx->sub_id == 2)
                             ^
/tmp/buildd/ffmpeg-php-0.6.0/ffmpeg_movie.c:957:33: error: 
'AVCodecContext' has no member named 'sub_id'
              else if (decoder_ctx->sub_id == 1)
                                  ^

sub_id got deprecated and subsequently removed, because "this field is 
unused" [5].

I think, what this package needs is a new upstream.

Best regards,
Andreas


1: http://sourceforge.net/p/ffmpeg-php/bugs/59/
2: https://wiki.debian.org/Projects/DebSrc3.0
3: https://bugs.debian.org/729203
4: https://bugs.debian.org/739079
5: 
http://sources.debian.net/src/libav/6:9.11-3/libavcodec/avcodec.h?hl=1377#L1377
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libavutil-time.patch
Type: text/x-diff
Size: 478 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-php-maint/attachments/20140429/c247ee07/attachment-0001.patch>


More information about the pkg-php-maint mailing list