Bug 1472160 - The 32 bit GStreamer 1.0 packages are broken on 64 bit Fedora
Summary: The 32 bit GStreamer 1.0 packages are broken on 64 bit Fedora
Alias: None
Product: Fedora
Classification: Fedora
Component: gstreamer1
Version: rawhide
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
Assignee: Brian Pepple
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2017-07-18 08:13 UTC by Francois Gouget
Modified: 2019-10-28 19:14 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed:

Attachments (Terms of Use)

Description Francois Gouget 2017-07-18 08:13:45 UTC
Description of problem:
32 bit applications fail to find any GStreamer element with errors like:
(gst-plugin-scanner:24901): GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-1.0/libgstvideoconvert.so': /usr/lib/gstreamer-1.0/libgstvideoconvert.so: wrong ELF class: ELFCLASS32

Version-Release number of selected component (if applicable):
This impacts all versions of the gstreamer1 package from 1.0.10-1 in Fedora 18 to 1.12.1-1 in Fedora 26.

How reproducible:
100% reproducible.

Steps to Reproduce:
1. Install a 64 bit version of Fedora.
2. Install the 32 bit GStreamer packages:
   dnf install gstreamer1-plugins-base.i686
3. Download and extract the 32 bit gstreamer1 package for your Fedora version. For instance
   mkdir gst1
   cd gst1
   dnf download gstreamer1.i686 
   rpm2cpio gstreamer1*.rpm | cpio -idmv
4. Clear the 32 bit registry and run the 32 bit gst-inspect-1.0 tool to force recreating it:
   rm ~/.cache/gstreamer-1.0/registry.i686.bin
   ~/gst1/usr/bin/gst-inspect-1.0 videoconvert

Note that while in this case we are using the standard 32 bit gst-inspect-1.0 binary, this affects any 32 bit application. In particular it impacts Wine and thus any 32 bit Windows application (such as games) that depends on winegstreamer.dll.

Actual results:
$ ~/gst1/usr/bin/gst-inspect-1.0 videoconvert
(gst-plugin-scanner:24820): GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-1.0/libgstvideoconvert.so': /usr/lib/gstreamer-1.0/libgstvideoconvert.so: wrong ELF class: ELFCLASS32
No such element or plugin 'videoconvert'

Expected results:
Information about the videoconvert element of the 32 bit gstreamer1-plugins-base package.

Additional info:
The reason for this bug is that scanning the plugins is delegated to /usr/libexec/gstreamer-1.0/gst-plugin-scanner. However on a 64 bit system this is a 64 bit executable provided by gstreamer1.x86_64 which is thus only able to load 64 bit GStreamer plugins.

As proof, the above issue can be fixed by running the following commands:
* As root:
  mv /usr/libexec/gstreamer-1.0/gst-plugin-scanner /usr/libexec/gstreamer-1.0/gst-plugin-scanner.x86_64
  cp /home/user/gst1/usr/libexec/gstreamer-1.0/gst-plugin-scanner /usr/libexec/gstreamer-1.0

* Then in the user account the 32 bit gst-inspect-1.0 command will then return the expected result:
   rm ~/.cache/gstreamer-1.0/registry.i686.bin
   ~/gst1/usr/bin/gst-inspect-1.0 videoconvert

However this is obviously not a proper fix since that breaks scanning 64 bit plugins.

Comment 1 Fedora End Of Life 2018-05-03 08:44:47 UTC
This message is a reminder that Fedora 26 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 26. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '26'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 26 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged  change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Comment 2 Francois Gouget 2018-05-04 15:55:07 UTC
I retested this bug in Fedora 28 with gstreamer1-1.14.0-1.fc28.x86_64 and this bug is still present. In fact absolutely nothing has changed.

Comment 3 Rex Dieter 2018-05-22 13:54:13 UTC
marking Futurefeature to avoid auto-close

Comment 5 Rex Dieter 2018-10-17 12:49:32 UTC
So, if I understand correctly,
is not architecture agnostic, and needs to live somewhere arch-specific.

Anyone seeing this mind filing a bug upstream,

Comment 6 Francois Gouget 2018-10-17 16:06:46 UTC
This looks more like a packaging bug than an upstream one to me (for instance it works on Debian). Why should it be reported upstream?

Comment 7 Rex Dieter 2018-10-17 16:25:59 UTC
debian doesn't use /usr/libexec , that may be why it's not evident there.

As a matter of fact, one immediate change I'm considering is adding
--libexecdir=%{_libdir} to the configure step to move these to a multilib-safe location.

Comment 8 mswal28462 2018-10-19 11:18:05 UTC
(In reply to Falcon Marly from comment #4)
> The 32-bit libraries are still included, so Steam and other applications
> will keep on being supported. The same will happen to CentOS/EPEL 6 at the
> moment a new 64 bit only driver series. I have managed this issue with the
> help of link https://hpetechnicalsupportnumber.com/hp-customer-care-number/.
> So, you can visit there for a proper solution. It is very helping.

The HP link just takes me to an HP logon page.  Can you be more specific with the issue number?

Comment 11 Francois Gouget 2019-10-28 19:14:42 UTC
The 'needinfo' flag was set by a now deleted spam comment (nicolasmithusa). Hopefully this will clear it.

Note You need to log in before you can comment on or make changes to this bug.