Skip site navigation (1)Skip section navigation (2)
Date:      29 Oct 2004 23:39:12 -0000
From:      Sven Berkvens-Matthijsse <sven@berkvens.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/73297: [patch] libmatroska port upgrade to 0.7.4 fails on FreeBSD 4.10 if a previous version of libmatroska is already installed
Message-ID:  <20041029233912.57955.qmail@cat.berkvens.net>
Resent-Message-ID: <200410292340.i9TNeGXN020497@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         73297
>Category:       ports
>Synopsis:       [patch] libmatroska port upgrade to 0.7.4 fails on FreeBSD 4.10 if a previous version of libmatroska is already installed
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Fri Oct 29 23:40:16 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Sven Berkvens-Matthijsse <sven@berkvens.net>
>Release:        FreeBSD 4.10-STABLE i386
>Organization:
De Kattenfabriek
>Environment:
System: FreeBSD cat.berkvens.net 4.10-STABLE FreeBSD 4.10-STABLE #3: Thu Sep 16 23:19:36 CEST 2004 sven@cat.berkvens.net:/extra0/usr_obj/usr/src/sys/CAT i386
>Description:
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.

>How-To-Repeat:
* Install version 0.7.1 of libmatroska on your system
* Try to portupgrade libmatroska to 0.7.4

>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

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041029233912.57955.qmail>