On Mon, 25 May 2020, Rosanne DiMesio wrote: [...]
On Sat, 23 May 2020 19:29:30 +0200 (CEST) Francois Gouget fgouget@free.fr wrote:
https://bugzilla.opensuse.org/show_bug.cgi?id=1172018 -> New bug for openSUSE Leap 15.1.
In that bug you say:
As a result ~/.cache/gstreamer-1.0/registry.i586.bin is empty
FWIW, my ~/.cache/gstreamer-1.0 directory has both registry.i586.bin and registry.x86_64.bin, and neither one is empty. And my /usr/lib/gstreamer-1.0/gst-plugin-scanner is 64 bit.
Right, I used 'empty' in a somewhat loose sense. registry.i586.bin is small (<= 25kB instead of > 200kB) and running strings on it shows all plugins are blacklisted:
$ strings .cache/gstreamer-1.0/registry.i586.bin | head -n12 1.3.0 libgstcoreelements.so Plugin for blacklisted file /usr/lib/gstreamer-1.0/libgstcoreelements.so 0.0.0 BLACKLIST BLACKLIST BLACKLIST BLACKLIST libgstcoretracers.so Plugin for blacklisted file /usr/lib/gstreamer-1.0/libgstcoretracers.so
That's a clear result of the 64-bit gst-plugin-scanner being unable to load the libraries to see what they contain. Contrast it with the 64-bit file:
$ strings .cache/gstreamer-1.0/registry.x86_64.bin | head -n12 1.3.0 coreelements GStreamer core elements /usr/lib64/gstreamer-1.0/libgstcoreelements.so 1.12.5 LGPL gstreamer openSUSE GStreamer package http://download.opensuse.org 2018-03-28 GstElementFactory capsfilter
However I have not figured out how to compile it from a clean 64-bit openSUSE 15.1 install because there is no gstreamer-devel-32bit package!
I only have gstreamer-devel installed and I am able to build 32 bit Wine with gstreamer support on my 64 bit openSUSE system. I wrote a pretty detailed how-to on https://wiki.winehq.org/OpenSUSE. Admittedly, it's old and needs updating--some new dependencies have been added since it was written--but it gives some very specific advice about gstreamer.
That's a pretty interesting page. I took the instructions and integrated them in the wt-install-dev script I maintain for wt-daily (for running the Wine tests daily).
It has the advantage of making the instructions testable, reproducible and hopefully easier to run:
wget https://raw.githubusercontent.com/fgouget/wt-daily/master/wt-install-dev && sh wt-install-dev
Here are some things I found while writing / testing it on openSUSE 15.1:
* MinGW does not seem to be readily available. Compiling Wine without MinGW is likely not to get tested much in the future so that's concerning.
* A number of -devel-32bit packages don't depend on package that contains the libraries, resulting in unusable dead links. The culprits are: fontconfig-devel-32bit libgphoto2-devel-32bit libpulse-devel-32bit libv4l-devel-32bit openal-soft-devel-32bit sane-backends-devel-32bit vulkan-devel-32bit
* gstreamer-devel-32bit is missing but installing glib2-devel-32bit and creating some symlinks seems to be enough to compile 32-bit GStreamer applications. That's good.
* There are a couple other missing -devel-32bit packages that the script works around by creating the missing symlinks: libnetapi-devel-32bit Mesa-libGL-devel-32bit!
* There is no OpenCL 32-bit package at all (ocl-icd-devel-32bit and libOpenCL1-32bit are both missing). And for 64-bit one needs both opencl-headers and ocl-icd-devel. OpenCL is all around weird.
* The following packages don't seem to be necessary: bison-32bit freeglut-devel* giflib-devel* bopenssl-devel* xz-devel*
* Other missing libraries. If someone figures out a clean way to script these or has good documentation I can link to: FAudio-devel prelink (not a lib) vkd3d-devel
I'm hoping this can help Wine developers get started on openSUSE.