Date: Mon, 15 Mar 2004 21:00:14 +0100 (CET) From: Dimitry Andric <dimitry@andric.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/64310: audio/tclmidi port doesn't compile on 5.x Message-ID: <20040315200014.421EE22864@tensor.xs4all.nl> Resent-Message-ID: <200403152000.i2FK0YGs064605@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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@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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040315200014.421EE22864>