Audacity 2.4.2 FTBFS with ffmpeg 5.x

Bug #1983862 reported by Andreas Hasenack
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
audacity (Debian)
Fix Released
Unknown
audacity (Ubuntu)
Fix Released
Critical
Unassigned

Bug Description

Audacity is a very high-profile, cross-platform application. As it stands. Audacity has been stagnant at 2.4.2 for several releases. 3.1 has been out for some time and is compatible with ffmpeg 5.

At this point, we are finding our hand forced. 2.4.2 is incompatible with ffmpeg 5, and as such we must upgrade, patch, or remove. Users of Audacity would much rather see an upgrade, as I have seen in bug reports as of late, or in the #ubuntustudio chat.

The biggest hurdles have been the telemetry which can be disabled by default as discussed via https://github.com/audacity/audacity/discussions/889.

Note that the biggest requirement, wxwidgets, only recently got uploaded post-Feature Freeze, which otherwise would have made this FFe moot. This bug has been being worked on since prior to FFe, so IMO this is a bug fix that just happens to carry features with it, similar to what you'd find if wxwidgets had been uploaded prior to Feature Freeze.

Basically, I'm hoping that some of the logic that can be applied here is that the exception is based mostly on the late upload of wxwidgets which was beyond the control of those involved.

I think that having new features in an application is a better option than having it removed completely for the sake of a feature freeze in this case, especially when it's as high-profile of an application as this one.

----
Original Description:

https://launchpadlibrarian.net/615233650/buildlog_ubuntu-kinetic-amd64.audacity_2.4.2~dfsg0-5build1_BUILDING.txt.gz

(...)
In file included from /<<PKGBUILDDIR>>/src/AudacityApp.cpp:82:
/<<PKGBUILDDIR>>/src/FFmpeg.h: In constructor ‘AVPacketEx::AVPacketEx()’:
/<<PKGBUILDDIR>>/src/FFmpeg.h:892:21: warning: ‘void av_init_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
  892 | av_init_packet(this);
      | ~~~~~~~~~~~~~~^~~~~~
In file included from /usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:45,
                 from /<<PKGBUILDDIR>>/src/FFmpeg.h:53:
/usr/include/x86_64-linux-gnu/libavcodec/packet.h:506:6: note: declared here
  506 | void av_init_packet(AVPacket *pkt);
      | ^~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/src/FFmpeg.h: In member function ‘void AVPacketEx::reset()’:
/<<PKGBUILDDIR>>/src/FFmpeg.h:919:7: error: ‘av_free_packet’ was not declared in this scope; did you mean ‘av_new_packet’?
  919 | av_free_packet(this);
      | ^~~~~~~~~~~~~~
      | av_new_packet
/<<PKGBUILDDIR>>/src/FFmpeg.h: In member function ‘void AVPacketEx::steal(AVPacketEx&&)’:
/<<PKGBUILDDIR>>/src/FFmpeg.h:926:21: warning: ‘void av_init_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
  926 | av_init_packet(&that);
      | ~~~~~~~~~~~~~~^~~~~~~
/usr/include/x86_64-linux-gnu/libavcodec/packet.h:506:6: note: declared here
  506 | void av_init_packet(AVPacket *pkt);
      | ^~~~~~~~~~~~~~

FFmpeg 5.0 changed the API and it required a big patch for audacity:
https://github.com/audacity/audacity/pull/3121/files

Note that patch is on top of master, and Debian/Ubuntu still carry old version 2.4.2. To fix this, the package needs to be first updated to 3.1.3 (or later), and then have that patch applied.

Upstream issue (now resolved): https://github.com/audacity/audacity/issues/2445
Debian RC bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1004598

audacity was removed from debian testing today: https://tracker.debian.org/news/1352473/audacity-removed-from-testing/

Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote :

This is a very high-profile application. Note that it was removed from Testing but not from Unstable. Additionally, it's seeded in Ubuntu Studio. We should do whatever we can to keep it from being removed, including updating it and applying the patch.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

A newer audacity will also require a newer wxwidgets which isn't in the archive yet. Debian however has recently uploaded wxwidgets3.2 to NEW.

