* gnu/packages/audio.scm (audacity): Update to 3.2.1. [source]: Switch to GIT-FETCH. [inputs]: Remove LIBMAD. Add MPG123 and WAVPACK. [arguments]: Add configure flag to prevent spurious dependency. Adjust fix-cmake-rpath phase. Delete obsolete phases. * gnu/packages/patches/audacity-ffmpeg-fallback.patch: Adjust for 3.2.1.
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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/libraries/lib-ffmpeg-support/CMakeLists.txt
 | |
| +++ b/libraries/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/libraries/lib-ffmpeg-support/FFmpegFunctions.cpp
 | |
| +++ b/libraries/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 {};
 | |
|     }
 | |
|  };
 |