mythtv 0.21 - trouble compiling the port

Bernhard Fröhlich decke at bluelife.at
Thu Apr 23 07:51:29 UTC 2009


On Thu, April 23, 2009 4:14 am, Greg Larkin wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Bernhard Fröhlich wrote:
> [...]
>>
>> Yes, that is correct. It took me some time to figure out why that only
>> affects multimedia/mythtv and not the multimedia/mythtv-frontend port
>> though they are nearly the same. The reason is that the mythtranscode
>> patch got lost on the way because it was included in my PR but is not in
>> the repository. So i have reattached it now.
>>
>> It is nearly useless to test them in a tinderbox because the problems
>> are
>> all conflicts with an installed ffmpeg and that does not happen in a
>> tinderbox build.
>
> Hi Bernhard,
>
> I have a prepared commits for mythtv and mythtv-frontend and am doing a
> Tinderbox build just to make sure there aren't any silly errors present.
>
> Since you mentioned that ffmpeg has caused conflicts previously, can you
> tell me how to configure and install it so I can run a separate mythtv
> compilation to make sure the patches I have are correct?

Just installing the multimedia/ffmpeg port without any enabled options is
enough. Then build mythtv with ARTS. The problem is that mythtv includes
files from /usr/local/include/libavcodec if it is present but it should
never do that because it has his own ffmpeg version included in his source
and really wants to build with that.

The bug that leads to this is that they use -I../libavcodec as part of
their include path whenever they need their ffmpeg headers and put it at
the end of the include path. But it happens that configure has already put
-I/usr/local/include/arts to the include path and
-I/usr/local/include/arts + -I../libavcodec =
/usr/local/include/arts/../libavcodec which results in including the
system ffmpeg headers - which is wrong, not supported and fails in many
strange ways.

A simple fix is to put -I../libavcodec at the beginning of the include
path then the compiler finds myhttv's ffmpeg headers first and everything
works as expected.

That errors probably never came up because it only fails when the system
ffmpeg headers and the included from mythtv are different in an
incompatible way. It is possible that there are more of that wrong include
paths that haven't been patched yet but i haven't tested it yet. The
easiest check would be to install multimedia/ffmpeg and corrupt each
header file of it by adding "#error GOT YOU" at the beginning or something
else that needs the compiler to give up and raise an error whenever it
happens to include one of the system ffmpeg headers. Then build mythtv
with ARTS support and cross your fingers.


-- 
Bernhard Fröhlich
http://www.bluelife.at/



More information about the freebsd-ports mailing list