Bug 1311295 - Soundtouch module is blacklisted, due to ABI break in soundtouch, needs rebuild the package
Summary: Soundtouch module is blacklisted, due to ABI break in soundtouch, needs rebui...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: gstreamer1-plugins-bad-free
Version: 23
Hardware: Unspecified
OS: Unspecified
unspecified
urgent
Target Milestone: ---
Assignee: Brian Pepple
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-02-23 20:32 UTC by Mathieu Bridon
Modified: 2016-03-02 22:01 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2016-02-28 22:07:47 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1311309 0 unspecified CLOSED needs rebuild due to ABI break in soundtouch. 2021-02-22 00:41:40 UTC
Red Hat Bugzilla 1311323 0 unspecified CLOSED needs rebuild due in F23 due ABI break in soundtouch 2021-02-22 00:41:40 UTC

Internal Links: 1311309 1311323

Description Mathieu Bridon 2016-02-23 20:32:57 UTC
Currently on Fedora 23:

  $ gst-inspect-1.0 -b
  Blacklisted files:
    libgstsoundtouch.so
     
  Total count: 1 blacklisted file
  $ gst-inspect-1.0 /usr/lib64/gstreamer-1.0/libgstsoundtouch.so
     
  Could not load plugin file: Opening module failed: /usr/lib64/gstreamer-1.0/libgstsoundtouch.so: undefined symbol: _ZN10soundtouch10SoundTouch8setTempoEf

The problem comes from the fact that gstreamer1-plugins-bad-free was built against soundtouch-1.4.0-13.fc23

Since then, soundtouch was upgraded in F23 to soundtouch-1.9.2-3.fc23.

With libabigail's excellent abipkgdiff, I can confirm that this symbol has been removed from the newer soundtouch package:

  $ koji download-build --arch=x86_64 --debuginfo soundtouch-1.4.0-13.fc23
  $ koji download-build --arch=x86_64 --debuginfo soundtouch-1.9.2-3.fc23
  $ abipkgdiff --d1 soundtouch-debuginfo-1.4.0-13.fc23.x86_64.rpm \
               --d2 soundtouch-debuginfo-1.9.2-3.fc23.x86_64.rpm \
               soundtouch-1.4.0-13.fc23.x86_64.rpm \
               soundtouch-1.9.2-3.fc23.x86_64.rpm
    ...
    43 Removed functions:
      ...
      [D] 'method void soundtouch::uch::setTempo(float)'    {_ZN10soundtouch10SoundTouch8setTempoEf}
      ...
    ...

