Building of port audio/soundkonverter fails because it tries to include a file /usr/local/include/taglib/mp4coverart.h (installed by port audio/taglib) using a c++ compiler with a -pedantic option enabled: In file included from /usr/local/include/taglib/mp4item.h:31, from /usr/local/include/taglib/mp4tag.h:37, from /wrkdirs/usr/ports/audio/soundkonverter/work/soundkonverter-2.0.4/metadata/tagengine.cpp:32: /usr/local/include/taglib/mp4coverart.h:49: error: comma at end of enumerator list *** [CMakeFiles/soundkonverter.dir/metadata/tagengine.o] Error code 1 Sure enough, there is a trailing comma there in /usr/local/include/taglib/mp4coverart.h near line 49: enum Format { JPEG = TypeJPEG, PNG = TypePNG, BMP = TypeBMP, GIF = TypeGIF, Unknown = TypeImplicit, }; Using system default compiler: c++ (GCC) 4.2.1 20070831 patched [FreeBSD]. Fresh versions from ports: audio/soundkonverter 2.0.4, audio/taglib 1.9.1. Full build log at: http://www.ijs.si/usr/mark/tmp/soundkonverter-2.0.4.log The 'comma at end of enumerator' is not valid in C++ (nor in C89), although it is valid in C99. Apparently it becomes valid in C++11, but we are not there yet. Fix: Depending on a point of view, the error is either in the exported .h file(s) by a port audio/taglib, or in using a -pedantic option in audio/soundkonverter which tries to include plain C include files from a C++ code. Perhaps the least effort solution would be to drop -pedantic from C++ options in port audio/soundkonverter . A cleaner solution would be to drop trailing commas in .h files as installed by port audio/taglib, in particular the mp4coverart.h file. How-To-Repeat: Build audio/soundkonverter from ports.
Responsible Changed From-To: freebsd-ports-bugs->jhale Over to maintainer (via the GNATS Auto Assign Tool)
Author: dbn Date: Sun Nov 24 08:56:44 2013 New Revision: 334711 URL: http://svnweb.freebsd.org/changeset/ports/334711 Log: Fix build of audio/soundkonverter due to the use of '-pedantic'. Soundkonverter includes a C file that has a trailing comma (,) at the end of an enum, this construct is only supported by C++11 (but by C99) thus is not accepted as valid with the '-pedantic'. The base compiler (gcc) does not understand C++11 and errors on this. Remove the '-pedantic' option as it does not impact on the code produced, to allow the port to be built. PR: ports/182906 Modified: head/audio/soundkonverter/Makefile Modified: head/audio/soundkonverter/Makefile ============================================================================== --- head/audio/soundkonverter/Makefile Sun Nov 24 08:28:43 2013 (r334710) +++ head/audio/soundkonverter/Makefile Sun Nov 24 08:56:44 2013 (r334711) @@ -108,4 +108,7 @@ WAVPACK_RUN_DEPENDS= wavpack:${PORTSDIR} NLS_USES= gettext NLS_CMAKE_OFF= -DBUILD_po=FALSE +post-patch: + ${REINPLACE_CMD} "/-pedantic/d" ${WRKSRC}/CMakeLists.txt + .include <bsd.port.mk> _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
This issue has been fixed in commit ages ago, so I am closing this PR.