I had the port multimedia/libmatroska version 0.7.1 installed on my FreeBSD 4.10 system. I tried to use portupgrade to upgrade it to version 0.7.4, which is the most current version in the ports tree at this time. portupgrade was not able to upgrade the port and reported a "Bad C++ code" error. The problem is that the Makefile in /usr/ports/multimedia/libmatroska has some lines saying: .if ${OSVERSION} < 500000 CFLAGS+= -DNO_WSTRING -I${LOCALBASE}/include .endif The code of libmatroska uses lines like #include <matroska/KaxChapters.h> and because of the -I${LOCALBASE}/include will look for those files in /usr/local/include/matroska first (which is the previously installed version of libmatroska, not the new version). Those header files are obviously out of date for the new version, so the compile fails because the wrong header files are used. Changing the lines above to: .if ${OSVERSION} < 500000 CFLAGS+= -DNO_WSTRING -idirafter ${LOCALBASE}/include .endif solves the problem for me, because /usr/local/include is placed after the other paths that the port adds with the -I option to the compiler. Fix: Change /.../multimedia/libmatroska/Makefile lines: .if ${OSVERSION} < 500000 CFLAGS+= -DNO_WSTRING -I${LOCALBASE}/include .endif to: .if ${OSVERSION} < 500000 CFLAGS+= -DNO_WSTRING -idirafter ${LOCALBASE}/include .endif How-To-Repeat: * Install version 0.7.1 of libmatroska on your system * Try to portupgrade libmatroska to 0.7.4
Responsible Changed From-To: freebsd-ports-bugs->lioux Over to maintainer.
State Changed From-To: open->closed Committed, thanks!