On 08/25/2016 02:30 PM, Nicolas Chauvet wrote:
2016-08-25 22:19 GMT+02:00 Orion Poplawski
<orion(a)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.fc...
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(a)nwra.com
Boulder, CO 80301
http://www.nwra.com