for some reason, the delay filter crashes on initialization.  this is
pretty bad, because it can crash any application that loads ladspa
plugins, whether they will be used or not.

I discovered that it was related to printing a double type.  it was
trying to print a decimal representation of a second, so I just
multiplied by 1000 and made it say 'ms' instead of 's'.

I suspect this is a bug in the compiler or libc.  to reproduce on amd64:

$ sudo pkg_add cmt ladspa
$ LADSPA_PATH=/usr/local/lib/ladspa listplugins

-- 
[email protected]
SDF Public Access UNIX System - http://sdf.lonestar.org

Index: Makefile
===================================================================
RCS file: /cvs/ports/audio/cmt/Makefile,v
retrieving revision 1.3
diff -N -u -p Makefile
--- Makefile    15 Sep 2007 21:26:00 -0000      1.3
+++ Makefile    5 Feb 2010 14:28:04 -0000
@@ -1,17 +1,17 @@
 # $OpenBSD: Makefile,v 1.3 2007/09/15 21:26:00 simon Exp $
 
-COMMENT=       computer music toolkit
+COMMENT=       CMT LADSPA plugins
 HOMEPAGE=      http://www.ladspa.org/
 CATEGORIES=    audio devel
 
 SHARED_ONLY=   Yes
-DISTNAME=      cmt_src_1.15
+DISTNAME=      cmt_src_1.16
 WRKDIST=       ${WRKDIR}/cmt
-PKGNAME=       cmt-1.15p0
+PKGNAME=       cmt-1.16
 EXTRACT_SUFX=  .tgz
 MASTER_SITES=  ${HOMEPAGE:=download/}
 
-# GPL
+# GPLv2
 PERMIT_PACKAGE_FTP=    Yes
 PERMIT_PACKAGE_CDROM=  Yes
 PERMIT_DISTFILES_FTP=  Yes
@@ -30,9 +30,14 @@ do-install:
        ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/cmt
        ${INSTALL_DATA} ${WRKDIST}/doc/*.html ${PREFIX}/share/doc/cmt
 
+post-patch:
+.for file in analogue canyondelay lofi phasemod syndrum vcf303
+       perl -pi -e 's,#include <malloc.h>,#include <stdlib.h>,' \
+               ${WRKSRC}/src/${file}.cpp
+.endfor
+
 # interactive regression test, that requires you to listen to stuff.
 # -> mostly useless
 NO_REGRESS=    Yes
 
 .include <bsd.port.mk>
-
Index: distinfo
===================================================================
RCS file: /cvs/ports/audio/cmt/distinfo,v
retrieving revision 1.2
diff -N -u -p distinfo
--- distinfo    5 Apr 2007 15:37:41 -0000       1.2
+++ distinfo    5 Feb 2010 14:28:04 -0000
@@ -1,5 +1,5 @@
-MD5 (cmt_src_1.15.tgz) = qi8GCayotphiXYYXDEJuLA==
-RMD160 (cmt_src_1.15.tgz) = /XZS/iBLY7JKn7BGiMy6uqvR/s8=
-SHA1 (cmt_src_1.15.tgz) = SNAghgfHLVfvvbi6VWlaqIGaDMQ=
-SHA256 (cmt_src_1.15.tgz) = C4FJOAQMdAPdJDZ7HbvwsNt6wR33RHEp6cG38ziQsek=
-SIZE (cmt_src_1.15.tgz) = 61522
+MD5 (cmt_src_1.16.tgz) = Fah15ar3nCCcIjur+0HLHA==
+RMD160 (cmt_src_1.16.tgz) = hEkYeVi6xcyuYQCQblntNIh4Rlc=
+SHA1 (cmt_src_1.16.tgz) = u/2znsqg5/bIUXZYqFwHYE47XF0=
+SHA256 (cmt_src_1.16.tgz) = USodfmmLng58aSICwp9L1whG1SJB7CVOGjJKuu9AVjU=
+SIZE (cmt_src_1.16.tgz) = 63909
Index: patches/patch-src_delay_cpp
===================================================================
RCS file: patches/patch-src_delay_cpp
diff -N -u -p patches/patch-src_delay_cpp
--- /dev/null   5 Feb 2010 07:28:04 -0000
+++ patches/patch-src_delay_cpp 5 Feb 2010 14:28:04 -0000
@@ -0,0 +1,25 @@
+$OpenBSD$
+--- src/delay.cpp.orig Wed Aug  7 14:37:02 2002
++++ src/delay.cpp      Fri Feb  5 06:26:56 2010
+@@ -283,15 +283,16 @@ initialise_delay() {
+       = lDelayTypeIndex * DELAY_LENGTH_COUNT + lDelayLengthIndex;
+       
+       char acLabel[100];
++      int maxDelay = int(afMaximumDelays[lDelayLengthIndex] * 1000);
+       sprintf(acLabel,
+-            "%s_%gs",
++            "%s_%d",
+             apcDelayTypeLabels[lDelayTypeIndex],
+-            afMaximumDelays[lDelayLengthIndex]);
++            maxDelay);
+       char acName[100];
+-      sprintf(acName, 
+-            "%s Delay Line (Maximum Delay %gs)",
++      sprintf(acName,
++            "%s Delay Line (Maximum Delay %d ms)",
+             apcDelayTypeNames[lDelayTypeIndex],
+-            afMaximumDelays[lDelayLengthIndex]);
++            maxDelay);
+       
+       psDescriptor = new CMT_Descriptor
+       (1053 + lPluginIndex,
Index: patches/patch-src_makefile
===================================================================
RCS file: /cvs/ports/audio/cmt/patches/patch-src_makefile,v
retrieving revision 1.2
diff -N -u -p patches/patch-src_makefile
--- patches/patch-src_makefile  4 Aug 2006 23:54:31 -0000       1.2
+++ patches/patch-src_makefile  5 Feb 2010 14:28:04 -0000
@@ -1,7 +1,7 @@
 $OpenBSD: patch-src_makefile,v 1.2 2006/08/04 23:54:31 espie Exp $
---- src/makefile.orig  Thu Dec 19 21:52:51 2002
-+++ src/makefile       Sat Aug  5 01:49:13 2006
-@@ -68,7 +68,7 @@ plugin:      $(PLUGIN_LIB)
+--- src/makefile.orig  Tue Nov  6 02:25:34 2007
++++ src/makefile       Mon Feb  1 01:15:30 2010
+@@ -66,7 +66,7 @@ plugin:      $(PLUGIN_LIB)
  targets:      $(PLUGIN_LIB)
  
  $(PLUGIN_LIB):        $(PLUGIN_OBJECTS)
@@ -10,7 +10,7 @@ $OpenBSD: patch-src_makefile,v 1.2 2006/08/04 23:54:31
                -o $(PLUGIN_LIB)                                        \
                $(PLUGIN_OBJECTS)                                       
  
-@@ -123,3 +123,7 @@ backup:            clean
+@@ -121,3 +121,7 @@ backup:            clean
  
###############################################################################
  
  

Reply via email to