neuen Port erstellen, make funktioniert, port test aber nicht

Moin,

seit ein paar Wochen benutze ich PC-BSD8.1. Ich bin also noch ein "Frischling" in Sachen FreeBSD/PC-BSD.

Derzeit bin ich damit beschäftigt für das RTS Spiel MegaGlest einen megaglest und einen megaglest-data Port zu bauen.

MegaGlest lässt sich mittels:
Code:
cd /usr/ports/games/megaglest ; make install clean

installieren und auch wieder sauber deinstallieren.

Sowohl ein portlint -A wie auch ein portlint -abN melden:
Code:
[root@localhorst /usr/ports/games]# portlint -abN megaglest
looks fine.

[root@localhorst /usr/ports/games]# portlint -A megaglest
looks fine.

Folgende Probleme treten allerdings beim Testen der beiden Ports auf:

1. Beim testen mittels portlint von megaglest-data wird ein warning ausgegeben:
Code:
[root@localhorst /usr/ports/games]# portlint -A megaglest-data/
WARN: Makefile: extra item placed in the *_DEPENDS section, for example, "EXTRACT_SUFX".
0 fatal errors and 1 warning found.

Wenn ich die Variable EXTRACT_SUFX unterhalb der Variable EXTRACT_DEPENDS platzieren, wird gemeckert, dass EXTRACT_SUFX früher definiert werden muss.

2. port test scheitert beim configure von megaglest, obwohl make install funktioniert. Ich habe die Ausgabe gekürzt:
Code:
checking windows.h usability... no
checking windows.h presence... no
checking for windows.h... no
checking for OpenGL library... -lGL
checking for OpenGL Utility library... -lGLU
checking for Vorbis... no
*** Could not run Vorbis test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means Vorbis was incorrectly installed
*** or that you have moved Vorbis since it was installed.
configure: error: Please install vorbis
===>  Script "configure" failed unexpectedly.
Please report the problem to [email]<maintainerMailAdress[/email] [maintainer] and attach
the "/usr/ports/games/megaglest/work/megaglest-source-3.3.7.2/config.log"
including the output of the failure of your make command. Also, it might be
a good idea to provide an overview of all packages installed on your system
(e.g. an `ls /tmp/pkg_db.NrQpXTFC`).
*** Error code 1

Stop in /usr/ports/games/megaglest.
===> Error running make build
===> Cleaning up

Im Makefile von megaglest habe ich die Variable
CONFIGURE_ARGS
gesetzt und mit ein paar Argumenten gefüllt. Mir scheint es so, als ob port test diese Variable garnicht auswertet.

Weiß jemand ob das warning von portling bezüglich megaglest-data zu vernachlässigen ist? Und ob der fehlschlagende port test ein K.O. Kriterium ist?
Oder hat jemand vielleicht eine Idee wie ich ogg/vorbis so einbinden kann, das auch port test erfolgreich verläuft?

Hier noch die Makefiles:

Port megagles:

Code:
# New ports collection makefile for:    megaglest
# Date created:                         2010-11-12
# Whom:                                 Newbie
#
# $FreeBSD$
#

PORTNAME=       megaglest
PORTVERSION=    3.3.7.2
CATEGORIES=     games
MASTER_SITES=   SF/${PORTNAME}/current_release/
DISTNAME=       ${PORTNAME}-source-${PORTVERSION}
DIST_SUBDIR=    ${PORTNAME}

MAINTAINER=     n00b@local.domain
COMMENT=        Free 3d real-time customizable strategy game

LIB_DEPENDS=    xerces-c.27:${PORTSDIR}/textproc/xerces-c2 \
                vorbis.4:${PORTSDIR}/audio/libvorbis
BUILD_DEPENDS=  jam:${PORTSDIR}/devel/jam
RUN_DEPENDS=    ${DATADIR}/servers.ini:${PORTSDIR}/games/megaglest-data

USE_AUTOTOOLS=  automake:111:env autoconf:268:env
USE_BZIP2=      yes
USE_OPENAL=     al alut
USE_DOS2UNIX=   yes
USE_LUA=        5.1
USE_SDL=        yes
USE_GL=         yes
GNU_CONFIGURE=  yes
CONFIGURE_SCRIPT=       configure
CONFIGURE_ENV=          CPPFLAGS="-I${LOCALBASE}/include ${PTHREAD_CFLAGS}" \
                        LIBS="-L${LOCALBASE}/lib ${PTHREAD_LIBS}"
