ports/64310: audio/tclmidi port doesn't compile on 5.x
Dimitry Andric
dimitry at andric.com
Mon Mar 15 20:00:34 UTC 2004
>Number: 64310
>Category: ports
>Synopsis: audio/tclmidi port doesn't compile on 5.x
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Mar 15 12:00:34 PST 2004
>Closed-Date:
>Last-Modified:
>Originator: Dimitry Andric
>Release: FreeBSD 5.2-CURRENT i386
>Organization:
n/a
>Environment:
System: FreeBSD tensor.xs4all.nl 5.2-CURRENT FreeBSD 5.2-CURRENT #0: Thu Mar 11 18:44:55 CET 2004 dim at vfbsd5.dim:/usr/obj/usr/src/sys/TENSOR i386
>Description:
The audio/tclmidi port doesn't compile on 5.x-CURRENT, due to usage of an
old-style C++ header, strstream.h. (Note that it compiles fine on 4.9-STABLE,
but I didn't test any earlier FreeBSD versions.)
>How-To-Repeat:
Uncomment the BROKEN part of audio/tclmidi's Makefile and try to build the port.
This will fail with errors about strstream.h missing.
>Fix:
I cooked up this patch, which adds a placeholder strstream.h file in the
workdir, and patches some of the Makefile.in's to use the workdir in their
include path.
I'm not entirely sure if the EXTRA_PATCHES in an OSVERSION-if is the right way
to do this, but it does work... Although you'll get a lot of warnings during
building about the usage of the old-style headers.
Rewriting this port to use ISO C++ would maybe be better, but will make the diff
a lot larger. Also, the tclmidi program doesn't really seem to be actively
maintained anyway.
diff -urNd tclmidi/Makefile tclmidi.dim/Makefile
--- tclmidi/Makefile Sun Mar 7 22:59:35 2004
+++ tclmidi.dim/Makefile Mon Mar 15 20:36:56 2004
@@ -36,7 +36,10 @@
.include <bsd.port.pre.mk>
.if ${OSVERSION} >= 502000
-BROKEN= "Does not compile"
+EXTRA_PATCHES= ${PATCHDIR}/smf.patch ${PATCHDIR}/song.patch
+
+post-extract:
+ @${CP} -f ${FILESDIR}/strstream.h ${WRKSRC}
.endif
post-install:
diff -urNd tclmidi/files/smf.patch tclmidi.dim/files/smf.patch
--- tclmidi/files/smf.patch Thu Jan 1 01:00:00 1970
+++ tclmidi.dim/files/smf.patch Mon Mar 15 20:31:51 2004
@@ -0,0 +1,12 @@
+--- smf/Makefile.in.orig Thu Oct 10 05:32:53 1996
++++ smf/Makefile.in Mon Mar 15 16:30:42 2004
+@@ -14,7 +14,8 @@
+ VPATH = @srcdir@
+
+ CFLAGS = @CFLAGS@ @DEFS@
+-CC_SWITCHES = @CFLAGS@ @DEFS@ -I${TCL_GENERIC_DIR} ${SHLIB_CFLAGS}
++CC_SWITCHES = @CFLAGS@ @DEFS@ -I${TCL_GENERIC_DIR} ${SHLIB_CFLAGS} \
++ -I$(srcdir)/../smf -I$(srcdir)/../song -I$(srcdir)/.. -I$(srcdir)
+
+ SMFFILES = SMFUtils.o SMFHead.o SMFTrack.o
+ SMFFILES_SRC = SMFUtils.cxx SMFHead.cxx SMFTrack.cxx
diff -urNd tclmidi/files/song.patch tclmidi.dim/files/song.patch
--- tclmidi/files/song.patch Thu Jan 1 01:00:00 1970
+++ tclmidi.dim/files/song.patch Mon Mar 15 20:31:51 2004
@@ -0,0 +1,11 @@
+--- song/Makefile.in.orig Thu Oct 10 05:32:55 1996
++++ song/Makefile.in Mon Mar 15 16:39:34 2004
+@@ -15,7 +15,7 @@
+
+ CFLAGS = @CFLAGS@ @DEFS@
+ CC_SWITCHES = @CFLAGS@ @DEFS@ -I${TCL_GENERIC_DIR} ${SHLIB_CFLAGS} \
+- -I$(srcdir)/../events -I$(srcdir)/../rb -I$(srcdir)/../smf -I$(srcdir)
++ -I$(srcdir)/../events -I$(srcdir)/../rb -I$(srcdir)/../smf -I$(srcdir)/.. -I$(srcdir)
+
+ SONGFILES = EvntTree.o Song.o
+ SONGFILES_SRC = EvntTree.cxx Song.cxx
diff -urNd tclmidi/files/strstream.h tclmidi.dim/files/strstream.h
--- tclmidi/files/strstream.h Thu Jan 1 01:00:00 1970
+++ tclmidi.dim/files/strstream.h Mon Mar 15 20:31:51 2004
@@ -0,0 +1,44 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is NOT an official part of the GNU ISO C++ Library. This
+// library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _CPP_BACKWARD_STRSTREAM_H
+#define _CPP_BACKWARD_STRSTREAM_H 1
+
+// Backward warning isn't needed here, you'll get it from strstream anyway.
+//#include "backward_warning.h"
+#include <strstream>
+
+using std::strstreambuf;
+using std::istrstream;
+using std::ostrstream;
+using std::strstream;
+
+#endif
+
+// Local Variables:
+// mode:C++
+// End:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list