commit:     7cdbe0cf6a36c1271e1060a52a1f057e434d4939
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Jun  1 19:19:53 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Jun  2 15:14:07 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7cdbe0cf

media-plugins/calf: IUSE gtk -> gui, fix desktop file and buildsys

GNUInstallDirs patch makes downstream docdir patch obsolete, is prerequisite
for follow-up patches and as an aside, fixes library install dir.

Closes: https://bugs.gentoo.org/954142
Closes: https://bugs.gentoo.org/955628
Closes: https://bugs.gentoo.org/957044
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 media-plugins/calf/calf-0.90.6-r1.ebuild           |  75 +++++++++++
 .../calf/files/calf-0.90.6-desktop-file.patch      |  65 +++++++++
 .../calf/files/calf-0.90.6-gnuinstalldirs.patch    | 148 +++++++++++++++++++++
 media-plugins/calf/files/calf-0.90.6-lv2gui.patch  |  24 ++++
 4 files changed, 312 insertions(+)

diff --git a/media-plugins/calf/calf-0.90.6-r1.ebuild 
b/media-plugins/calf/calf-0.90.6-r1.ebuild
new file mode 100644
index 000000000000..4b6658e02954
--- /dev/null
+++ b/media-plugins/calf/calf-0.90.6-r1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic toolchain-funcs xdg
+
+DESCRIPTION="Set of open source instruments and effects for digital audio 
workstations"
+HOMEPAGE="https://calf-studio-gear.org/";
+
+if [[ ${PV} == *9999* ]] ; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/calf-studio-gear/calf.git";
+else
+       SRC_URI="https://github.com/calf-studio-gear/calf/archive/${PV}.tar.gz 
-> ${P}.tar.gz"
+       KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+fi
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+IUSE="cpu_flags_x86_sse experimental gui jack lash lv2"
+
+REQUIRED_USE="jack? ( gui )"
+
+BDEPEND="
+       virtual/pkgconfig
+"
+DEPEND="
+       >=app-accessibility/at-spi2-core-2.46.0
+       dev-libs/expat
+       dev-libs/glib:2
+       media-sound/fluidsynth:=
+       gui? (
+               x11-libs/cairo
+               x11-libs/gdk-pixbuf
+               x11-libs/gtk+:2
+               x11-libs/pango
+       )
+       jack? ( virtual/jack )
+       lash? ( media-sound/lash )
+       lv2? ( media-libs/lv2 )
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+       "${FILESDIR}/${P}-gnuinstalldirs.patch" # in 0.90.7
+       # pending upstream PRs:
+       "${FILESDIR}/${P}-desktop-file.patch" # bug 955628
+       "${FILESDIR}/${P}-lv2gui.patch" # bug 954142
+)
+
+src_configure() {
+       # Upstream append -ffast-math by default, however since libtool links 
C++
+       # shared libs with -nostdlib, this causes symbol resolution error for
+       # __powidn2 when using compiler-rt. Disable fast math on compiler-rt 
until
+       # a better fix is found.
+       [[ $(tc-get-c-rtlib) = "compiler-rt" ]] && append-cxxflags 
"-fno-fast-math"
+
+       local mycmakeargs=(
+               -DWANT_GUI=$(usex gui)
+               -DWANT_JACK=$(usex jack)
+               -DWANT_LASH=$(usex lash)
+               -DWANT_LV2=$(usex lv2)
+               -DWANT_LV2_GUI=$(usex lv2)
+               -DWANT_SORDI=ON
+               -DWANT_EXPERIMENTAL=$(usex experimental)
+       )
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+       mv "${ED}"/usr/share/bash-completion/completions/calf \
+               "${ED}"/usr/share/bash-completion/completions/calfjackhost || 
die "Failed to install bash completion"
+}

