[PATCH] gnu: audacity: Re-add fallback to locate ffmpeg via pkg-config.

  • Done
  • quality assurance status badge
Details
3 participants
  • Andy Tai
  • Kaelyn Takata
  • Ludovic Courtès
Owner
unassigned
Submitted by
Kaelyn Takata
Severity
normal
K
K
Kaelyn Takata wrote on 28 May 19:33 +0200
(address . guix-patches@gnu.org)(name . Kaelyn Takata)(address . kaelyn.alexi@protonmail.com)
827569361fb106694e726de44b7b14b5d579facc.1716916125.git.kaelyn.alexi@protonmail.com
* gnu/packages/patches/audacity-ffmpeg-fallback.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it here.
* gnu/packages/audio.scm (audacity)[patches]: Use it here.

Change-Id: I848df8a9762216eb2b02afc3843e0e9806db14be
---
gnu/local.mk | 1 +
gnu/packages/audio.scm | 1 +
.../patches/audacity-ffmpeg-fallback.patch | 61 +++++++++++++++++++
3 files changed, 63 insertions(+)
create mode 100644 gnu/packages/patches/audacity-ffmpeg-fallback.patch

Toggle diff (95 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 7e9e1ebcf0..a5f2b9ee9e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -960,6 +960,7 @@ dist_patch_DATA = \
%D%/packages/patches/ath9k-htc-firmware-gcc.patch \
%D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch \
%D%/packages/patches/atlas-gfortran-compat.patch \
+ %D%/packages/patches/audacity-ffmpeg-fallback.patch \
%D%/packages/patches/audiofile-fix-datatypes-in-tests.patch \
%D%/packages/patches/audiofile-fix-sign-conversion.patch \
%D%/packages/patches/audiofile-CVE-2015-7747.patch \
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index d30d561d2f..f5c8dbd151 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -934,6 +934,7 @@ (define-public audacity
(file-name (git-file-name name version))
(sha256
(base32 "11sjyz6hxsr5dnndkkkiq7arjxvjl1sycl151xq3a3ggakgql3y1"))
+ (patches (search-patches "audacity-ffmpeg-fallback.patch"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
diff --git a/gnu/packages/patches/audacity-ffmpeg-fallback.patch b/gnu/packages/patches/audacity-ffmpeg-fallback.patch
new file mode 100644
index 0000000000..c845e10277
--- /dev/null
+++ b/gnu/packages/patches/audacity-ffmpeg-fallback.patch
@@ -0,0 +1,61 @@
+From 3c20057d0cbbbed453a692d4dd4589d865808024 Mon Sep 17 00:00:00 2001
+From: Liliana Marie Prikler <liliana.prikler@gmail.com>
+Date: Sat, 29 Jan 2022 10:44:44 +0100
+Subject: [PATCH] Add pkg-config fallback for locating ffmpeg.
+
+Audacity >=3.1.0 no longer links against ffmpeg, but instead dynamically loads
+it. This dynamic loading mechanism fails to properly locate libraries outside
+of LD_LIBRARY_PATH.
+
+See <https://issues.guix.gnu.org/53591>.
+
+Bugs-added-by: Marius Bakke <marius@gnu.org>
+
+diff --git a/libraries/lib-ffmpeg-support/CMakeLists.txt b/libraries/lib-ffmpeg-support/CMakeLists.txt
+index b8803a1f5..f86559cca 100644
+--- a/modules/mod-ffmpeg/lib-ffmpeg-support/CMakeLists.txt
++++ b/modules/mod-ffmpeg/lib-ffmpeg-support/CMakeLists.txt
+@@ -1,5 +1,7 @@
+
+ if (${_OPT}use_ffmpeg)
++ pkg_check_modules(FFMPEG libavcodec libavformat libavutil)
++
+ set( SOURCES
+ FFmpegTypes.h
+
+@@ -107,6 +109,12 @@ if (${_OPT}use_ffmpeg)
+ list(APPEND DEFINITIONS PRIVATE _DARWIN_C_SOURCE )
+ endif()
+
++ if (FFMPEG_FOUND)
++ pkg_get_variable(LIBAVCODEC_LIBDIR libavcodec libdir)
++ list(APPEND DEFINITIONS PRIVATE
++ "-DFFMPEG_PC_LIBDIR=\"${LIBAVCODEC_LIBDIR}\"")
++ endif()
++
+ audacity_library( lib-ffmpeg-support "${SOURCES}" "${LIBRARIES}"
+ "${DEFINITIONS}" ""
+ )
+diff --git a/libraries/lib-ffmpeg-support/FFmpegFunctions.cpp b/libraries/lib-ffmpeg-support/FFmpegFunctions.cpp
+index 55d6f676b..46640ef83 100644
+--- a/modules/mod-ffmpeg/lib-ffmpeg-support/FFmpegFunctions.cpp
++++ b/modules/mod-ffmpeg/lib-ffmpeg-support/FFmpegFunctions.cpp
+@@ -246,6 +246,18 @@ struct FFmpegFunctions::Private final
+ if (library->IsLoaded())
+ return library;
+
++#if defined(FFMPEG_PC_LIBDIR)
++ {
++ static const wxString libdir{FFMPEG_PC_LIBDIR};
++ const wxString fullName = wxFileName(libdir, libraryName).GetFullPath();
++
++ auto library = std::make_shared<wxDynamicLibrary>(fullName);
++
++ if (library->IsLoaded())
++ return library;
++ }
++#endif
++
+ return {};
+ }
+ };

base-commit: 542b18709a46e361de8f25e3fece29860532743c
--
2.41.0
K
K
Kaelyn wrote on 28 May 19:44 +0200
M1wVUXULhGCIC3iuTkLmLjz7pGqextFuHv8f3RDTC0sNu_68RBuuIFWCnDP7RAkIrWE4MHFqh_I5FtN0Cnd5361Cg1o7wcldG5qgraI-2rU=@protonmail.com
Hi,

This patch re-introduces the gnu/packages/patches/audacity-ffmpeg-fallback.patch that was deleted by commit cf5f7a8bf9ca2288700fcf351bbca0fc341ec969, which upgraded audacity to 3.5.1. The issue with it applying to the new audacity version is that the "lib-ffmpeg-support" folder moved from under "libraries/" to be under "modules/mod-ffmpeg/"; I have simply restored the existing patch and fixed the paths to the files.

Starting with the upgrade to audacity 3.5.1 with the patch dropped, any file that depended on ffmpeg to be loaded--such as the .m4a files produced by the recording app on an Android phone--fails to load. I also tried setting the path to the ffmpeg library through the GUI and had it consistently fail for me, and such files still could not be loaded (I have a few screenshots of the error messages). Restoring this patch has restored the ability to load .m4a and other files which depend on ffmpeg to be loaded, and without any special hoops needed to set up ffmpeg through the UI first.

Cheers,
Kaelyn
A
A
Andy Tai wrote on 28 May 20:58 +0200
(name . Kaelyn)(address . kaelyn.alexi@protonmail.com)
CAJsg1E9Ozu4admKrJHi69sxNdsX_PGKVtOcnxL5qbC9bn4ybDQ@mail.gmail.com
Please go ahead and file Guix package definition patch to restore the
deleted ffmpeg patch

On Tue, May 28, 2024 at 10:44?AM Kaelyn <kaelyn.alexi@protonmail.com> wrote:
Toggle quote (9 lines)
>
> Hi,
>
> This patch re-introduces the gnu/packages/patches/audacity-ffmpeg-fallback.patch that was deleted by commit cf5f7a8bf9ca2288700fcf351bbca0fc341ec969, which upgraded audacity to 3.5.1. The issue with it applying to the new audacity version is that the "lib-ffmpeg-support" folder moved from under "libraries/" to be under "modules/mod-ffmpeg/"; I have simply restored the existing patch and fixed the paths to the files.
>
> Starting with the upgrade to audacity 3.5.1 with the patch dropped, any file that depended on ffmpeg to be loaded--such as the .m4a files produced by the recording app on an Android phone--fails to load. I also tried setting the path to the ffmpeg library through the GUI and had it consistently fail for me, and such files still could not be loaded (I have a few screenshots of the error messages). Restoring this patch has restored the ability to load .m4a and other files which depend on ffmpeg to be loaded, and without any special hoops needed to set up ffmpeg through the UI first.
>
> Cheers,
> Kaelyn
K
K
Kaelyn wrote on 28 May 21:21 +0200
(name . Andy Tai)(address . atai@atai.org)
20ga2U3L2l09_xoWPwqBKU5ifBDIwzz2Xw4TZKzKQv4bHZ-PUxYaVl8L4NYXhPBtXY-NzDxvwP3QNvYfrZJlDMZ-WqjCa7EOLvzlkUuSMLw=@protonmail.com
Hi,

On Tuesday, May 28th, 2024 at 11:58 AM, Andy Tai <atai@atai.org> wrote:

Toggle quote (4 lines)
>
> Please go ahead and file Guix package definition patch to restore the
> deleted ffmpeg patch

I apologize for not being clearer and including a proper reference; by "this patch", I meant https://issues.guix.gnu.org/71246.

Thanks,
Kaelyn

Toggle quote (10 lines)
> On Tue, May 28, 2024 at 10:44?AM Kaelyn kaelyn.alexi@protonmail.com wrote:
>
> > Hi,
> >
> > This patch re-introduces the gnu/packages/patches/audacity-ffmpeg-fallback.patch that was deleted by commit cf5f7a8bf9ca2288700fcf351bbca0fc341ec969, which upgraded audacity to 3.5.1. The issue with it applying to the new audacity version is that the "lib-ffmpeg-support" folder moved from under "libraries/" to be under "modules/mod-ffmpeg/"; I have simply restored the existing patch and fixed the paths to the files.
> >
> > Starting with the upgrade to audacity 3.5.1 with the patch dropped, any file that depended on ffmpeg to be loaded--such as the .m4a files produced by the recording app on an Android phone--fails to load. I also tried setting the path to the ffmpeg library through the GUI and had it consistently fail for me, and such files still could not be loaded (I have a few screenshots of the error messages). Restoring this patch has restored the ability to load .m4a and other files which depend on ffmpeg to be loaded, and without any special hoops needed to set up ffmpeg through the UI first.
> >
> > Cheers,
> > Kaelyn
A
A
Andy Tai wrote on 29 May 08:02 +0200
(address . 71246@debbugs.gnu.org)
CAJsg1E-9a9e2ZsstBdiD79R11Bzz=Mjb9=r1xEBaC9RxjGOTqA@mail.gmail.com
patch builds fine on x86-64
A
A
Andy Tai wrote on 29 May 22:30 +0200
(address . 71246@debbugs.gnu.org)
CAJsg1E9Fhv3z8ii=kLe+EifYQ+HV8RbMYzYQcLMbpwHhi5Za6A@mail.gmail.com
user guix
usertag 71246 + reviewed-looks-good
thanks

Guix QA review form submission:


Items marked as checked: Package builds, Commit messages
L
L
Ludovic Courtès wrote on 31 May 13:35 +0200
Re: [bug#71246] [PATCH] gnu: audacity: Re-add fallback to locate ffmpeg via pkg-config.
(name . Kaelyn Takata)(address . kaelyn.alexi@protonmail.com)(address . 71246-done@debbugs.gnu.org)
87ttietdrg.fsf@gnu.org
Kaelyn Takata <kaelyn.alexi@protonmail.com> skribis:

Toggle quote (6 lines)
> * gnu/packages/patches/audacity-ffmpeg-fallback.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it here.
> * gnu/packages/audio.scm (audacity)[patches]: Use it here.
>
> Change-Id: I848df8a9762216eb2b02afc3843e0e9806db14be

Hi! I added some of the info from your second message to the commit log
and committed.

Thanks!

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 71246@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 71246
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch