diff options
Diffstat (limited to 'media-sound/audacity/files/audacity-3.2.3-fix-rpaths.patch')
-rw-r--r-- | media-sound/audacity/files/audacity-3.2.3-fix-rpaths.patch | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/media-sound/audacity/files/audacity-3.2.3-fix-rpaths.patch b/media-sound/audacity/files/audacity-3.2.3-fix-rpaths.patch deleted file mode 100644 index 2f1578211c9c..000000000000 --- a/media-sound/audacity/files/audacity-3.2.3-fix-rpaths.patch +++ /dev/null @@ -1,144 +0,0 @@ -From: Benjamin Drung <benjamin.drung@canonical.com> -Date: Thu, 22 Sep 2022 19:52:43 +0200 -Subject: Fix rpath for private libraries on Linux - -Installing audacity on Linux will produce private libraries that have -`RUNPATH` set to the build directory instead of the installation -directory. - -The root cause is that the library directory is copied to the -installation directory without touching the libraries. The cmake wiki -says in RPATH handling caveats [1]: "Since install-side RPATH tweaking -is an operation that is done by target-specific installation handling, -any target that should have its install RPATH changed (e.g. to -`CMAKE_INSTALL_RPATH`) needs to end up in the installation via an -`install(TARGETS ...)` signature and not via directory-based copying." - -So replace `install(DIRECTORY ...)` by individual `install(TARGETS ...)` -for the libraries and modules. Then cmake will replace the `RUNPATH` to -`$ORIGIN/../lib/audacity`, which is still incorrect. Therefore set -`INSTALL_RPATH` explicitly. - -Fixes: https://github.com/audacity/audacity/issues/3289 -Forwarded: https://github.com/audacity/audacity/pull/3671 -[1] https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling#caveats -Signed-off-by: Benjamin Drung <benjamin.drung@canonical.com> ---- - CMakeLists.txt | 1 + - cmake-proxies/cmake-modules/AudacityFunctions.cmake | 19 +++++++++++++++++++ - modules/CMakeLists.txt | 7 ------- - modules/mod-script-pipe/CMakeLists.txt | 1 + - src/CMakeLists.txt | 10 ---------- - 5 files changed, 21 insertions(+), 17 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8428c8c..b9ff631 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -389,6 +389,7 @@ set( INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" ) - set( _LIBDIR "${CMAKE_INSTALL_LIBDIR}" ) - set( _DATADIR "${CMAKE_INSTALL_DATADIR}" ) - set( _PKGLIB "${_LIBDIR}/audacity" ) -+set( _PKGMODULE "${_PKGLIB}/modules" ) - set( _PKGDATA "${_DATADIR}/audacity/" ) - set( _MANDIR "${CMAKE_INSTALL_MANDIR}" ) - set( _MODDIR "${_DEST}/modules" ) -diff --git a/cmake-proxies/cmake-modules/AudacityFunctions.cmake b/cmake-proxies/cmake-modules/AudacityFunctions.cmake -index 47682eb..a8f144f 100644 ---- a/cmake-proxies/cmake-modules/AudacityFunctions.cmake -+++ b/cmake-proxies/cmake-modules/AudacityFunctions.cmake -@@ -338,6 +338,17 @@ function( canonicalize_node_name var node ) - set( "${var}" "${node}" PARENT_SCOPE ) - endfunction() - -+# Call install(TARGETS...) only on Linux systems (i.e. exclude MacOS and Windows) -+macro( install_target_linux target destination ) -+ if( NOT "${CMAKE_GENERATOR}" MATCHES "Xcode|Visual Studio*" AND NOT CMAKE_SYSTEM_NAME MATCHES "Darwin" ) -+ install( TARGETS "${target}" DESTINATION "${destination}" ) -+ endif() -+endmacro() -+ -+macro( install_audacity_module target ) -+ install_target_linux( "${target}" "${_PKGMODULE}" ) -+endmacro() -+ - function( audacity_module_fn NAME SOURCES IMPORT_TARGETS - ADDITIONAL_DEFINES ADDITIONAL_LIBRARIES LIBTYPE ) - -@@ -382,6 +393,7 @@ function( audacity_module_fn NAME SOURCES IMPORT_TARGETS - PROPERTIES - PREFIX "" - FOLDER "modules" # for IDE organization -+ INSTALL_RPATH "$ORIGIN/.." - ) - if( CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin" ) - add_custom_command( -@@ -423,6 +435,7 @@ function( audacity_module_fn NAME SOURCES IMPORT_TARGETS - PREFIX "" - FOLDER "libraries" # for IDE organization - INSTALL_NAME_DIR "" -+ INSTALL_RPATH "$ORIGIN" - BUILD_WITH_INSTALL_NAME_DIR YES - ) - endif() -@@ -525,6 +538,12 @@ function( audacity_module_fn NAME SOURCES IMPORT_TARGETS - endforeach() - set( GRAPH_EDGES "${GRAPH_EDGES}" PARENT_SCOPE ) - -+ # Note: Some modules set EXCLUDE_FROM_ALL afterwards to not be installed. -+ # Therefore only install libraries, but not modules here. -+ if( NOT REAL_LIBTYPE STREQUAL "MODULE" ) -+ install_target_linux( "${TARGET}" "${_PKGLIB}" ) -+ endif() -+ - # collect unit test targets if they are present - if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tests") - add_subdirectory(tests) -diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt -index d464383..15dead4 100644 ---- a/modules/CMakeLists.txt -+++ b/modules/CMakeLists.txt -@@ -16,12 +16,5 @@ foreach( MODULE ${MODULES} ) - add_subdirectory("${MODULE}") - endforeach() - --if( NOT CMAKE_SYSTEM_NAME MATCHES "Darwin" ) -- if( NOT "${CMAKE_GENERATOR}" MATCHES "Visual Studio*") -- install( DIRECTORY "${_DEST}/modules" -- DESTINATION "${_PKGLIB}" ) -- endif() --endif() -- - #propagate collected edges up to root CMakeLists.txt - set( GRAPH_EDGES "${GRAPH_EDGES}" PARENT_SCOPE ) -diff --git a/modules/mod-script-pipe/CMakeLists.txt b/modules/mod-script-pipe/CMakeLists.txt -index 5ee1862..ccfd50f 100644 ---- a/modules/mod-script-pipe/CMakeLists.txt -+++ b/modules/mod-script-pipe/CMakeLists.txt -@@ -15,3 +15,4 @@ set( DEFINES - ) - audacity_module( mod-script-pipe "${SOURCES}" "Audacity" - "${DEFINES}" "" ) -+install_audacity_module( mod-script-pipe ) -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 7b90c1b..c5f30ad 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -1621,17 +1621,7 @@ else() - DESTINATION "." - RESOURCE DESTINATION "${_APPDIR}/Resources" ) - else() -- - install( TARGETS ${TARGET} RUNTIME ) -- -- install( DIRECTORY "${_DEST}/${_LIBDIR}/" -- DESTINATION "${_LIBDIR}" -- USE_SOURCE_PERMISSIONS -- FILES_MATCHING PATTERN "*.so*" ) -- -- install( CODE "set( _LIBDIR \"${_LIBDIR}\")" ) -- install( SCRIPT "${CMAKE_SOURCE_DIR}/scripts/build/linux/fix_rpath.cmake" ) -- - install( FILES "${_INTDIR}/audacity.desktop" - DESTINATION "${_DATADIR}/applications" ) - install( FILES "${topdir}/LICENSE.txt" "${topdir}/README.txt" |