| Newsgroups |
gmane.linux.lfs.beyond.devel |
| Message-ID |
<[email protected]> |
On 9/23/25 7:31 PM, Bruce Dubbs ([email protected] via blfs-dev
Mailing List) wrote:
> On 9/23/25 6:22 PM, "Douglas R. Reno" ([email protected] via
> blfs-dev Mailing List) wrote:
>> On 9/23/25 6:16 PM, Bruce Dubbs ([email protected] via blfs-dev
>> Mailing List) wrote:
>>> On 9/23/25 5:58 PM, Joe Locash ([email protected] via blfs-dev
>>> Mailing List) wrote:
>>>> On 9/23/25 6:40 PM, Bruce Dubbs ([email protected] via blfs-dev
>>>> Mailing List) wrote:
>>>>> On 9/23/25 5:16 PM, Joe Locash ([email protected] via blfs-dev
>>>>> Mailing List) wrote:
>>>>>> On 9/23/25 1:45 PM, Rahul Chandra ([email protected] via
>>>>>> blfs-dev Mailing List) wrote:
>>>>>>> We can actually do more then just that. Because Firefox only
>>>>>>> links to ffmpeg at runtime, you can actually keep both 8.0 and
>>>>>>> 7.1.1 installed (what I've been doing for the last week). You
>>>>>>> essentially just have to keep all the .so files except the ones
>>>>>>> that should link to the latest version (i.e ending in just .so
>>>>>>> and not .so.58). I've been doing this for the last week and
>>>>>>> firefox works great for me and packages are still linking to
>>>>>>> ffmpeg 8.0 at build time. Something similar to this:
>>>>>>> https://gitlab.archlinux.org/archlinux/packaging/packages/
>>>>>>> ffmpeg4.4
>>>>>>
>>>>>> I would say this is the best approach. Firefox-140 only needs the
>>>>>> ffmpeg-7.1 libs and that's easy to do. Do a normal build of
>>>>>> ffmpeg-7 but only install the libs
>>>>>> :
>>>>>>
>>>>>> make DESTDIR=dest install
>>>>>> as root:
>>>>>> for lib in dest/usr/lib/*; do
>>>>>> if [[ $lib == *.so ]]; then
>>>>>> ln -srf -- dest/usr/lib/"$(readlink "$lib")" "$lib"
>>>>>> elif [[ ! -d $lib ]]; then
>>>>>> mv "$lib" /usr/lib
>>>>>> fi
>>>>>> done
>>>>>
>>>>> I'm not sure if I got this right, but I installed ffmpeg8 as a
>>>>> DESTDIR=/opt/ffmpeg8/
>>>>>
>>>>> Then I created a script:
>>>>>
>>>>> $ cat firefox-ffmpeg8
>>>>> #! /usr/bin/bash
>>>>>
>>>>> export LD_LIBRARY_PATH=/opt/ffmpeg8/usr/lib/
>>>>> firefox
>>>>>
>>>>>
>>>>> And ran a random youtube video. It seemed to play fine, but I'm
>>>>> not sure if it picked up the right libraries.
>>>>>
>>>>> Is there a way to see what libraries are being used?
>>>>
>>>> I'm not sure. If you have ffmpeg-7 installed you will not see an
>>>> issue.
>>>
>>> I do have ffmpeg7 installed, but I think the LD_LIBRARY_PATH tells
>>> it where to look first. Google says:
>>>
>>> Functionality:
>>> When an application starts, the dynamic linker checks
>>> LD_LIBRARY_PATH for a colon- separated list of directories to search
>>> before looking in the standard system library paths (like /lib,
>>> /usr/lib, /usr/local/lib).
>>>
>>> Which was my current understanding.
>>>
>>> In the case of firefox, I can't tell for sure which version of, say,
>>> libavcodec.so it is using. I have two:
>>>
>>> $ ll /usr/lib/libavcodec.so
>>> lrwxrwxrwx 1 root root 23 Aug 21 18:02 /usr/lib/libavcodec.so ->
>>> libavcodec.so.61.19.101
>>>
>>> $ ll /opt/ffmpeg8/usr/lib/libavcodec.so
>>> lrwxrwxrwx 1 root root 23 Sep 23 13:36
>>> /opt/ffmpeg8/usr/lib/libavcodec.so -> libavcodec.so.62.11.100
>>
>> I think you might be able to use 'lsof' to see which files are in
>> use, which might help identify which versions of the libraries got
>> loaded. I'm not sure of the exact syntax though off the to of my head.
>
> Good call. I have
>
> RDD\x20Pr 6810 bdubbs mem REG 259,14
> 1129400
> 714560 /usr/lib/libavutil.so.59.39.100
>
> RDD\x20Pr 6810 bdubbs mem REG 259,14
> 15903744 714548 /usr/lib/libavcodec.so.61.19.101
>
> So it is loading ffmpeg7. Upon reconsideration, a library libxxx.so
> is normally only used at link time. Trying to use LD_LIBRARY_PATH
> won't work in this circumstance will not work.
LD_LIBRARY_PATH will work. Firefox doesn't directly link against a
specific version of the ffmpeg libraries. It's internal code accounts
for various versions of ffmpeg and then checks for the version of the
ffmpeg libraries that might be installed. See
dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp in the FF source for
more info on the versions checked for. It will find the ffmpeg-7 libs
just fine using LD_LIBRARY_PATH.
--
http://lists.linuxfromscratch.org/sympa/info/blfs-dev
Unsubscribe: See the above information page