CONFIGURE_ARGS=         --with-libxerces=${PREFIX} \
                --with-libOpenAL=${PREFIX} \
                --with-libLibPng=${PREFIX} \
                --with-libLibJPEG=${PREFIX} \
                --with-libLibCurl=${PREFIX} \
                --with-libLibX11=${PREFIX} \
                --with-ogg-includes=${PREFIX} \
                --with-vorbis=${PREFIX} \
                --with-ogg=${PREFIX} \
                --with-ogg-libraries=${PREFIX}/lib \
                --with-ogg-includes=${PREFIX}/include \
                --with-wx-config=${PREFIX}/bin/wxgtk2u-2.8-config
SUB_FILES=              glest-wrapper pkg-message

JAM_CMD=                ${LOCALBASE}/bin/jam -qa

.include <bsd.port.pre.mk>

pre-extract:
        @${MKDIR} ${WRKDIR}/${DISTNAME}

pre-configure:
        @cd ${WRKSRC} && ${SH} autogen.sh && \

do-build:
        @cd ${WRKSRC} && ${JAM_CMD}

do-install:
        @${MKDIR} ${DATADIR}
        @${MKDIR} ${DOCSDIR}
        ${INSTALL_PROGRAM} ${WRKSRC}/glest.bin ${DATADIR}
        ${INSTALL_DATA} ${WRKSRC}/glest.ini ${DATADIR}
        ${INSTALL_DATA} ${WRKSRC}/servers.ini ${DATADIR}
        ${INSTALL_DATA} ${WRKSRC}/glestkeys.ini ${DATADIR}
.       if !defined(NOPORTDOCS)
                ${INSTALL_DATA} ${WRKSRC}/code_license.txt ${DOCSDIR}
.       endif
        ${INSTALL_SCRIPT} ${WRKDIR}/glest-wrapper ${PREFIX}/bin/${PORTNAME}

.if defined(HAVE_EDITOR)
        ${INSTALL_PROGRAM} ${WRKSRC}/glest_editor ${PREFIX}/bin/
.endif

post-install:
        @${CAT} ${PKGMESSAGE}

.include <bsd.port.post.mk>

Port megaglest-data Makefile:

Code:
 New ports collection makefile for:    megaglest-data                                                                                                                                                                                       
# Date created:                         2010-11-12                                                                                                                                                                                           
# Whom:                                 Newbie
#
# $FreeBSD$                                                                                                                                                                                                                                                                          
#                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                     
PORTNAME=       data                                                                                                                                                                                                                                                                 
PORTVERSION=    3.3.7.2
CATEGORIES=     games                                                                                                                                                                                                                                                                                                                       
MASTER_SITES=   SF/megaglest/current_release/                                                                                                                                                                                                                                                                                               
PKGNAMEPREFIX=  megaglest-                                                                                                                                                                                                                                                                                                                  
DISTNAME=       megaglest-${PORTNAME}-${PORTVERSION}                                                                                                                                                                                                                                                                                        
DIST_SUBDIR=    megaglest                                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                                                            
MAINTAINER=     n00b@local.domain
COMMENT=        MegaGlest data files                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                            
EXTRACT_SUFX=   .7z                                                                                                                                                                                                                                                                                                                         
EXTRACT_DEPENDS=7z:${PORTSDIR}/archivers/p7zip                                                                                                                                                                                                                                                                                              
EXTRACT_CMD=    7z                                                                                                                                                                                                                                                                                                                          
EXTRACT_BEFORE_ARGS=    -y x                                                                                                                                                                                                                                                                                                                
EXTRACT_AFTER_ARGS=     -o${WRKSRC}
USE_DOS2UNIX=   *.log *.ini *.html *.txt *.lng
NO_BUILD=       yes

PLIST=          ${WRKDIR}/pkg-plist
WRKSRC=         ${WRKDIR}/megaglest_game