See https://ftp-master.debian.org/new/wxwidgets3.2_3.2.0+dfsg-1.html and https://bugs.launchpad.net/ubuntu/+source/audacity/+bug/1924841/comments/5

Changed in audacity (Debian):
status: Unknown → Confirmed
Revision history for this message
Steve Langasek (vorlon) wrote :

Note that there is a freeness concern with the new upstream version, under new ownership AIUI - as shipped by upstream the code will phone home to a third party without the user opting in to this behavior. Please do not package the new upstream version of audacity for Ubuntu without addressing this (preferably with Debian maintainer involvement).

Revision history for this message
Dan Bungert (dbungert) wrote :

The good news on this problem is that the above mentioned wxwidgets version is in Kinetic.

Here are the options, as I see them:

* Package latest upstream version 3.1.3 + https://github.com/audacity/audacity/pull/3121 or Audacity 3.2.0 Beta - this would be a hard sell from a Feature Freeze standpoint, and one would need to demonstrate that the reduced telemetry plan discussed in https://github.com/audacity/audacity/discussions/889 matches Ubuntu and Debian expectations. I think the answer is 'yes' though given they mention CMake options, and the telemetry being off by default. Still needs verified.

* Package Audacity 3.0.2 and backport FFMPEG5 fixes - said to be the last version before telemetry concerns. I did a very quick backport attempt to see the complexity involved, and it didn't look any easier than backporting to 2.4.2. And there is still the Feature Freeze problem to consider.

* Backport FFMPEG5 fixes to version in the archive, 2.4.2. I think this is the best plan for retaining Audacity in Kinetic. The backport is non trivial as enough refactoring has gone in in the relevant code that this will need to be tested very carefully.

Proposal for Kinetic
* Remove Audacity, despite rdepends, unless someone has the time to do the FFMPEG5 backport to 2.4.2.

Proposal for LL
* Verify telemetry included is appropriate, and package Audacity 3.2.0 for Debian and Ubuntu.

Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote :

Second proposal for Kinetic since removal will make for a lot of angry Ubuntu (and Ubuntu Studio) users:

* FFe this in. Might be a hard sell, but if we don't, then we lose a very high-profile application. Note that this bug has been worked-on since early August, prior to Feature Freeze, so I think that makes a very good case for a FFe.

summary: - FTBFS with ffmpeg 5.x
+ [FFe] Audacity 3.1 for Kinetic (was 2.4.2 FTBFS with ffmpeg 5.x)
description: updated
Changed in audacity (Ubuntu):
status: New → Confirmed
Revision history for this message
Łukasz Zemczak (sil2100) wrote : Re: [FFe] Audacity 3.1 for Kinetic (was 2.4.2 FTBFS with ffmpeg 5.x)

I would hate to have to remove audacity from the archive, so normally I would of course lean towards accepting this FFe instead. It's a bit late, but there wasn't much you could do about that. What I'm worried about is the comment that Steve left in comment #3 + the analysis that Dan did in comment #4.

I think to make a call I'd need to see some additional things:
 * Who would be working on getting the new audacity ready and working for kinetic? Since this does not feel like a straightforward 'new upstream release pull', we would need to have a few dedicated Ubuntu Core Devs working on making sure everything builds, migrates and works as expected. Last thing I want is someone just pushing 3.1 to kinetic-proposed and forgetting about it.
 * Telemetry concerns. I would need a bit more investigation on that, making sure that by default everything stays the same as it was before. I'd need someone to double-confirm on that in 3.1 and actually test if that's the case.
 * Test builds. I think for something as big, I'd like to see some test builds of the packages we want to push to kinetic, maybe even with some autopkgtest runs?
 * A concrete test plan for the new version.

Also, did anyone discuss with Debian on how they intend to proceed here?

Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote :

Hi Łukasz,

I think I can summarize a bunch of this by answering the last question first:

> Also, did anyone discuss with Debian on how they intend to proceed here?

Per https://salsa.debian.org/multimedia-team/audacity/, they're already moving on a ~dfsg version of 3.1.3, meaning very likely they've got this all figured out and intend to upload shortly. However, I think in the interest of time, it might be worth taking what has been done there, the pristine-tar, and uploading our own version. Then *if* they upload prior to Final Freeze, we can simply sync their version over.