Lots of other changes, it seems they completely broke the ABI, and the update was pushed to Fedora 23. :(

Comment 1 Mathieu Bridon 2016-02-23 20:40:30 UTC
I just rebuilt the gstreamer1-plugins-bad-free package in a Fedora 23 mock chroot, against the latest soundtouch.

  $ gst-inspect-1.0 -b
  Blacklisted files:
  
  Total count: 0 blacklisted files

Can someone rebuild it and push an update?

Comment 2 Mathieu Bridon 2016-02-23 20:59:33 UTC
Adding the soundtouch maintainer to the CC list.

Comment 3 Sergio Basto 2016-02-23 21:06:49 UTC
(In reply to Mathieu Bridon from comment #0)
> Currently on Fedora 23:
> 
>   $ gst-inspect-1.0 -b
>   Blacklisted files:
>     libgstsoundtouch.so
>      
>   Total count: 1 blacklisted file
>   $ gst-inspect-1.0 /usr/lib64/gstreamer-1.0/libgstsoundtouch.so
>      
>   Could not load plugin file: Opening module failed:
> /usr/lib64/gstreamer-1.0/libgstsoundtouch.so: undefined symbol:
> _ZN10soundtouch10SoundTouch8setTempoEf
> 
> The problem comes from the fact that gstreamer1-plugins-bad-free was built
> against soundtouch-1.4.0-13.fc23
> 
> Since then, soundtouch was upgraded in F23 to soundtouch-1.9.2-3.fc23.
> 
> With libabigail's excellent abipkgdiff, I can confirm that this symbol has
> been removed from the newer soundtouch package:
> 
>   $ koji download-build --arch=x86_64 --debuginfo soundtouch-1.4.0-13.fc23
>   $ koji download-build --arch=x86_64 --debuginfo soundtouch-1.9.2-3.fc23
>   $ abipkgdiff --d1 soundtouch-debuginfo-1.4.0-13.fc23.x86_64.rpm \
>                --d2 soundtouch-debuginfo-1.9.2-3.fc23.x86_64.rpm \
>                soundtouch-1.4.0-13.fc23.x86_64.rpm \
>                soundtouch-1.9.2-3.fc23.x86_64.rpm
>     ...
>     43 Removed functions:
>       ...
>       [D] 'method void soundtouch::uch::setTempo(float)'   
> {_ZN10soundtouch10SoundTouch8setTempoEf}
>       ...
>     ...
> 
> Lots of other changes, it seems they completely broke the ABI, and the
> update was pushed to Fedora 23. :(

yeah , 3 up karmas , I not push it to stable! .

The problem was:  v1.9.2 source code release [20-September-2015]: 
SoundTouch library v1.9.1, 8-Sep-2015 [223 kibytes zip file]
SoundTouch library v1.9.0, 18-May-2015 [221 kibytes zip file]
SoundTouch library v1.8.0, 7-Jan-2014 [157 kibytes zip file]
SoundTouch library v1.7.1, 28-Dec-2012 [147 kibytes zip file]
SoundTouch library v1.7.0, 1-Sep-2012 [140 kibytes zip file]
SoundTouch library v1.6.0, 16-Jul-2011 [138 kibytes zip file]
SoundTouch library v1.5.0, 28-Dec-2009 [454 kibytes zip file]
SoundTouch library v1.4.0, 15-Jan-2009 [454 kibytes zip file]

last version (1.4.0) was from 2009 , what could I do to minimize the problems ?

Comment 4 Mathieu Bridon 2016-02-23 21:17:15 UTC
(In reply to Sergio Monteiro Basto from comment #3)
> last version (1.4.0) was from 2009 , what could I do to minimize the
> problems ?

A few possibilities:

1. do not push an update that breaks the ABI
2. make sure all consumers of the ABI are rebuilt, and push them all together in the same update

Both are entirely valid options, and package maintainers can chose one or the other depending on the situation. Both rely on checking whether the ABI was broken, though.

It has become so easy with libabigail's abipkgdiff, that we really should consider it the absolute minimum a package maintainer should do before pushing an update to a C library.

Hopefully, Taskotron will eventually start checking for ABI breaks (using libabigail), and this kind of issue won't happen again.

In the meantime, we all should try to make sure we check for ABI breaks in the updates we push.

This case is a done deal, there's nothing left to do any more but rebuild gstreamer1-plugins-bad-free (which this bug report really is about) and move on.

In my first comment I detailed how you can check for ABI breaks with abipkgdiff. Can I ask you to give it a try for your future updates? :)

Comment 5 Sergio Basto 2016-02-23 21:31:26 UTC
(In reply to Mathieu Bridon from comment #4)

> 2. make sure all consumers of the ABI are rebuilt, and push them all
> together in the same update
> 
> Both are entirely valid options, and package maintainers can chose one or
> the other depending on the situation. Both rely on checking whether the ABI
> was broken, though.
> 
> It has become so easy with libabigail's abipkgdiff, that we really should
> consider it the absolute minimum a package maintainer should do before
> pushing an update to a C library.
> 
> Hopefully, Taskotron will eventually start checking for ABI breaks (using
> libabigail), and this kind of issue won't happen again.
> 
> In the meantime, we all should try to make sure we check for ABI breaks in
> the updates we push.
> 
> This case is a done deal, there's nothing left to do any more but rebuild
> gstreamer1-plugins-bad-free (which this bug report really is about) and move
> on.
> 
> In my first comment I detailed how you can check for ABI breaks with
> abipkgdiff. Can I ask you to give it a try for your future updates? :)

Sorry I miss this check I don't know why.

dnf repoquery --whatrequires soundtouch --alldeps --qf "%{sourcerpm} %{repoid}"

audacity-2.1.2-0.7.rc1.fc23.src.rpm updates
audacity-freeworld-2.1.1-1.fc23.src.rpm rpmfusion-free-updates-testing
dolphin-emu-4.0-10.fc23.src.rpm rpmfusion-free-updates-testing
gstreamer-plugins-bad-free-0.10.23-28.fc23.src.rpm fedora
gstreamer1-plugins-bad-free-1.6.3-2.fc23.src.rpm updates
pcsx2-1.2.1-1.fc22.src.rpm rpmfusion-nonfree

may you rebuild gstreamer-plugins-bad-free and gstreamer1-plugins-bad-free ?

Comment 6 Martin Tarenskeen 2016-02-23 23:14:21 UTC
The update soundtouch-1.9.2-3 also breaks Audacity.

audacity: symbol lookup error: audacity: undefined symbol: _ZN10soundtouch10SoundTouch14setTempoChangeEf
 
After downgrading to soundtouch-1.4.0-13.fc23.x86_64 audacity works again.

Comment 7 Martin Tarenskeen 2016-02-23 23:17:59 UTC
I'm not sure this is correct place to report this soundtouch issue with Audacity?

Comment 8 Mathieu Bridon 2016-02-23 23:22:12 UTC
(In reply to Martin Tarenskeen from comment #7)
> I'm not sure this is correct place to report this soundtouch issue with
> Audacity?

See Sergio's previous comments.

In comment 5 he showed that audacity was also broken, and then he reported bug 1311309 about audacity being broken.

Comment 9 Sergio Basto 2016-02-25 05:59:22 UTC
Can someone rebuild

Comment 10 Sergio Basto 2016-02-26 21:54:07 UTC
please test it and give karma thanks.

https://bodhi.fedoraproject.org/updates/FEDORA-2016-14e9282e77

Comment 11 Sergio Basto 2016-02-28 22:07:47 UTC
gstreamer1-plugins-bad-free-1.6.3-3.fc23 has been pushed to the Fedora 23
stable repository. If problems still persist, please make note of it in this
bug report.


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