FreeBSD
Jump to navigation
Jump to search
FreeBSD port
- [WIP] FreeBSD port for UFO:AI-2.3
- [WIP] Makefile: adjust the do-install target, port compiles and ufo can be run within the ufoai23/work/ufoai-2.3-source directory
- [done] distinfo
- [done] pkg-descr
- [WIP] update pkg-plist: languages and other added files/dirs
- [done] files/pkg-message.in
- [open] files/run-sh.in: needed?
- [WIP] FreeBSD port for UFO:AI-2.4-devel: Fetch sources from svn
- [done] "make svn" fetches the revision specified with ${PORTVERSION}
- [open] change to interactive mode (->"make svn 31071")
- [WIP] Makefile: adjust the do-install target, port compiles and ufo can be run within the ufoai-devel/work/trunk directory
- [done] distinfo generated with "make makesum" inside "make svn"
- [done] pkg-descr
- [WIP] update pkg-plist: languages and other added files/dirs
- [done] files/pkg-message.in
UFO:AI 2.3
BSD Licence for the portfiles, which are based upon ufoai-2.2.1 port.
ufoai23/Makefile (draft)
# New ports collection makefile for: ufoai
# Date created: 2006-09-03
# Whom: Jose Alonso Cardenas Marquez <acm>
#
# $FreeBSD: ports/games/ufoai23/Makefile
#
PORTNAME= ufoai
PORTVERSION= 2.3
CATEGORIES= games
MASTER_SITES= SF/${PORTNAME}/UFO_AI%202.x/${PORTVERSION}
DISTNAME= ${PORTNAME:S/$/-/}${PORTVERSION}
DISTFILES= ufoai-${PORTVERSION}-source.tar.bz2 ufoai-${PORTVERSION}-data.tar
DIST_SUBDIR= ${PORTNAME}
#LATEST_LINK= ufoai23
MAINTAINER= ports@FreeBSD.org
COMMENT= A strategy game featuring tactical combat
LIB_DEPENDS= vorbis:${PORTSDIR}/audio/libvorbis \
jpeg.11:${PORTSDIR}/graphics/jpeg \
png.6:${PORTSDIR}/graphics/png \
curl:${PORTSDIR}/ftp/curl \
theora:${PORTSDIR}/multimedia/libtheora \
xvidcore:${PORTSDIR}/multimedia/xvid \
gtkglext-x11:${PORTSDIR}/x11-toolkits/gtkglext
# Not needed anymore, after merging ufoai-data to ufoai23?
#RUN_DEPENDS= ${LOCALBASE}/share/${PORTNAME}/default.cfg:${PORTSDIR}/games/ufoai-data
# pk3 files decompression
EXTRACT_DEPENDS=unzip:${PORTSDIR}/archivers/unzip
USE_GL= yes
USE_SDL= sdl mixer ttf image
USE_OPENAL= al
# UFORadiant needs these. Without UFORadiant no tactical missions.
# (sic!, maybe we can configure this without so much dependencies)
USE_GNOME= gtk20 glib20 gtksourceview2 libxml2
USE_GETTEXT= yes
GNU_CONFIGURE= yes
USE_GMAKE= yes
CONFIGURE_ARGS+= --enable-release=yes
# portlint warning for CONFIGURE_ENV+
CONFIGURE_ENV+= LDFLAGS="-L${LOCALBASE}/lib ${PTHREAD_LIBS}" \
CFLAGS="${CFLAGS} -I${LOCALBASE}/include" \
CPPFLAGS="-I${LOCALBASE}/include ${PTHREAD_CFLAGS}"
DATADIR= share/${PORTNAME}
SUB_FILES= pkg-message
# source-file extracts here:
WRKSRC= ${WRKDIR}/${PORTNAME:S/$/-/}${PORTVERSION}-source
UFO_DIR= ${PREFIX}/lib/${PORTNAME}
UFO_FILES= ufo
# ufoai.xpm resides in debian/ufoai.xpm
# portlint doesn't want the false variable..
DESKTOP_ENTRIES= "UFO:AI" "A squad-based tactical strategy game" \
"${DATADIR}/ufoai.xpm" \
"ufo" "Application;Game;StrategyGame;" \
false
OPTIONS= SERVER "Install dedicated server" on \
UFO2MAP "Install UFO tools" on \
UFORADIANT "Install UFORadiant mapeditor" off \
.include <bsd.port.pre.mk>
# Can be removed, if fixed in configure.ac upstream
.if ${ARCH} == "amd64"
CONFIGURE_TARGET?=x86_64-portbld-freebsd${OSREL}
.endif
.if !defined(WITHOUT_SERVER)
CONFIGURE_ARGS+= --enable-dedicated
UFO_FILES+= ufoded
PLIST_SUB+= UFOSERVER=""
.else
CONFIGURE_ARGS+= --disable-dedicated
PLIST_SUB+= UFOSERVER="@comment "
.endif
.if !defined(WITHOUT_UFO2MAP)
CONFIGURE_ARGS+= --enable-ufo2map
UFO_FILES+= ufo2map
PLIST_SUB+= UFO2MAP=""
.else
CONFIGURE_ARGS+= --disable-ufo2map
PLIST_SUB+= UFO2MAP="@comment "
.endif
.if !defined(WITHOUT_UFORADIANT)
# I'm not sure, if --enable-uforadiant should be here or in the global args
CONFIGURE_ARGS+= --enable-uforadiant
UFO_FILES+= uforadiant
PLIST_SUB+= UFORADIANT=""
.else
CONFIGURE_ARGS+= --enable-uforadiant
PLIST_SUB+= UFORADIANT="@comment "
.endif
post-patch:
# Unpacking pk3 files (from ufoai-data Makefile)
@cd ${WRKDIR}/base && \
${FIND} * -type f -exec ${UNZIP_CMD} "{}" -d ${WRKSRC}/base \;
# Maybe set an option to let the user choose, if he wants to make the pk3 files, install the ones from data.tar or without pk3
@${RM} ${WRKDIR}/base/*.pk3
# Resolve name collision with jpeg-8 amd API png
# Nukama: still needed in 2.3?
# ${REINPLACE_CMD} -e 's|jpeg_mem_src|local_jpeg_mem_src|' \
# -e 's|png_set_gray_1_2_4_to_8|png_set_expand_gray_1_2_4_to_8|' \
# -e 's|png_check_sig(PngFileBuffer.buffer, 8)|!png_sig_cmp(PngFileBuffer.buffer, 0, 8)|' \
# ${WRKSRC}/src/client/renderer/r_image.c \
# ${WRKSRC}/src/tools/ufo2map/common/imagelib.c
pre-install:
#. for FILE in ${UFO_FILES}
# @${ECHO} "#!/bin/sh" > ${WRKDIR}/${FILE}
# @${ECHO} "cd ${PREFIX}/${DATADIR} || exit 1 " >> ${WRKDIR}/${FILE}
# @${ECHO} "exec ${PREFIX}/${DATADIR}/${FILE} \"$$@\"" >> ${WRKDIR}/${FILE}
#. endfor
post-build:
@cd ${WRKSRC} && ${GMAKE} lang
# UFORadiant Mapeditor doesn't work yet (with openal-soft I can start it, with some errors..)
.if !defined(WITHOUT_UFORADIANT)
@cd ${WRKSRC} && ${GMAKE} uforadiant
.endif
do-install:
# @${MKDIR} ${UFO_DIR}/base/i18n
#. for FILE in ${UFO_FILES}
# @${SED} \
# -e 's|@UFODIR@|${UFO_DIR}|' \
# -e 's|@APP@|${FILE}|' \
# ${FILESDIR}/run.sh.in > ${WRKDIR}/${FILE}
# ${INSTALL_PROGRAM} ${WRKSRC}/${FILE} ${UFO_DIR}
# ${INSTALL_SCRIPT} ${WRKDIR}/${FILE} ${PREFIX}/bin
#. endfor
# ${INSTALL_PROGRAM} ${WRKSRC}/base/game.so ${UFO_DIR}/base
#
# @cd ${WRKSRC}/base/i18n && \
# ${FIND} * -type d -exec ${MKDIR} "${UFO_DIR}/base/i18n/{}" \; && \
# ${FIND} * -type f -exec ${INSTALL_DATA} "{}" "${UFO_DIR}/base/i18n/{}" \;
# ${LN} -s ${PREFIX}/${DATADIR}/* ${UFO_DIR}/base
post-install:
@${CAT} ${PKGMESSAGE}
.include <bsd.port.post.mk>
ufoai23/distinfo (draft)
MD5 (ufoai/ufoai-2.3-data.tar) = 08fa6d5c80231468c4d5e886600c8dcf SHA256 (ufoai/ufoai-2.3-data.tar) = 0e535ce268e9a9ae08cee9b8b62ffed055bdb3182f86bf5c429ec4c54c9fa224 SIZE (ufoai/ufoai-2.3-data.tar) = 529571840 MD5 (ufoai/ufoai-2.3-source.tar.bz2) = 9d180ed896a58fe0e514601cd7637dc1 SHA256 (ufoai/ufoai-2.3-source.tar.bz2) = e9c231117b779bab94bcd82c6bbf2051b2b310d7a13eb4bba10085ce0b0e64dd SIZE (ufoai/ufoai-2.3-source.tar.bz2) = 9839841
ufoai23/pkg-descr (from 2.2.1)
UFO ALIEN INVASION is a strategy game featuring tactical combat against hostile alien forces which are about to infiltrate earth at this very moment. You are in command of a small special unit which has been founded to face the alien strike force. To be successful on the long run, you will also have to have a research team study the aliens and their technologies in order to learn as much as possible about their technology, their goals and the aliens themselves. WWW: http://ufoai.ninex.info/
ufoai23/pkg-plist (draft)
# I've not checked this plist yet, added entries for uforadiant bin/ufo %%UFOSERVER%%bin/ufoded %%UFO2MAP%%bin/ufo2map %%UFORADIANT%%bin/uforadiant lib/ufoai/base/game.so lib/ufoai/base/irc_motd.txt lib/ufoai/base/i18n/cs/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/da/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/de/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/el/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/en/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/es/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/es_ES/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/est/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/fi/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/fr/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/ja/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/it/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/pl/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/pt_BR/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/ru/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/slo/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/sv/LC_MESSAGES/ufoai.mo lib/ufoai/base/i18n/th/LC_MESSAGES/ufoai.mo lib/ufoai/ufo %%UFOSERVER%%lib/ufoai/ufoded %%UFO2MAP%%lib/ufoai/ufo2map %%UFORADIANT%%lib/ufoai/uforadiant lib/ufoai/base/autoexec.cfg lib/ufoai/base/dedicated.cfg lib/ufoai/base/default.cfg lib/ufoai/base/keys.cfg lib/ufoai/base/maps lib/ufoai/base/media lib/ufoai/base/models lib/ufoai/base/music lib/ufoai/base/pics lib/ufoai/base/shaders lib/ufoai/base/sound lib/ufoai/base/textures lib/ufoai/base/ufos @dirrm lib/ufoai/base/i18n/th/LC_MESSAGES/ @dirrm lib/ufoai/base/i18n/th/ @dirrm lib/ufoai/base/i18n/sv/LC_MESSAGES @dirrm lib/ufoai/base/i18n/sv @dirrm lib/ufoai/base/i18n/slo/LC_MESSAGES @dirrm lib/ufoai/base/i18n/slo @dirrm lib/ufoai/base/i18n/ru/LC_MESSAGES @dirrm lib/ufoai/base/i18n/ru @dirrm lib/ufoai/base/i18n/pt_BR/LC_MESSAGES @dirrm lib/ufoai/base/i18n/pt_BR @dirrm lib/ufoai/base/i18n/pl/LC_MESSAGES @dirrm lib/ufoai/base/i18n/pl @dirrm lib/ufoai/base/i18n/ja/LC_MESSAGES/ @dirrm lib/ufoai/base/i18n/ja @dirrm lib/ufoai/base/i18n/it/LC_MESSAGES @dirrm lib/ufoai/base/i18n/it @dirrm lib/ufoai/base/i18n/fi/LC_MESSAGES @dirrm lib/ufoai/base/i18n/fi @dirrm lib/ufoai/base/i18n/fr/LC_MESSAGES @dirrm lib/ufoai/base/i18n/fr @dirrm lib/ufoai/base/i18n/est/LC_MESSAGES @dirrm lib/ufoai/base/i18n/est @dirrm lib/ufoai/base/i18n/es/LC_MESSAGES @dirrm lib/ufoai/base/i18n/es @dirrm lib/ufoai/base/i18n/es_ES/LC_MESSAGES @dirrm lib/ufoai/base/i18n/es_ES @dirrm lib/ufoai/base/i18n/en/LC_MESSAGES @dirrm lib/ufoai/base/i18n/en @dirrm lib/ufoai/base/i18n/el/LC_MESSAGES @dirrm lib/ufoai/base/i18n/el @dirrm lib/ufoai/base/i18n/de/LC_MESSAGES @dirrm lib/ufoai/base/i18n/de @dirrm lib/ufoai/base/i18n/da/LC_MESSAGES @dirrm lib/ufoai/base/i18n/da @dirrm lib/ufoai/base/i18n/cs/LC_MESSAGES @dirrm lib/ufoai/base/i18n/cs @dirrm lib/ufoai/base/i18n @dirrmtry lib/ufoai/base @dirrmtry lib/ufoai
ufoai23/files/pkg-message.in (draft)
############################################################################### The UFO ALien Invasion was installed 1) Run the UFO Client using: # ufo 2) or UFO Dedicated Server using: # ufoded 3) or UFO Maps Tool using: # ufo2map 4) or UFO Radiant using: # uforadiant 5) If you are using the UFO CLient, you need a minimal 1024x968 resolution. It avoids some problems during the game. 6) Enjoy it ;) ###############################################################################
ufoai23/files/run.sh.in (from 2.2.1)
#!/bin/sh cd @UFODIR@ || exit 1 exec @UFODIR@/@APP@ "$@"
UFO:AI 2.4 dev
BSD Licence for the portfiles, which are based upon ufoai-2.2.1 port.
ufoai-devel/Makefile (draft)
# New ports collection makefile for: ufoai-devel
# Date created: 2010-07-30
# Whom: Hakisho Nukama <nukama@>
#
# $FreeBSD: ports/games/ufoai-devel/Makefile
#
PORTNAME= ufoai-devel
PORTVERSION= 31071
CATEGORIES= games
MASTER_SITES= SF/${PORTNAME}/UFO_AI%202.x/${PORTVERSION}
DISTNAME= ${PORTNAME}-${PORTVERSION}
DISTFILES= ${PORTNAME}-${PORTVERSION}.tar.bz2
DIST_SUBDIR= ${PORTNAME}
MAINTAINER= nukama@
COMMENT= A strategy game featuring tactical combat
FETCH_DEPENDS= svn:${PORTSDIR}/devel/subversion \
rsync:${PORTSDIR}/net/rsync
EXTRACT_DEPENDS=unzip:${PORTSDIR}/archivers/unzip
LIB_DEPENDS= vorbis:${PORTSDIR}/audio/libvorbis \
jpeg.11:${PORTSDIR}/graphics/jpeg \
png.6:${PORTSDIR}/graphics/png \
curl:${PORTSDIR}/ftp/curl \
theora:${PORTSDIR}/multimedia/libtheora \
xvidcore:${PORTSDIR}/multimedia/xvid \
gtkglext-x11:${PORTSDIR}/x11-toolkits/gtkglext
USE_GL= yes
USE_SDL= sdl mixer ttf image
USE_OPENAL= al
USE_GETTEXT= yes
GNU_CONFIGURE= yes
USE_GMAKE= yes
# UFORadiant needs these. Extra configuration without these. Without UFORadiant no tactical missions.
USE_GNOME= gtk20 glib20 gtksourceview2 libxml2
CONFIGURE_ARGS+= --enable-release=no
# portlint warning
CONFIGURE_ENV+= LDFLAGS="-L${LOCALBASE}/lib ${PTHREAD_LIBS}" \
CFLAGS="${CFLAGS} -I${LOCALBASE}/include" \
CPPFLAGS="-I${LOCALBASE}/include ${PTHREAD_CFLAGS}"
DATADIR= share/${PORTNAME}
#SUB_FILES= pkg-message
# sourcefile extracts here:
WRKSRC= ${WRKDIR}/trunk
UFO_DIR= ${PREFIX}/lib/${PORTNAME}
UFO_FILES= ufo
DESKTOP_ENTRIES= "UFO:AI" "A squad-based tactical strategy game" \
"${DATADIR}/ufoai.xpm" \
"ufo" "Application;Game;StrategyGame;" \
false \
OPTIONS= SVN "Fetch from subversion" on \
SERVER "Install dedicated server" on \
UFO2MAP "Install UFO tools" on \
UFORADIANT "Install UFORADIANT mapeditor" off \
LANG "Compile translation" off \
MAPS "Compile MAPS" off \
MAPGET "Download MAPS" off \
PK3 "Assemble pk3 files" off \
.include <bsd.port.pre.mk>
.if ${ARCH} == "amd64"
CONFIGURE_TARGET?= x86_64-portbld-freebsd${OSREL}
#.else
#CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
.if !defined(WITHOUT_SERVER)
CONFIGURE_ARGS+= --enable-dedicated
UFO_FILES+= ufoded
PLIST_SUB+= UFOSERVER=""
.else
CONFIGURE_ARGS+= --disable-dedicated
PLIST_SUB+= UFOSERVER="@comment "
.endif
.if !defined(WITHOUT_UFO2MAP)
CONFIGURE_ARGS+= --enable-ufo2map
UFO_FILES+= ufo2map
PLIST_SUB+= UFO2MAP=""
.else
CONFIGURE_ARGS+= --disable-ufo2map
PLIST_SUB+= UFO2MAP="@comment "
.endif
.if !defined(WITHOUT_UFORADIANT)
CONFIGURE_ARGS+= --enable-uforadiant
UFO_FILES+= uforadiant
PLIST_SUB+= UFORADIANT=""
.else
CONFIGURE_ARGS+= --disable-uforadiant
PLIST_SUB+= UFORADIANT="@comment "
.endif
pre-fetch:
# make svn, if svn tree not existent.
#Type 'make svn' to update svn source to r${PORTVERSION}
#maybe implement use make svn 31071 to update to svn rev with svn co -r $1 ?
svn:
.if !defined(WITHOUT_SVN)
svn cleanup ${DISTDIR}/${DIST_SUBDIR}/trunk/
#SVN-Destination in distdir, shouldn't get wiped by a make clean.
svn co -r ${PORTVERSION} https://ufoai.svn.sourceforge.net/svnroot/ufoai/ufoai/trunk ${DISTDIR}/${DIST_SUBDIR}/trunk/
#RELEASE
#svn co https://ufoai.svn.sourceforge.net/svnroot/ufoai/ufoai/branches/ufoai_2.3 ${DISTDIR}/ufoai-2.3/trunk
#Create an empty tar in ${DISTDIR}/${DIST_SUBDIR} to please ports-system
touch ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-${PORTVERSION}.tar.bz2
make makesum
.endif
pre-configure:
.if !defined(WITHOUT_SVN)
rsync -avP ${DISTDIR}/${DIST_SUBDIR}/trunk/* ${WRKDIR}/trunk/
#rsync -avP ${DISTDIR}/ufoai-2.3/trunk/* ${WRKDIR}/trunk/
.endif
post-patch:
pre-install:
post-build:
.if !defined(WITHOUT_LANG)
@cd ${WRKSRC} && ${GMAKE} lang
.endif
.if !defined(WITHOUT_UFORADIANT)
@cd ${WRKSRC} && ${GMAKE} uforadiant
.endif
.if !defined(WITHOUT_MAPS)
@cd ${WRKSRC} && ${GMAKE} maps
.endif
.if !defined(WITHOUT_MAPGET)
@cd ${WRKSRC} && contrib/scripts/map-get.py upgrade
.endif
.if !defined(WITHOUT_PK3)
@cd ${WRKSRC} && ${GMAKE} pk3
.endif
do-install:
post-install:
# @${CAT} ${PKGMESSAGE}
.include <bsd.port.post.mk>
ufoai-devel/distinfo (generated for empty archive)
ufoai-devel/pkg-descr (ufoai23-version)
ufoai-devel/pkg-plist (ufoai23-version)
ufoai-devel/files/pkg-message.in (ufoai23-version)
Problems
My build inside a fresh x86_64-jail works. But with my host system (with old packages) I experienced a problem (undefined reference to backtrace) while building src/ports/unix regardless of revision.
* [UFO] src/client/battlescape/cl_battlescape.c src/client/battlescape/cl_battlescape.c: In function 'Grid_DumpWholeClientMap_f': src/client/battlescape/cl_battlescape.c:271: warning: implicit declaration of function 'RT_DumpWholeMap' src/client/battlescape/cl_battlescape.c: In function 'Grid_DumpClientRoutes_f': src/client/battlescape/cl_battlescape.c:284: warning: implicit declaration of function 'RT_WriteCSVFiles' * [UFO] src/server/sv_ccmds.c src/server/sv_ccmds.c: In function 'Grid_DumpWholeServerMap_f': src/server/sv_ccmds.c:583: warning: implicit declaration of function 'RT_DumpWholeMap' src/server/sv_ccmds.c: In function 'Grid_DumpServerRoutes_f': src/server/sv_ccmds.c:596: warning: implicit declaration of function 'RT_WriteCSVFiles' * [UFO] src/ports/unix/unix_main.c * [UFO] ... linking -L/usr/local/lib -pthread (-L/usr/local/lib -lvorbis -lm -logg -lm -lz -L/usr/local/lib -lcurl -rpath=/usr/lib:/usr/local/lib -lssl -lcrypto -lz -ljpeg -L/usr/local/lib -lpng -lz -lm -Wl,-rpath,/usr/local/lib -pthread -L/usr/local/lib -lSDL -Wl,-rpath,/usr/local/lib -pthread -L/usr/local/lib -lSDL_image -lSDL -Wl,-rpath,/usr/local/lib -pthread -L/usr/local/lib -lSDL_mixer -lSDL -lSDL_ttf -logg -lxvidcore -L/usr/local/lib -ltheora -logg -lintl -lxvidcore -lGL -Wl,-rpath,/usr/local/lib -pthread -L/usr/local/lib -lSDL ) debug-freebsd-x86_64/client/ports/unix/unix_main.o(.text+0xb48): In function `Sys_Backtrace': src/ports/unix/unix_main.c:380: undefined reference to `backtrace' debug-freebsd-x86_64/client/ports/unix/unix_main.o(.text+0xb5f):src/ports/unix/unix_main.c:381: undefined reference to `backtrace_symbols_fd' gmake: *** [ufo] Error 1
possible upstream changes
- [open] fix in configure.ac upstream: sysctl -n hw.machine_arch -> amd64 -> x86_64
#Makefile fix
.if ${ARCH} == "amd64"
CONFIGURE_TARGET?=x86_64-portbld-freebsd${OSREL}
.endif