Date: Fri, 06 Mar 2026 21:02:56 +0000 From: Vladimir Druzenko <vvd@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Cc: Valery <valery@vslash.com> Subject: git: 8fedf8cd90cc - main - audio/spiralsynthmodular: Fix "undefined symbol" errors at runtime Message-ID: <69ab4100.37d4b.16f1d8df@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by vvd: URL: https://cgit.FreeBSD.org/ports/commit/?id=8fedf8cd90ccc775af0f5e2a203f4c94f233bdd1 commit 8fedf8cd90ccc775af0f5e2a203f4c94f233bdd1 Author: Valery <valery@vslash.com> AuthorDate: 2026-03-06 20:55:38 +0000 Commit: Vladimir Druzenko <vvd@FreeBSD.org> CommitDate: 2026-03-06 21:02:13 +0000 audio/spiralsynthmodular: Fix "undefined symbol" errors at runtime * Behavior * - At runtime, for each synth plugin, we got: dlerror() output: /usr/local/lib/SpiralPlugins/AmpPlugin.so: Undefined symbol "_ZN10SpiralInfo6LOCALEE" * Why * - It seems this comes from the way newer compiler manage static properties. (SSM is 25yo). - This error has already been reported long times ago on Linux distro. * Fix * - A way to fix it without rewriting the wheel is to inline static properties in the header. While here improve port: - Add LICENSE. - Register dependiencies. - Replace CPPFLAGS and LIBS with USES=localbase. - Parametrize version in WRKSRC. - Remove unnecessary REINPLACE_CMD in SpiralSound/Plugins/LADSPAPlugin/Makefile.in. - Merge STRIP_CMD. PR: 293552 MFH: 2026Q1 --- audio/spiralsynthmodular/Makefile | 24 ++++---- .../files/patch-SpiralSound_SpiralInfo.C | 64 ++++++++++++++++++++ .../files/patch-SpiralSound_SpiralInfo.h | 70 ++++++++++++++++++++++ 3 files changed, 146 insertions(+), 12 deletions(-) diff --git a/audio/spiralsynthmodular/Makefile b/audio/spiralsynthmodular/Makefile index dfd4c5cb42a8..2dceb8fa932a 100644 --- a/audio/spiralsynthmodular/Makefile +++ b/audio/spiralsynthmodular/Makefile @@ -1,6 +1,6 @@ PORTNAME= spiralsynthmodular PORTVERSION= 0.2.2a -PORTREVISION= 13 +PORTREVISION= 14 CATEGORIES= audio MASTER_SITES= SF/spiralmodular/spiralmodular/${PORTVERSION}%20%28Latest%20Version%29 DISTNAME= spiralmodular-${PORTVERSION} @@ -9,19 +9,21 @@ MAINTAINER= ports@FreeBSD.org COMMENT= Object-oriented modular softsynth/sequencer/sampler WWW= https://www.pawfal.org/Software/SSM/ -BUILD_DEPENDS= ${LOCALBASE}/include/ladspa.h:audio/ladspa \ - jackd:audio/jack +LICENSE= GPLv2 +LICENSE_FILE= ${WRKSRC}/COPYING + +BUILD_DEPENDS= ${LOCALBASE}/include/ladspa.h:audio/ladspa LIB_DEPENDS= libfltk.so:x11-toolkits/fltk \ + libfontconfig.so:x11-fonts/fontconfig \ + libjack.so:audio/jack \ libsndfile.so:audio/libsndfile -USES= xorg -USE_XORG= x11 +USES= localbase xorg +USE_XORG= x11 xcursor xext xfixes xft xinerama xrender GNU_CONFIGURE= yes CONFIGURE_ENV= FLTK_CONFIG="${FLTK_CONFIG}" -CPPFLAGS+= -I${LOCALBASE}/include -LIBS+= -L${LOCALBASE}/lib -WRKSRC= ${WRKDIR}/spiralmodular-0.2.2 +WRKSRC= ${WRKDIR}/spiralmodular-${PORTVERSION:C|[a-z]+||} OPTIONS_DEFINE= OPTIMIZED_CFLAGS @@ -35,8 +37,6 @@ post-patch: s|^SpiralSound/Plugins/MidiPlugin/Makefile||; \ s|MidiPlugin||' \ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT} - @${REINPLACE_CMD} -e 's|-I/usr/X11R6/include|-I${LOCALBASE}/include|' \ - ${WRKSRC}/SpiralSound/Plugins/LADSPAPlugin/Makefile.in @${REINPLACE_CMD} -e 's|O_SYNC|O_FSYNC|' \ ${WRKSRC}/SpiralSound/Midi.C @${REINPLACE_CMD} -e 's|True|true|; s|False|false|' \ @@ -58,7 +58,7 @@ post-patch: s|fl_file_chooser.H|Fl_File_Chooser.H|g' post-install: - ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME} - ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/SpiralPlugins/*.so + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME} \ + ${STAGEDIR}${PREFIX}/lib/SpiralPlugins/*.so .include <bsd.port.mk> diff --git a/audio/spiralsynthmodular/files/patch-SpiralSound_SpiralInfo.C b/audio/spiralsynthmodular/files/patch-SpiralSound_SpiralInfo.C new file mode 100644 index 000000000000..b02b173350a1 --- /dev/null +++ b/audio/spiralsynthmodular/files/patch-SpiralSound_SpiralInfo.C @@ -0,0 +1,64 @@ +--- SpiralSound/SpiralInfo.C.orig 2003-08-16 06:16:08 UTC ++++ SpiralSound/SpiralInfo.C +@@ -31,25 +31,25 @@ float RandFloat (float s, float e) { + + + +-string SpiralInfo::LOCALE = "EN"; +-int SpiralInfo::BUFSIZE = 512; +-int SpiralInfo::FRAGSIZE = 256; +-int SpiralInfo::FRAGCOUNT = 8; +-int SpiralInfo::SAMPLERATE = 44100; +-long SpiralInfo::MAXSAMPLE = 32767; +-float SpiralInfo::VALUECONV = 1.0f/MAXSAMPLE; +-bool SpiralInfo::WANTMIDI = false; +-int SpiralInfo::FILTERGRAN = 50; +-string SpiralInfo::OUTPUTFILE = "/dev/dsp"; +-string SpiralInfo::MIDIFILE = "/dev/midi"; +-int SpiralInfo::POLY = 1; +-bool SpiralInfo::USEPLUGINLIST = false; +-unsigned SpiralInfo::GUI_COLOUR = 179; +-unsigned SpiralInfo::SCOPE_BG_COLOUR = fl_rgb_color (20, 60, 20); +-unsigned SpiralInfo::SCOPE_FG_COLOUR = fl_rgb_color (100, 200, 100); +-unsigned SpiralInfo::SCOPE_SEL_COLOUR = FL_WHITE; +-unsigned SpiralInfo::SCOPE_IND_COLOUR = fl_rgb_color (203, 255, 0); +-unsigned SpiralInfo::SCOPE_MRK_COLOUR = fl_rgb_color (155, 155, 50); ++//string SpiralInfo::LOCALE = "EN"; ++//int SpiralInfo::BUFSIZE = 512; ++//int SpiralInfo::FRAGSIZE = 256; ++//int SpiralInfo::FRAGCOUNT = 8; ++//int SpiralInfo::SAMPLERATE = 44100; ++//long SpiralInfo::MAXSAMPLE = 32767; ++//float SpiralInfo::VALUECONV = 1.0f/MAXSAMPLE; ++//bool SpiralInfo::WANTMIDI = false; ++//int SpiralInfo::FILTERGRAN = 50; ++//string SpiralInfo::OUTPUTFILE = "/dev/dsp"; ++//string SpiralInfo::MIDIFILE = "/dev/midi"; ++//int SpiralInfo::POLY = 1; ++//bool SpiralInfo::USEPLUGINLIST = false; ++//unsigned SpiralInfo::GUI_COLOUR = 179; ++//unsigned SpiralInfo::SCOPE_BG_COLOUR = fl_rgb_color (20, 60, 20); ++//unsigned SpiralInfo::SCOPE_FG_COLOUR = fl_rgb_color (100, 200, 100); ++//unsigned SpiralInfo::SCOPE_SEL_COLOUR = FL_WHITE; ++//unsigned SpiralInfo::SCOPE_IND_COLOUR = fl_rgb_color (203, 255, 0); ++//unsigned SpiralInfo::SCOPE_MRK_COLOUR = fl_rgb_color (155, 155, 50); + + /*int SpiralInfo::GUICOL_Tool=179; + int SpiralInfo::GUICOL_Button=181; +@@ -57,11 +57,11 @@ int SpiralInfo::GUIDEVICE_Box=30;*/ + int SpiralInfo::GUICOL_Device=181; + int SpiralInfo::GUIDEVICE_Box=30;*/ + +-int SpiralInfo::GUICOL_Tool=48; +-int SpiralInfo::GUICOL_Button=42; +-int SpiralInfo::GUICOL_Canvas=50; +-int SpiralInfo::GUICOL_Device=52; +-int SpiralInfo::GUIDEVICE_Box=30; ++//int SpiralInfo::GUICOL_Tool=48; ++//int SpiralInfo::GUICOL_Button=42; ++//int SpiralInfo::GUICOL_Canvas=50; ++//int SpiralInfo::GUICOL_Device=52; ++//int SpiralInfo::GUIDEVICE_Box=30; + + vector<string> SpiralInfo::PLUGINVEC; + diff --git a/audio/spiralsynthmodular/files/patch-SpiralSound_SpiralInfo.h b/audio/spiralsynthmodular/files/patch-SpiralSound_SpiralInfo.h new file mode 100644 index 000000000000..c29b654c9ea1 --- /dev/null +++ b/audio/spiralsynthmodular/files/patch-SpiralSound_SpiralInfo.h @@ -0,0 +1,70 @@ +--- SpiralSound/SpiralInfo.h.orig 2003-07-22 22:08:41 UTC ++++ SpiralSound/SpiralInfo.h +@@ -23,6 +23,8 @@ + #include <string> + #include <vector> + #include <stdlib.h> ++#include "FL/fl_draw.H" ++#include "FL/fl_message.H" + #include "Sample.h" + + using namespace std; +@@ -40,34 +42,34 @@ class SpiralInfo { + void SavePrefs(); + static void Alert (string Text); + static void Log (string Text); +- static int BUFSIZE; +- static int FRAGSIZE; +- static int FRAGCOUNT; +- static int SAMPLERATE; +- static long MAXSAMPLE; +- static float VALUECONV; +- static bool WANTMIDI; +- static int FILTERGRAN; +- static string OUTPUTFILE; +- static string MIDIFILE; +- static bool USEPLUGINLIST; +- static int POLY; +- static string LOCALE; +- static unsigned GUI_COLOUR; +- static unsigned SCOPE_BG_COLOUR; +- static unsigned SCOPE_FG_COLOUR; +- static unsigned SCOPE_SEL_COLOUR; +- static unsigned SCOPE_IND_COLOUR; +- static unsigned SCOPE_MRK_COLOUR; ++ inline static int BUFSIZE=512; ++ inline static int FRAGSIZE=256; ++ inline static int FRAGCOUNT=8; ++ inline static int SAMPLERATE=44100; ++ inline static long MAXSAMPLE=32767; ++ inline static float VALUECONV=1.0f/MAXSAMPLE; ++ inline static bool WANTMIDI=false; ++ inline static int FILTERGRAN=50; ++ inline static string OUTPUTFILE="/dev/dsp"; ++ inline static string MIDIFILE="/dev/midi"; ++ inline static bool USEPLUGINLIST=false; ++ inline static int POLY=1; ++ inline static string LOCALE="EN"; ++ inline static unsigned GUI_COLOUR=179; ++ inline static unsigned SCOPE_BG_COLOUR=fl_rgb_color (20, 60, 20); ++ inline static unsigned SCOPE_FG_COLOUR=fl_rgb_color (100, 200, 100); ++ inline static unsigned SCOPE_SEL_COLOUR= FL_WHITE; ++ inline static unsigned SCOPE_IND_COLOUR= fl_rgb_color (203, 255, 0); ++ inline static unsigned SCOPE_MRK_COLOUR= fl_rgb_color (155, 155, 50); + static SpiralInfo* Get(); + void SetColours(); + static string PLUGIN_PATH; + static vector<string> PLUGINVEC; +- static int GUICOL_Tool; +- static int GUICOL_Button; +- static int GUICOL_Canvas; +- static int GUICOL_Device; +- static int GUIDEVICE_Box; ++ inline static int GUICOL_Tool=48; ++ inline static int GUICOL_Button=42; ++ inline static int GUICOL_Canvas=50; ++ inline static int GUICOL_Device=52; ++ inline static int GUIDEVICE_Box=30; + private: + string m_ResFileName; + int m_Version;home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ab4100.37d4b.16f1d8df>