diff --git a/media-plugins/calf/files/calf-0.90.6-desktop-file.patch 
b/media-plugins/calf/files/calf-0.90.6-desktop-file.patch
new file mode 100644
index 000000000000..0472d08981cf
--- /dev/null
+++ b/media-plugins/calf/files/calf-0.90.6-desktop-file.patch
@@ -0,0 +1,65 @@
+From: https://github.com/calf-studio-gear/calf/pull/385
+
+From c88956484bc06cc3192303b71a6f4907d5ea34c5 Mon Sep 17 00:00:00 2001
+From: Johannes Lorenz <[email protected]>
+Date: Sat, 17 May 2025 16:26:03 +0200
+Subject: [PATCH] Fix calf.desktop
+
+The `Version` must be the "Version of the Desktop Entry Specification",
+and not of the application.
+
+This also updates/fixes the `Categories` section.
+
+Fixes https://955628.bugs.gentoo.org/attachment.cgi?id=928147 .
+---
+ .gitignore                      | 1 -
+ .svnignore                      | 1 -
+ CMakeLists.txt                  | 3 +--
+ calf.desktop.in => calf.desktop | 7 ++++---
+ configure.ac.deprecated         | 1 -
+ 5 files changed, 5 insertions(+), 8 deletions(-)
+ rename calf.desktop.in => calf.desktop (95%)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index bd723ed70..5b976127d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -200,7 +200,6 @@ else()
+ endif()
+ 
+ configure_file(config.h.cmake.in config.h)
+-configure_file(${PROJECT_NAME}.desktop.in ${PROJECT_NAME}.desktop)
+ include_directories(${CMAKE_BINARY_DIR})
+ 
+ #
+@@ -231,7 +230,7 @@ install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/scripts/
+         DESTINATION ${CMAKE_INSTALL_DOCDIR}/scripts FILES_MATCHING PATTERN 
"*.js")
+ install(DIRECTORY ${CMAKE_SOURCE_DIR}/sf2/
+         DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/sf2 
FILES_MATCHING PATTERN "*.sf2")
+-install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.desktop
++install(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.desktop
+         DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
+ install(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}jackhost.1
+         DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+diff --git a/calf.desktop.in b/calf.desktop
+similarity index 95%
+rename from calf.desktop.in
+rename to calf.desktop
+index 3514ee874..c0a2071ac 100644
+--- a/calf.desktop.in
++++ b/calf.desktop
+@@ -1,10 +1,11 @@
+ [Desktop Entry]
+-Categories=Application;AudioVideo;Audio;GNOME
++Type=Application
++Version=1.5
++
++Categories=AudioVideo;Audio;Sequencer;X-Jack;GTK
+ Exec=calfjackhost
+ Icon=calf
+ Terminal=false
+-Type=Application
+-Version=@VERSION@
+ 
+ Name=Calf Plugin Pack for JACK
+ Name[fr]=Ensemble de greffons Calf pour JACK

diff --git a/media-plugins/calf/files/calf-0.90.6-gnuinstalldirs.patch 
b/media-plugins/calf/files/calf-0.90.6-gnuinstalldirs.patch
new file mode 100644
index 000000000000..8f2a2aba34d4
--- /dev/null
+++ b/media-plugins/calf/files/calf-0.90.6-gnuinstalldirs.patch
@@ -0,0 +1,148 @@
+From 063812ffd37edb99e14f7a3d224fbf999a506252 Mon Sep 17 00:00:00 2001
+From: Johannes Lorenz <[email protected]>
+Date: Fri, 2 May 2025 13:59:50 +0200
+Subject: [PATCH] Use GNUInstallDirs for flexible `bin`, `lib` and `doc`
+
+---
+ CMakeLists.txt     | 16 ++++++++--------
+ src/CMakeLists.txt | 33 +++++++++++++++++----------------
+ 2 files changed, 25 insertions(+), 24 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index df2fde638..cfed21b69 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -210,21 +210,21 @@ add_subdirectory(icons)
+ 
+ include(GNUInstallDirs)
+ install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/
+-        DESTINATION share/doc/${PROJECT_NAME} FILES_MATCHING PATTERN "*.html")
++        DESTINATION ${CMAKE_INSTALL_DOCDIR} FILES_MATCHING PATTERN "*.html")
+ install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/images/
+-        DESTINATION share/doc/${PROJECT_NAME}/images FILES_MATCHING PATTERN 
"*.png")
++        DESTINATION ${CMAKE_INSTALL_DOCDIR}/images FILES_MATCHING PATTERN 
"*.png")
+ install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/images/
+-        DESTINATION share/doc/${PROJECT_NAME}/images FILES_MATCHING PATTERN 
"*.jpg")
++        DESTINATION ${CMAKE_INSTALL_DOCDIR}/images FILES_MATCHING PATTERN 
"*.jpg")
+ install(DIRECTORY 
${CMAKE_SOURCE_DIR}/doc/manuals/images/prettyPhoto/dark_rounded/
+-        DESTINATION share/doc/${PROJECT_NAME}/images/prettyPhoto/dark_rounded)
++        DESTINATION ${CMAKE_INSTALL_DOCDIR}/images/prettyPhoto/dark_rounded)
+ install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/images/icons/
+-        DESTINATION share/doc/${PROJECT_NAME}/images/icons)
++        DESTINATION ${CMAKE_INSTALL_DOCDIR}/images/icons)
+ install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/scripts
+-        DESTINATION share/doc/${PROJECT_NAME} FILES_MATCHING PATTERN "*.css")
++        DESTINATION ${CMAKE_INSTALL_DOCDIR} FILES_MATCHING PATTERN "*.css")
+ install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/scripts/
+-        DESTINATION share/doc/${PROJECT_NAME}/scripts FILES_MATCHING PATTERN 
"*.js")
++        DESTINATION ${CMAKE_INSTALL_DOCDIR}/scripts FILES_MATCHING PATTERN 
"*.js")
+ install(DIRECTORY ${CMAKE_SOURCE_DIR}/sf2/
+-        DESTINATION share/${PROJECT_NAME}/sf2 FILES_MATCHING PATTERN "*.sf2")
++        DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/sf2 
FILES_MATCHING PATTERN "*.sf2")
+ install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.desktop
+         DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
+ install(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}jackhost.1
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 1e1cd30d9..da22ec1ab 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -3,6 +3,7 @@
+ #
+ 
+ include(CheckLinkerFlag)
++include(GNUInstallDirs)
+ 
+ set(CMAKE_CXX_STANDARD 11)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+@@ -57,7 +58,7 @@ endif()
+ 
+ 
+ if(USE_LV2 AND USE_GUI)
+-    set(LV2DIR "${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2")
++    set(LV2DIR 
"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2")
+     add_library(${PROJECT_NAME}lv2gui SHARED gui.cpp gui_config.cpp 
gui_controls.cpp ctl_curve.cpp ctl_keyboard.cpp ctl_knob.cpp ctl_led.cpp 
ctl_tube.cpp ctl_vumeter.cpp ctl_frame.cpp ctl_fader.cpp ctl_buttons.cpp 
ctl_notebook.cpp ctl_meterscale.cpp ctl_combobox.cpp ctl_tuner.cpp 
ctl_phasegraph.cpp ctl_pattern.cpp metadata.cpp giface.cpp 
plugin_gui_window.cpp preset.cpp preset_gui.cpp lv2gui.cpp osctl.cpp utils.cpp 
ctl_linegraph.cpp drawingutils.cpp)
+     target_include_directories(${PROJECT_NAME}lv2gui PRIVATE 
${CMAKE_CURRENT_SOURCE_DIR})
+     check_linker_flag(CXX -Wl,-z,nodelete LINKER_SUPPORTS_NODELETE)
+@@ -81,7 +82,7 @@ if(USE_GUI AND USE_JACK)
+     target_link_libraries(${PROJECT_NAME}jackhost PRIVATE Threads::Threads 
${PROJECT_NAME}gui ${PROJECT_NAME} ${JACK_LIBRARIES} ${GTK_LIBRARIES} 
fluidsynth)
+     
+     set_target_properties(${PROJECT_NAME}jackhost PROPERTIES
+-        INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib/${PROJECT_NAME}"
++        INSTALL_RPATH 
"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
+         BUILD_WITH_INSTALL_RPATH TRUE
+     )
+ endif()
+@@ -109,59 +110,59 @@ if(USE_GUI)
+     install(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}-gui.xml
+             DESTINATION share/${PROJECT_NAME}/)
+     if(USE_JACK)
+-        install(TARGETS ${PROJECT_NAME}jackhost DESTINATION bin)
++        install(TARGETS ${PROJECT_NAME}jackhost DESTINATION 
${CMAKE_INSTALL_BINDIR})
+     endif()
+ endif()
+ 
+ # Install libs
+-install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib/${PROJECT_NAME})
++install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION 
${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME})
+ if(USE_GUI)
+-    install(TARGETS ${PROJECT_NAME}lv2gui DESTINATION lib/${PROJECT_NAME})
++    install(TARGETS ${PROJECT_NAME}lv2gui DESTINATION 
${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME})
+ endif()
+ 
+ if(USE_LV2)
+     # Create Lv2 install dir
+-    install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E 
make_directory 
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2\")"
++    install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E 
make_directory 
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2\")"
+             RESULT_VARIABLE calfResult)
+     if(NOT ${calfResult} EQUAL 0)
+-        message(FATAL_ERROR "Could not create 
${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/")
++        message(FATAL_ERROR "Could not create 
${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/")
+     endif()
+     # Create symlinks from Lv2 install dir to libs
+     install(CODE "execute_process( \
+         COMMAND \"${CMAKE_COMMAND}\" -E create_symlink \
+-      \"${CMAKE_INSTALL_PREFIX}/lib/${PROJECT_NAME}/lib${PROJECT_NAME}.so\" \
+-      
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}.so\"
 \
++      
\"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/lib${PROJECT_NAME}.so\"
 \
++      
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}.so\"
 \
+         )"
+         RESULT_VARIABLE calfResult
+     )
+     if(NOT ${calfResult} EQUAL 0)
+-        message(FATAL_ERROR "Could not create 
${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}.so")
++        message(FATAL_ERROR "Could not create 
${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}.so")
+     endif()
+     if(USE_GUI)
+         install(CODE "execute_process( \
+             COMMAND \"${CMAKE_COMMAND}\" -E create_symlink \
+-            
\"${CMAKE_INSTALL_PREFIX}/lib/${PROJECT_NAME}/lib${PROJECT_NAME}lv2gui.so\" \
+-            
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}lv2gui.so\"
 \
++            
\"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/lib${PROJECT_NAME}lv2gui.so\"
 \
++            
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}lv2gui.so\"
 \
+             )"
+             RESULT_VARIABLE calfResult
+         )
+         if(NOT ${calfResult} EQUAL 0)
+-            message(FATAL_ERROR "Could not create 
${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}lv2gui.so")
++            message(FATAL_ERROR "Could not create 
${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}lv2gui.so")
+         endif()
+     endif()
+ 
+     # Remove previous .ttl files
+-    file(GLOB ttl_files "${CMAKE_INSTALL_PREFIX}/lib/lv2/*.ttl")
++    file(GLOB ttl_files 
"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/*.ttl")
+     foreach(ttl_file ${ttl_files})
+         file(REMOVE "${ttl_file}")
+     endforeach()
+ 
+     # Install new .ttl files
+-    install(CODE "execute_process(COMMAND 
\"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}makerdf\" -m ttl -p 
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2\" -d 
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/\")")
++    install(CODE "execute_process(COMMAND 
\"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}makerdf\" -m ttl -p 
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2\"
 -d \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/\")")
+ 
+     # Check files with "sordi"
+     if(USE_SORDI)
+-        file(GLOB ttl_files 
"${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/*.ttl")
++        file(GLOB ttl_files 
"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/*.ttl")
+         foreach(ttl_file ${ttl_files})
+             install(
+                 CODE "execute_process(COMMAND \"${SORDI}\" -o turtle 
\"${ttl_file}\")"

diff --git a/media-plugins/calf/files/calf-0.90.6-lv2gui.patch 
b/media-plugins/calf/files/calf-0.90.6-lv2gui.patch
new file mode 100644
index 000000000000..4f31f3c46f13
--- /dev/null
+++ b/media-plugins/calf/files/calf-0.90.6-lv2gui.patch
@@ -0,0 +1,24 @@
+From: https://github.com/calf-studio-gear/calf/pull/384
+
+From 4f6adaa9bea90bfceaca02334a1a9f1642016444 Mon Sep 17 00:00:00 2001
+From: Johannes Lorenz <[email protected]>
+Date: Fri, 16 May 2025 20:54:44 +0200
+Subject: [PATCH] Fix #383: Only install lv2gui if Lv2 *and* GUI are set
+
+---
+ src/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index f8021af63..372af67a4 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -121,7 +121,7 @@ endif()
+ 
+ # Install libs
+ install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION 
${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME})
+-if(USE_GUI)
++if(USE_LV2 AND USE_GUI)
+     install(TARGETS ${PROJECT_NAME}lv2gui DESTINATION 
${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME})
+ endif()
+ 

Reply via email to