I think I can don my rarely-used Debian Multimedia Team hat here and do the testing on Dennis's packaging and see if it works, and test the binaries as built in my PPA. If it looks good, I have no problem with reporting back here and allowing either yourself or Dan to take a look at the package in my PPA prior to FFe approval. This whole process should take less than 24 hours.

Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote :

Well, after doing a ton of work on this, I ran into a huge roadblock and I'm fearing the worst. Right now, it FTBFS and I'm in over my head. https://launchpadlibrarian.net/623527544/buildlog_ubuntu-kinetic-amd64.audacity_3.1.3~dfsg0-0ubuntu1~ppa4_BUILDING.txt.gz is my latest buildlog and I don't understand what's happening. If anybody has any ideas, let me know. I suspect GCC 12 compatibility issues now.

Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote :

After investigation, Dan and I cannot get this to work near-term, so I'm going to have to withdraw my FFe request and, sadly, I think we're going to have to remove Audacity from the repos for Kinetic. Release team, feel free to unsubscribe.

summary: - [FFe] Audacity 3.1 for Kinetic (was 2.4.2 FTBFS with ffmpeg 5.x)
+ Audacity 2.4.2 FTBFS with ffmpeg 5.x)
Steve Langasek (vorlon)
summary: - Audacity 2.4.2 FTBFS with ffmpeg 5.x)
+ RM: Audacity 2.4.2 FTBFS with ffmpeg 5.x)
Revision history for this message
Steve Langasek (vorlon) wrote : Re: RM: Audacity 2.4.2 FTBFS with ffmpeg 5.x)

Removing packages from kinetic:
 audacity 2.4.2~dfsg0-5 in kinetic
  audacity 2.4.2~dfsg0-5 in kinetic amd64
  audacity 2.4.2~dfsg0-5 in kinetic arm64
  audacity 2.4.2~dfsg0-5 in kinetic armhf
  audacity 2.4.2~dfsg0-5 in kinetic ppc64el
  audacity 2.4.2~dfsg0-5 in kinetic riscv64
  audacity 2.4.2~dfsg0-5 in kinetic s390x
  audacity-data 2.4.2~dfsg0-5 in kinetic amd64
  audacity-data 2.4.2~dfsg0-5 in kinetic arm64
  audacity-data 2.4.2~dfsg0-5 in kinetic armhf
  audacity-data 2.4.2~dfsg0-5 in kinetic i386
  audacity-data 2.4.2~dfsg0-5 in kinetic ppc64el
  audacity-data 2.4.2~dfsg0-5 in kinetic riscv64
  audacity-data 2.4.2~dfsg0-5 in kinetic s390x
Comment: FTBFS with ffmpeg 5; LP: #1983862
1 package successfully removed.
Removing packages from kinetic-proposed:
 audacity 2.4.2~dfsg0-5build1 in kinetic
Comment: FTBFS with ffmpeg 5; LP: #1983862
1 package successfully removed.

Changed in audacity (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Benjamin Drung (bdrung) wrote :

I reset the status of this ticket to track building a working audacity again.

summary: - RM: Audacity 2.4.2 FTBFS with ffmpeg 5.x)
+ Audacity 2.4.2 FTBFS with ffmpeg 5.x
Changed in audacity (Ubuntu):
status: Fix Released → Triaged
importance: Undecided → Critical
Revision history for this message
Benjamin Drung (bdrung) wrote :

I spent some time to get audacity back into shape and uploaded audacity 3.2.0+dfsg-1 to Debian unstable and filed a FFe request in bug #1991252.

Regarding https://launchpadlibrarian.net/623527544/buildlog_ubuntu-kinetic-amd64.audacity_3.1.3~dfsg0-0ubuntu1~ppa4_BUILDING.txt.gz: You have to scroll up a lot to see the actual error:

```
CMake Error at cmake-proxies/cmake-modules/AudacityFunctions.cmake:140 (message):
  Invalid value "linked" for option audacity_use_ffmpeg. Valid values are:
  loaded off
```

Changed in audacity (Debian):
status: Confirmed → Fix Released
Changed in audacity (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.