[opensuse] ffmpeg: openSUSE vs Ubuntu
I'm not sure if this is the best place to post this. It's not really a programming question. It's more about a difference between how two distros make the same libraries. I have an SDK with a closed-source library that I need to use on openSUSE 42.3. The supplier (Flir, formerly Point Grey) support Ubuntu as their Linux distro. Generally, the libraries find all that they need on openSUSE 42.3. At least ldd is indicating that, generally, libs and entry points are available. With the exception of ffmpeg. And here the problem is not so much the versions of the libraries, but instead how these libraries are identifying themselves internally. The Ubuntu libraries are claiming things like this: ./libptgreyvideoencoder.so.2.12.3.31: /usr/lib64/libavutil-ffmpeg.so.54: version `LIBAVUTIL_FFMPEG_54' not found (required by ./libptgreyvideoencoder.so.2.12.3.31) ./libptgreyvideoencoder.so.2.12.3.31: /usr/lib64/libswscale-ffmpeg.so.3: version `LIBSWSCALE_FFMPEG_3' not found (required by ./libptgreyvideoencoder.so.2.12.3.31) ./libptgreyvideoencoder.so.2.12.3.31: /usr/lib64/libavcodec-ffmpeg.so.56: version `LIBAVCODEC_FFMPEG_56' not found (required by ./libptgreyvideoencoder.so.2.12.3.31) ./libptgreyvideoencoder.so.2.12.3.31: /usr/lib64/libavformat-ffmpeg.so.56: version `LIBAVFORMAT_FFMPEG_56' not found (required by ./libptgreyvideoencoder.so.2.12.3.31) So, a library such as /usr/lib64/libavutil-ffmpeg.so.54 is wanted and is found on my system. Unfortunately, the tag LIBAVUTIL_FFMPEG_54 is not found inside that library. So, I thought I would look to see what is in the openSUSE library. I see this: LIBAVUTIL_54 I do not see LIBAVUTIL_FFMPEG_54. Could it be that openSUSE and Ubuntu use slightly different text for this flag/value? Note that I had this issue previously when experimenting with similar libs from Flir. I want to make a better solution than I did before, which turned out to be lib dependency hell. When I installed the Ubuntu version of these libs, many other ones were also needed, as the Ubuntu libs were not all satisfied with the openSUSE libs. And these led to conflicts. I am hoping that perhaps I can make these 4 libraries in such a way as to make the Ubuntu libs happy, while keeping the majority of the openSUSE libs. That might be wishful thinking. I have Googled a bit. I don't really see anything related to this. The openSUSE builds in OBS seem to be using the files as is. I do not see that LIBAVUTIL_FFMPEG_54 is being modified into something else by openSUSE. So maybe Ubuntu change these values? I'm less familiar with Ubuntu's build system. So I thought I would start asking on openSUSE lists since that is where I want to run things. I'm optimistic. It's early in the game. -- Roger Oberholtzer -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
Roger Oberholtzer wrote:
So, a library such as /usr/lib64/libavutil-ffmpeg.so.54 is wanted and is found on my system. Unfortunately, the tag LIBAVUTIL_FFMPEG_54 is not found inside that library.
My first question would be where /usr/lib64/libavutil-ffmpeg.so.54 came from. I don't have it on my 42.3 system (neither on TW).
So, I thought I would look to see what is in the openSUSE library. I see this:
LIBAVUTIL_54
I do not see LIBAVUTIL_FFMPEG_54.
Could it be that openSUSE and Ubuntu use slightly different text for this flag/value?
Are they using the same source? ISTR *buntu used to use a fork at some point which caused issues around ffmpeg.... -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On Mon, Oct 1, 2018 at 2:43 PM Peter Suetterlin <pit@astro.su.se> wrote:
My first question would be where /usr/lib64/libavutil-ffmpeg.so.54 came from. I don't have it on my 42.3 system (neither on TW).
I have seen the same thing in RPMS from standard openSUSE 42.3 from OBS as well as from Packman.
So, I thought I would look to see what is in the openSUSE library. I see this:
LIBAVUTIL_54
I do not see LIBAVUTIL_FFMPEG_54.
Could it be that openSUSE and Ubuntu use slightly different text for this flag/value?
Are they using the same source? ISTR *buntu used to use a fork at some point which caused issues around ffmpeg....
I suspect that this is what is happening. As openSUSE/OBS seem to be using the original files, it might very well be Ubuntu that are introducing this variation. I wonder if I could compile the Ubuntu sources on openSUSE. I have no idea where Ubuntu keep non up-stream sources. I guess I need to explore a bit. I bet it the ffmpeg libs have this change, every lib that uses ffmpeg will have the same issue. That is, if I make a local openSUSE-compiled version that provides the Ubuntu-compatible info, the other openSUSE libs that use ffmpeg will then not be happy. Of course, that should be limited to the libs that use ffmpeg, not the libs that ffmpeg use. I hope. Flir should set up their own OBS instance and build for more than Ubuntu! Or open source their lib... -- Roger Oberholtzer -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On Mon, 1 Oct 2018 15:12:43 +0200 Roger Oberholtzer <roger.oberholtzer@gmail.com> wrote:
I bet it the ffmpeg libs have this change, every lib that uses ffmpeg will have the same issue. That is, if I make a local openSUSE-compiled version that provides the Ubuntu-compatible info, the other openSUSE libs that use ffmpeg will then not be happy. Of course, that should be limited to the libs that use ffmpeg, not the libs that ffmpeg use. I hope.
Two thoughts: (1) if you compile new versions, put them in a special place that is only pointed to when you link the Flir code. That should minimise unwanted interactions. (2) If the only problem is a missing symbol name, then adding an extra symbol shouldn't cause any problems at all.
Flir should set up their own OBS instance and build for more than Ubuntu! Or open source their lib...
I suggest you ask/suggest Flir to do that, or offer to help. They're probably unaware of the capability. They might just do it. PS Something about Ubuntu & ffmpeg at https://askubuntu.com/questions/432542/is-ffmpeg-missing-from-the-official-r... also may be worth looking at https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On Mon, Oct 1, 2018 at 5:09 PM Dave Howorth <dave@howorth.org.uk> wrote:
(2) If the only problem is a missing symbol name, then adding an extra symbol shouldn't cause any problems at all.
I don't know how the symbol is defined. It could be as easy as being an integer or some such thing. No idea (yet). I've never fiddled with a lib like that to add something. Or perhaps it is something to add when compiling from source so that both tags are present, making everyone happy. Seems too simple... -- Roger Oberholtzer -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
I see in the Ubuntu source a patch file that does the deed: Change-symbol-versioning.patch:-LIBAVCODEC_$MAJOR { Change-symbol-versioning.patch:+LIBAVCODEC_FFMPEG_$MAJOR { Change-symbol-versioning.patch:-LIBAVDEVICE_$MAJOR { Change-symbol-versioning.patch:+LIBAVDEVICE_FFMPEG_$MAJOR { Change-symbol-versioning.patch:-LIBAVFILTER_$MAJOR { Change-symbol-versioning.patch:+LIBAVFILTER_FFMPEG_$MAJOR { Change-symbol-versioning.patch:-LIBAVFORMAT_$MAJOR { Change-symbol-versioning.patch:+LIBAVFORMAT_FFMPEG_$MAJOR { Change-symbol-versioning.patch:-LIBAVRESAMPLE_$MAJOR { Change-symbol-versioning.patch:+LIBAVRESAMPLE_FFMPEG_$MAJOR { Change-symbol-versioning.patch:-LIBAVUTIL_$MAJOR { Change-symbol-versioning.patch:+LIBAVUTIL_FFMPEG_$MAJOR { Change-symbol-versioning.patch:-LIBPOSTPROC_$MAJOR { Change-symbol-versioning.patch:+LIBPOSTPROC_FFMPEG_$MAJOR { Change-symbol-versioning.patch:-LIBSWRESAMPLE_$MAJOR { Change-symbol-versioning.patch:+LIBSWRESAMPLE_FFMPEG_$MAJOR { Change-symbol-versioning.patch:-LIBSWSCALE_$MAJOR { Change-symbol-versioning.patch:+LIBSWSCALE_FFMPEG_$MAJOR { So I think I have a start point to see what I can do. I wonder why the are doing this. It may be a Debian thing that Ubuntu are just using. -- Roger Oberholtzer -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
I downloaded the ffmpeg source RPM for openSUSE 42.3. I added a patch that makes libs with the same id as Ubuntu uses. Since they also changed how they name the libraries, the ones that are directly linked with can be placed in a common directory with the Ubuntu-specific name and they are available to apps linked with the Ubuntu version if the Flir SDK. There is a library that is also used, and it is having the original name. So I need to see how to handle that. I do not see a patch in the Ubuntu package where they change the names of the libraries. But that might be the next step. Then I will have a Ubuntu-name-compatible ffmpeg library set that is fully built/linked with openSUSE libs. Aside from the SDK libs themselves, these could be the only ones that are needed to get things to run on openSUSE. So, some progress. I can at least run programs. The specific camera for this (a 360 degree Flir LadyBug 5) has yet to arrive. If the actual image capture works remains to be seen. I will post something when I know. -- Roger Oberholtzer -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On Tue, 2 Oct 2018 14:43:07 +0200 Roger Oberholtzer <roger.oberholtzer@gmail.com> wrote: [snip]
So, some progress. I can at least run programs. The specific camera for this (a 360 degree Flir LadyBug 5) has yet to arrive. If the actual image capture works remains to be seen. I will post something when I know.
Thanks for the update. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
Hello, Am Montag, 1. Oktober 2018, 15:12:43 CEST schrieb Roger Oberholtzer:
I wonder if I could compile the Ubuntu sources on openSUSE. I have no idea where Ubuntu keep non up-stream sources. I guess I need to explore a bit.
Probably https://code.launchpad.net/ubuntu/+source/ffmpeg -> "Trusty" branch -> "Browse the code", or simply bzr co lp:ubuntu/trusty/ffmpeg Regards, Christian Boltz -- [SuSE 8.2] Auch die Paketverwaltung via YaST2 ist endlich einigermaßen brauchbar: Du kannst ein Paket auf ein permanentes "Tabu" setzen und - jetzt kommt die Überraschung - er überschreibt es _wirklich_ nicht! ;-) [René Matthäi in suse-linux] -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
participants (4)
-
Christian Boltz
-
Dave Howorth
-
Peter Suetterlin
-
Roger Oberholtzer