Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] cabbage: update to 2.9.0.
@ 2024-04-11  3:30 oreo639
  2024-04-11  3:58 ` [PR PATCH] [Updated] " oreo639
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: oreo639 @ 2024-04-11  3:30 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1241 bytes --]

There is a new pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages cabbage
https://github.com/void-linux/void-packages/pull/49798

cabbage: update to 2.9.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/49798.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-cabbage-49798.patch --]
[-- Type: text/x-diff, Size: 12355 bytes --]

From d5ac8955248be3ae96305ed515da379a9c790150 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
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 <array>
-+
- 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 <me@laserbat.pw>"
 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/
 }

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PR PATCH] [Updated] cabbage: update to 2.9.0.
  2024-04-11  3:30 [PR PATCH] cabbage: update to 2.9.0 oreo639
@ 2024-04-11  3:58 ` oreo639
  2024-04-15  2:08 ` oreo639
  2024-04-20  0:57 ` [PR PATCH] [Merged]: " oreo639
  2 siblings, 0 replies; 4+ messages in thread
From: oreo639 @ 2024-04-11  3:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1246 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages cabbage
https://github.com/void-linux/void-packages/pull/49798

cabbage: update to 2.9.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/49798.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-cabbage-49798.patch --]
[-- Type: text/x-diff, Size: 12669 bytes --]

From 6b3b57403696d405bc44051abba6c2306a860cc8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
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   |  44 +++++
 srcpkgs/cabbage/patches/plugin-path.patch |  13 --
 srcpkgs/cabbage/template                  | 188 ++++++++++------------
 4 files changed, 126 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 <array>
-+
- namespace juce
- {
- 
diff --git a/srcpkgs/cabbage/patches/juce-musl.patch b/srcpkgs/cabbage/patches/juce-musl.patch
new file mode 100644
index 00000000000000..7b43429d9ec2a3
--- /dev/null
+++ b/srcpkgs/cabbage/patches/juce-musl.patch
@@ -0,0 +1,44 @@
+--- 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
+
+--- a/JUCE/modules/juce_core/juce_core.cpp
++++ b/JUCE/modules/juce_core/juce_core.cpp
+@@ -102,7 +102,7 @@
+  #include <net/if.h>
+  #include <sys/ioctl.h>
+ 
+- #if ! (JUCE_ANDROID || JUCE_WASM)
++ #if ! (JUCE_ANDROID || JUCE_WASM) && defined(__GLIBC__)
+   #include <execinfo.h>
+  #endif
+ #endif
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 <me@laserbat.pw>"
 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/
 }

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PR PATCH] [Updated] cabbage: update to 2.9.0.
  2024-04-11  3:30 [PR PATCH] cabbage: update to 2.9.0 oreo639
  2024-04-11  3:58 ` [PR PATCH] [Updated] " oreo639
@ 2024-04-15  2:08 ` oreo639
  2024-04-20  0:57 ` [PR PATCH] [Merged]: " oreo639
  2 siblings, 0 replies; 4+ messages in thread
From: oreo639 @ 2024-04-15  2:08 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1246 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages cabbage
https://github.com/void-linux/void-packages/pull/49798

cabbage: update to 2.9.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/49798.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-cabbage-49798.patch --]
[-- Type: text/x-diff, Size: 12712 bytes --]

From 7dba8fbd59cb009f3a83057bc6243258e8b591dd Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
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   |  44 +++++
 srcpkgs/cabbage/patches/plugin-path.patch |  13 --
 srcpkgs/cabbage/template                  | 190 ++++++++++------------
 4 files changed, 127 insertions(+), 133 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 <array>
-+
- namespace juce
- {
- 
diff --git a/srcpkgs/cabbage/patches/juce-musl.patch b/srcpkgs/cabbage/patches/juce-musl.patch
new file mode 100644
index 00000000000000..7b43429d9ec2a3
--- /dev/null
+++ b/srcpkgs/cabbage/patches/juce-musl.patch
@@ -0,0 +1,44 @@
+--- 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
+
+--- a/JUCE/modules/juce_core/juce_core.cpp
++++ b/JUCE/modules/juce_core/juce_core.cpp
+@@ -102,7 +102,7 @@
+  #include <net/if.h>
+  #include <sys/ioctl.h>
+ 
+- #if ! (JUCE_ANDROID || JUCE_WASM)
++ #if ! (JUCE_ANDROID || JUCE_WASM) && defined(__GLIBC__)
+   #include <execinfo.h>
+  #endif
+ #endif
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..196fa7b7cfe5c9 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 <me@laserbat.pw>"
 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"
-nocross="Projucer in template uses compiled binary"
+skip_extraction="juce-${_jucever}.tar.gz vstsdk${_vstsdkver}.zip heads.zip"
+patch_args="-Np1 --binary"
+nocross="Fails to cross-compile juceaide"
 
-# 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/
 }

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PR PATCH] [Merged]: cabbage: update to 2.9.0.
  2024-04-11  3:30 [PR PATCH] cabbage: update to 2.9.0 oreo639
  2024-04-11  3:58 ` [PR PATCH] [Updated] " oreo639
  2024-04-15  2:08 ` oreo639
@ 2024-04-20  0:57 ` oreo639
  2 siblings, 0 replies; 4+ messages in thread
From: oreo639 @ 2024-04-20  0:57 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1090 bytes --]

There's a merged pull request on the void-packages repository

cabbage: update to 2.9.0.
https://github.com/void-linux/void-packages/pull/49798

Description:
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-04-20  0:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-11  3:30 [PR PATCH] cabbage: update to 2.9.0 oreo639
2024-04-11  3:58 ` [PR PATCH] [Updated] " oreo639
2024-04-15  2:08 ` oreo639
2024-04-20  0:57 ` [PR PATCH] [Merged]: " oreo639

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).