DATADIR=        share/${PKGNAMEPREFIX:S/-//}
DOCSDIR=        share/doc/${PKGNAMEPREFIX:S/-//}
GLESTDATADIRE=  data maps scenarios techs tilesets tutorials

do-extract:
        @${MKDIR} ${WRKSRC}
        @cd ${WRKSRC}
        ${LOCALBASE}/bin/7z -y x ${DISTDIR}/${DIST_SUBDIR}/${PKGNAMEPREFIX}${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX} -o${WRKSRC}

post-extract:
        @${MV} ${WRKSRC}/docs/license.txt ${WRKSRC}/docs/license-data.txt

pre-install:
        @${RM} -f ${PLIST}

.       for FILE in megaglest.ico
                @${ECHO_CMD} "%%DATADIR%%/${FILE}" >> ${PLIST}
.       endfor

.       for DIRE in ${GLESTDATADIRE}
                @cd ${WRKSRC} && \
                        ${FIND} ${DIRE} -type f | ${SORT} | ${SED} -e 's|^|%%DATADIR%%/|' >> ${PLIST} && \
                                ${FIND} ${DIRE} -type d | ${SORT} -r | ${SED} -e 's|^|@dirrm %%DATADIR%%/|' >> ${PLIST}
.       endfor
        @${ECHO_CMD} "@dirrmtry %%DATADIR%%" >> ${PLIST}

.       if !defined(NOPORTDOCS)
                @cd ${WRKSRC}/docs && \
                        ${FIND} * -type f | ${SORT} | ${SED} -e 's|^|%%PORTDOCS%%%%DOCSDIR%%/|' >> ${PLIST} && \
                                ${FIND} * -type d | ${SORT} -r | ${SED} -e 's|^|%%PORTDOCS%%@dirrm %%DOCSDIR%%/|' >> ${PLIST}
        @${ECHO_CMD} "%%PORTDOCS%%@dirrmtry %%DOCSDIR%%" >> ${PLIST}
.       endif

do-install:
.if !defined(NOPORTDOCS)
        @${MKDIR} ${PREFIX}/${DOCSDIR}
        @${MKDIR} ${PREFIX}/${DOCSDIR}/tech
        ${INSTALL_DATA} ${WRKSRC}/docs/license-data.txt ${PREFIX}/${DOCSDIR}
        ${INSTALL_DATA} ${WRKSRC}/docs/readme.txt ${PREFIX}/${DOCSDIR}
        ${INSTALL_DATA} ${WRKSRC}/docs/AUTHORS ${PREFIX}/${DOCSDIR}
        ${INSTALL_DATA} ${WRKSRC}/docs/data_license.txt ${PREFIX}/${DOCSDIR}
        ${INSTALL_DATA} ${WRKSRC}/docs/data_license_readme.txt ${PREFIX}/${DOCSDIR}
        ${FIND} ${WRKSRC}/docs/tech/ -type f -exec ${INSTALL_DATA} "{}" ${PREFIX}/${DOCSDIR}/tech \;
.endif
        @${MKDIR} ${PREFIX}/${DATADIR}
.for FILE in megaglest.ico
        ${INSTALL_DATA} ${WRKSRC}/${FILE} ${PREFIX}/${DATADIR}
.endfor

.for DIRE in ${GLESTDATADIRE}
        @cd ${WRKSRC} && \
                ${FIND} ${DIRE} -type d -exec ${MKDIR} "${PREFIX}/${DATADIR}/{}" \; && \
                        ${FIND} ${DIRE} -type f -exec ${INSTALL_DATA} "{}" "${PREFIX}/${DATADIR}/{}" \;
.endfor

.include <bsd.port.mk>
 
da ist wohl der port ein wenig kaputt.
am besten installierst du erstmal die vorbis-tools.

die sind wahrscheinlich unter /usr/ports/audio. (ich kenn die ports von pc-bsd leider nicht, sorry)
 
Wenn ich das richtig verstanden habe, dann benutzt megaglest glest als Engine,
hat aber mehr Content (Bilder, Sound, xml Dateien, um die Ressourcen für Glest zu beschreiben).
Wäre es eine Möglichkeit, glest nur um einen megaglest-data Port zu erweitern?
 
@Fusselbär

Nein, da Glest und MegaGlest inkompatibel sind. Man muss auch zum einem Release das passende DataPackage installiert haben. Ansonsten gibt es Proleme bei Onlinespielen.

In der zwischenzeit hat sich noch jemand gefunden der MegaGlest in den FreeBSD Portstree bringen möchte. Das heißt ich stehe damit nicht mehr ganz alleine dar ;-)

Und zum anderen muss das Makefile für megaglest überarbeitet werden, da MegaGlest Upstream von Jam auf cmake umgestellt hat. Aus dem SVN lässt sich das Spiel auch ohne Probleme bauen.
 
Zurück
Oben