Bug 73297 - [patch] libmatroska port upgrade to 0.7.4 fails on FreeBSD 4.10 if a previous version of libmatroska is already installed
Summary: [patch] libmatroska port upgrade to 0.7.4 fails on FreeBSD 4.10 if a previous...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Mario Sergio Fujikawa Ferreira
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-10-30 00:40 UTC by Sven Berkvens-Matthijsse
Modified: 2004-12-19 01:52 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sven Berkvens-Matthijsse 2004-10-30 00:40:16 UTC
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
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2004-10-30 06:39:52 UTC
Responsible Changed
From-To: freebsd-ports-bugs->lioux

Over to maintainer.
Comment 2 Mario Sergio Fujikawa Ferreira freebsd_committer 2004-12-19 01:52:41 UTC
State Changed
From-To: open->closed

Committed, thanks!