ffmpeg for EL7

Orion Poplawski orion at cora.nwra.com
Fri Aug 26 00:23:40 CEST 2016


On 08/25/2016 02:30 PM, Nicolas Chauvet wrote:
> 2016-08-25 22:19 GMT+02:00 Orion Poplawski <orion at cora.nwra.com>:
>> On 08/25/2016 06:28 AM, Dominik 'Rathann' Mierzejewski wrote:
>>> On Thursday, 25 August 2016 at 10:24, Ralf Corsepius wrote:
>>>> On 08/25/2016 10:01 AM, Nicolas Chauvet wrote:
>>> [...]
>>>>> Specially as ffmpeg doesn't do symbol version, if one process has
>>>>> dependencies using both version, it will crash.
>>>> AFAIU, as long as these packages are properly linked (and not libraries
>>>> not being dlopened), package deps on SONAMEs would conflict and thus
>>>> prevent such problems.
>>>
>>> The point is that not all SONAMEs change with each FFmpeg version bump,
>>> so, for example, ffmpeg-3.0.x and ffmpeg-3.1.x may have mostly the same
>>> SONAMEs.
>>
>> Here is an attempt at ffmpeg2.8 and ffmpeg3.0.  This relies on different
> I've strictly no question about how not to make conflict between
> theses, so I'm not even looking at your spec since I don't think they
> will bring any value to the "discution".
> Please have a look at ffmpeg-compat for not conflicting with -devel
> Also please have a look this for not conflicting with ffmpeg version
> of the same ABI:
> http://rpms.kwizart.net/fedora/16/SRPMS/ffmpeg4vlc-0.6-0.4.20100612svn.fc13.src.rpm
> Here are the ABI from ffmpeg upstream: http://ffmpeg.org/download.html#releases

Well, I'll give you the courtesy of looking at your specs, even if you won't
do the same for me.

With ffmpeg-compat - it only provides the libs, not the binaries.
ffmpeg-compat doesn't conflict with any other ffmpeg package only if all of
the sonames are different, just like the ffmpeg2.8/3.0-libs packages I presented.

ffmpeg-compat-devel doesn't conflict because the .so and .pc files are moved
to %{_libdir}/ffmpeg-compat{,/pkgconfig}.  So to make use them you need to
pass -L%{_libdir}/ffmpeg-compat or set
PKG_CONFIG_PATH=%{_libdir}/ffmpeg-compat/pkgconfig, which is reasonable.

I couldn't get ffmpeg4vlc to build, but looking at %files:
- it ships binaries, so that conflicts with ffmpeg
- it uses --build-suffix=4vlc - I'm guessing this is added to the library
names - which I suspect is harder to make other projects make use of.  No idea.

So here's an updated set including 3.1 that move the libs and .pc files to
%{_libdir}/%{name}.  So none of the packages conflict.  To use you would
specify -L%{_libdir}/ffmpegX.X or set
PKG_CONFIG_PATH=%{_libdir}/ffmpegX.X/pkgconfig as with ffmpeg-compat-devel.

The problem here would come in with mixing ffmpeg3.0 and ffmpeg3.1, as without
the use of rpath or similar you could end up with a mix of versions of
libraries with the same soname.  So I would avoid having both 3.0 and 3.1 if
possible.

> My point is to have EL7 built with ffmpeg28 by default and eventually
> provide an alternative and newer ffmpeg for the binaries.

-- 
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       orion at nwra.com
Boulder, CO 80301                   http://www.nwra.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ffmpeg2.8.spec
Type: text/x-rpm-spec
Size: 36002 bytes
Desc: not available
URL: <https://lists.rpmfusion.org/pipermail/rpmfusion-developers/attachments/20160825/bdd459f7/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ffmpeg3.1.spec
Type: text/x-rpm-spec
Size: 38970 bytes
Desc: not available
URL: <https://lists.rpmfusion.org/pipermail/rpmfusion-developers/attachments/20160825/bdd459f7/attachment-0004.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ffmpeg3.0.spec
Type: text/x-rpm-spec
Size: 39053 bytes
Desc: not available
URL: <https://lists.rpmfusion.org/pipermail/rpmfusion-developers/attachments/20160825/bdd459f7/attachment-0005.bin>


More information about the rpmfusion-developers mailing list