From d5ac8955248be3ae96305ed515da379a9c790150 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Wed, 10 Apr 2024 18:37:13 -0700 Subject: [PATCH] cabbage: update to 2.9.0. --- srcpkgs/cabbage/patches/fix-include.patch | 13 -- srcpkgs/cabbage/patches/juce-musl.patch | 33 ++++ srcpkgs/cabbage/patches/plugin-path.patch | 13 -- srcpkgs/cabbage/template | 188 ++++++++++------------ 4 files changed, 115 insertions(+), 132 deletions(-) delete mode 100644 srcpkgs/cabbage/patches/fix-include.patch create mode 100644 srcpkgs/cabbage/patches/juce-musl.patch delete mode 100644 srcpkgs/cabbage/patches/plugin-path.patch diff --git a/srcpkgs/cabbage/patches/fix-include.patch b/srcpkgs/cabbage/patches/fix-include.patch deleted file mode 100644 index 07e0dd1818152c..00000000000000 --- a/srcpkgs/cabbage/patches/fix-include.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: cabbage-2.5.0/JUCE/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp -=================================================================== ---- cabbage-2.5.0.orig/JUCE/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp -+++ cabbage-2.5.0/JUCE/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp -@@ -24,6 +24,8 @@ - ============================================================================== - */ - -+#include -+ - namespace juce - { - diff --git a/srcpkgs/cabbage/patches/juce-musl.patch b/srcpkgs/cabbage/patches/juce-musl.patch new file mode 100644 index 00000000000000..b66a9b0b0178b6 --- /dev/null +++ b/srcpkgs/cabbage/patches/juce-musl.patch @@ -0,0 +1,33 @@ +--- a/JUCE/modules/juce_core/native/juce_linux_SystemStats.cpp ++++ b/JUCE/modules/juce_core/native/juce_linux_SystemStats.cpp +@@ -198,7 +198,7 @@ String SystemStats::getComputerName() + + String SystemStats::getUserLanguage() + { +- #if JUCE_BSD ++ #if JUCE_BSD || !defined(__GLIBC__) + if (auto langEnv = getenv ("LANG")) + return String::fromUTF8 (langEnv).upToLastOccurrenceOf (".UTF-8", false, true); + +@@ -210,7 +210,7 @@ String SystemStats::getUserLanguage() + + String SystemStats::getUserRegion() + { +- #if JUCE_BSD ++ #if JUCE_BSD || !defined(__GLIBC__) + return {}; + #else + return getLocaleValue (_NL_IDENTIFICATION_TERRITORY); + +--- a/JUCE/modules/juce_core/system/juce_SystemStats.cpp ++++ b/JUCE/modules/juce_core/system/juce_SystemStats.cpp +@@ -138,7 +138,7 @@ String SystemStats::getStackBacktrace() + { + String result; + +- #if JUCE_ANDROID || JUCE_MINGW || JUCE_WASM ++ #if JUCE_ANDROID || JUCE_MINGW || JUCE_WASM || !defined(__GLIBC__) + jassertfalse; // sorry, not implemented yet! + + #elif JUCE_WINDOWS + diff --git a/srcpkgs/cabbage/patches/plugin-path.patch b/srcpkgs/cabbage/patches/plugin-path.patch deleted file mode 100644 index 5ab69e04483627..00000000000000 --- a/srcpkgs/cabbage/patches/plugin-path.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: cabbage-2.5.0/cabbage/Source/Utilities/CabbageExportPlugin.cpp -=================================================================== ---- cabbage-2.5.0.orig/cabbage/Source/Utilities/CabbageExportPlugin.cpp -+++ cabbage-2.5.0/cabbage/Source/Utilities/CabbageExportPlugin.cpp -@@ -84,7 +84,7 @@ void PluginExporter::exportPlugin (Strin - } - else if (type == "Standalone") - { -- pluginFilename = currentApplicationDirectory + "/CabbagePlugin." + fileExtension; -+ pluginFilename = currentApplicationDirectory + "/../lib/vst/CabbagePlugin." + fileExtension; - } - - File VSTData (pluginFilename); diff --git a/srcpkgs/cabbage/template b/srcpkgs/cabbage/template index 911af80be28d70..ce65248efff95f 100644 --- a/srcpkgs/cabbage/template +++ b/srcpkgs/cabbage/template @@ -1,151 +1,127 @@ # Template file for 'cabbage' pkgname=cabbage -version=2.5.0 -revision=2 -# specified in buildLinux.sh -_jucever=5.4.7 +version=2.9.0 +revision=1 +# specified in build.py +_jucever=6.1.2 _vstsdkver=3611_22_10_2018_build_34 -build_wrksrc="cabbage" -hostmakedepends="pkg-config xorg-server-xvfb" +build_style=cmake +configure_args="-DJUCE_TARGET_ARCHITECTURE=${XBPS_TARGET_MACHINE}" +hostmakedepends="pkg-config" makedepends="libfreeglut-devel libcurl-devel jack-devel libXcomposite-devel libXrandr-devel libXcursor-devel libX11-devel libXinerama-devel MesaLib-devel - gtk+3-devel webkit2gtk-devel csound alsa-lib-devel libsndfile-devel xvfb-run" + gtk+3-devel libwebkit2gtk41-devel csound alsa-lib-devel libsndfile-devel" depends="csound" short_desc="Framework for audio software development" maintainer="Olga U " license="GPL-3.0-or-later" homepage="https://cabbageaudio.com/" -distfiles="https://github.com/WeAreROLI/JUCE/archive/${_jucever}.tar.gz +distfiles="https://github.com/WeAreROLI/JUCE/archive/${_jucever}.tar.gz>juce-${_jucever}.tar.gz https://github.com/rorywalsh/cabbage/archive/v${version}.tar.gz https://cabbageaudio.com/beta/heads.zip https://download.steinberg.net/sdk_downloads/vstsdk${_vstsdkver}.zip" -checksum="0f446cf09177e559d2f2e9a77a78faed611cc869e219a7dc859a6e9b72eca64d - 68d2868ee72092ff1f809d472f561f5317512be91f1274390386afea248e78a2 +checksum="7b519711f65bf14054cd5b579d936920066cfa15b60895c04bd9fa0cb087be28 + 66e81355399acebcea4e5723ec0d865f8458a8dbd0ddcde5f7fc714a04e51268 6167199d752fa301e93f1383f9ad700ef646611db53c97d7433fffdb19765e29 de64ff1b5b40a7fdc2de873e80d911ffa9fd6b82435a555dda1e8edc267d1fa3" +skip_extraction="juce-${_jucever}.tar.gz vstsdk${_vstsdkver}.zip heads.zip" +patch_args="-Np1 --binary" nocross="Projucer in template uses compiled binary" -# vsx accel stuff from libpng is not shipped -case "$XBPS_TARGET_MACHINE" in - ppc*) CXXFLAGS="-DPNG_POWERPC_VSX_OPT=0" ;; -esac - -if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then - LDFLAGS=" -latomic" -fi - -# without TARGET_ARCH, the build system will assume -march=native, -# which is wrong as we're building a generic package and -march does -# not even always work -case "$XBPS_TARGET_MACHINE" in - i686*) _tarch="-mtune=i686";; - x86_64*) _tarch="-march=x86-64";; - aarch64*) _tarch="-march=armv8-a";; - armv5te*) _tarch="-march=armv5te";; - armv6*) _tarch="-march=armv6";; - armv7*) _tarch="-march=armv7-a";; - ppc64le*) _tarch="-mcpu=powerpc64le";; - ppc64*) _tarch="-mcpu=970";; - ppc*) _tarch="-mcpu=powerpc";; - mips*) _tarch="-mtune=mips32r2";; - *) broken="Unsupported architecture";; -esac +CXXFLAGS="-DJUCER_ENABLE_GPL_MODE=1" +# vsx accel stuff from libpng is not shipped case "$XBPS_TARGET_MACHINE" in - *-musl) makedepends+=" libexecinfo-devel" - broken="error: '_NL_IDENTIFICATION_LANGUAGE' was not declared in this scope" ;; + ppc*) CXXFLAGS+=" -DPNG_POWERPC_VSX_OPT=0" ;; esac -Projucer() { - # This is needed as a workaround for a bug in Projucer - # https://github.com/WeAreROLI/JUCE/issues/422 - # The HOME variable is spoofed because it looks for headers in - # ~/SDKs/ (path hardcoded) - # TODO: use xvfb-run script for testing - - xvfb-run \ - "${wrksrc}/JUCE/extras/Projucer/Builds/LinuxMakefile/build/Projucer" "$@" +post_extract() { + vsrcextract -C JUCE juce-${_jucever}.tar.gz + vsrcextract -C SDKs/VST_SDK vstsdk${_vstsdkver}.zip + vsrcextract -C SDKs/VST_SDK/VST3_SDK/pluginterfaces/vst2.x heads.zip } -post_extract() { - mkdir SDKs - mv VST_SDK SDKs - mv vst2.x SDKs/VST_SDK/VST3_SDK/pluginterfaces - mv cabbage-${version} cabbage - mv JUCE-${_jucever} JUCE - cd "${wrksrc}/cabbage" - - # There are lots of hardcoded paths that need to be rewritten - vsed -e 's@sourcecode/@@' -i CabbageLite.jucer - - for f in *jucer; do - vsed -e "s@/usr/local/include/csound@/usr/include/csound@g" \ - -e "s@/usr/local/lib@/usr/lib@g" \ - -i "$f" - done +post_patch() { + vsed -e '/opcodeFile\ +=/s#/opcodes.txt#/usr/share/doc/cabbage/opcodes.txt#' \ + -i Source/CodeEditor/CabbageCodeEditor.cpp - vsed -e "s|/usr/local/include/csound|/usr/include/csound|g" \ - -i Builds/LinuxMakefile/buildCabbage + vsed -e '/CabbagePlugin\(Synth\|Effect\)/s#"/#"/usr/lib/vst/#' \ + -i Source/Utilities/CabbageExportPlugin.cpp - vsed -e '/opcodeFile\ +=/s#/#/../share/doc/cabbage/#' \ - -i Source/CodeEditor/CabbageCodeEditor.cpp + if [ "${XBPS_TARGET_MACHINE}" = "x86_64" ]; then + vsed -e 's/x86_64-linux/${XBPS_TARGET_MACHINE}-linux/' \ + -i Source/Utilities/CabbageExportPlugin.cpp + fi # Fix compilation on i686 vsed -e 's/__sigemptyset/sigemptyset/' \ - -i ../JUCE/modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c + -i JUCE/modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c + + vsed -e 's/webkit2gtk-4.0/webkit2gtk-4.1/' \ + -i JUCE/extras/Build/CMake/JUCEUtils.cmake - vsed -e "s/JUCER_ENABLE_GPL_MODE 0/JUCER_ENABLE_GPL_MODE 1/" \ - -i ../JUCE/extras/Projucer/JuceLibraryCode/AppConfig.h + vsed -e 's/webkit2gtk-4.0/webkit2gtk-4.1/' \ + -i JUCE/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp } -do_build() { - local oldhome=$HOME +pre_configure() { + # Searches for VST SDK in $HOME + oldhome=$HOME HOME=$wrksrc - cd "${wrksrc}/JUCE/extras/Projucer/Builds/LinuxMakefile/" - make ${makejobs} TARGET_ARCH="${_tarch}" - - cd "${wrksrc}/cabbage/Builds/LinuxMakefile" - - Projucer --resave ../../CabbageIDE.jucer - mv Makefile MakeCabbageIDE - make -f MakeCabbageIDE ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}" - - Projucer --resave ../../CabbagePlugin.jucer - mv Makefile MakePluginEffect - make -f MakePluginEffect ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}" - mv ./build/CabbagePlugin.so ./build/CabbagePluginEffect.so +} - Projucer --resave ../../CabbagePluginSynth.jucer - mv Makefile MakePluginSynth - make -f MakePluginSynth ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}" - mv ./build/CabbagePlugin.so ./build/CabbagePluginSynth.so +post_configure() { + mkdir -p buildPluginEffect buildPluginSynth buildPluginMidiEffect buildCLIconverter + ( + cd buildPluginEffect + configure_args+=" -DPROJECT_NAME=CabbagePluginEffect" + do_configure + ) + ( + cd buildPluginSynth + configure_args+=" -DPROJECT_NAME=CabbagePluginSynth" + do_configure + ) + ( + cd buildPluginMidiEffect + configure_args+=" -DPROJECT_NAME=CabbagePluginMidiEffect" + do_configure + ) + ( + cd buildCLIconverter + configure_args+=" -DPROJECT_NAME=CLIConverter" + do_configure + ) - Projucer --resave ../../CabbageLite.jucer - cp -r ../../../JUCE/modules/juce_audio_plugin_client/ ../../JuceLibraryCode/modules/ - mv Makefile MakeCabbageLite - make -f MakeCabbageLite ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}" HOME=$oldhome } -do_install() { - cd "${wrksrc}/cabbage/Builds/LinuxMakefile" +post_build() { + ( cd buildPluginEffect && NINJA_STATUS="[2/5][%f/%t] " do_build ) + ( cd buildPluginSynth && NINJA_STATUS="[3/5][%f/%t] " do_build ) + ( cd buildPluginMidiEffect && NINJA_STATUS="[4/5][%f/%t] " do_build ) + ( cd buildCLIconverter && NINJA_STATUS="[5/5][%f/%t] " do_build ) +} - find ../../Examples -name '.DS_Store' -delete - find ../../Examples -name '*_Log.txt' -delete +do_install() { + find Examples -name '.DS_Store' -delete + find Examples -name '*_Log.txt' -delete - vbin build/Cabbage - vbin build/CabbageLite + vbin build/Cabbage_artefacts/None/Cabbage + vbin buildCLIconverter/build/CLIConverter_artefacts/None/CLIConverter vmkdir usr/lib/vst - vinstall build/CabbagePluginEffect.so 755 usr/lib/vst - vinstall build/CabbagePluginSynth.so 755 usr/lib/vst - - vdoc ../opcodes.txt + for plugin in PluginEffect PluginSynth PluginMidiEffect; do + ( + cd "build${plugin}/build/Cabbage${plugin}_artefacts/None" + vinstall "VST/libCabbage${plugin}.so" 755 usr/lib/vst + vinstall "VST3/Cabbage${plugin}.vst3/Contents/${XBPS_TARGET_MACHINE}-linux/Cabbage${plugin}.so" 755 "usr/lib/vst/Cabbage${plugin}.vst3/Contents/${XBPS_TARGET_MACHINE}-linux/" + ) + done - vinstall ../../Images/cabbage.png 644 usr/share/icons/hicolor/512x512/apps/ - vinstall Cabbage.desktop 644 usr/share/applications/ - vinstall CabbageLite.desktop 644 usr/share/applications/ + vinstall Images/cabbage.png 644 usr/share/icons/hicolor/512x512/apps/ + vinstall Installers/Linux/Cabbage.desktop 644 usr/share/applications/ vmkdir usr/share/doc/cabbage/examples - vcopy '../../Examples/*' usr/share/doc/cabbage/examples/ + vcopy 'Examples/*' usr/share/doc/cabbage/examples/ }