aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarino <marino@FreeBSD.org>2015-02-06 19:15:02 +0800
committermarino <marino@FreeBSD.org>2015-02-06 19:15:02 +0800
commit2a38f5fb25f687324c6d3b0a3904d63889647045 (patch)
tree426463cf3838287b72a4c1635e362e0362977da0
parent1fc175865ea8f86b483cf4e31cb42ffe5eb14e94 (diff)
downloadfreebsd-ports-gnome-2a38f5fb25f687324c6d3b0a3904d63889647045.tar.gz
freebsd-ports-gnome-2a38f5fb25f687324c6d3b0a3904d63889647045.tar.zst
freebsd-ports-gnome-2a38f5fb25f687324c6d3b0a3904d63889647045.zip
Add new port: games/diaspora
PR: 195014 Submitted by: lightside (gmx.com) Diaspora: Shattered Armistice is a single and multiplayer space fighter combat game set in the reimagined Battlestar Galactica universe. It is based on FreeSpace 2 Open Source Code Project engine.
-rw-r--r--games/Makefile1
-rw-r--r--games/diaspora/Makefile131
-rw-r--r--games/diaspora/distinfo6
-rw-r--r--games/diaspora/files/extra-patch-increase_joy_buttons_fixed.patch97
-rw-r--r--games/diaspora/files/fs2_open_diaspora.in3
-rw-r--r--games/diaspora/files/fs2_open_diaspora_launcher.in5
-rw-r--r--games/diaspora/pkg-descr5
7 files changed, 248 insertions, 0 deletions
diff --git a/games/Makefile b/games/Makefile
index 6ecca7f6f962..2badfeedbae6 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -187,6 +187,7 @@
SUBDIR += dcross
SUBDIR += defendguin
SUBDIR += diameter
+ SUBDIR += diaspora
SUBDIR += digger-vgl
SUBDIR += dmjava
SUBDIR += dodgindiamond2
diff --git a/games/diaspora/Makefile b/games/diaspora/Makefile
new file mode 100644
index 000000000000..df235a815fa2
--- /dev/null
+++ b/games/diaspora/Makefile
@@ -0,0 +1,131 @@
+# Created by: lightside <lightside@gmx.com>
+# $FreeBSD$
+
+PORTNAME= diaspora
+PORTVERSION= 1.1.1
+CATEGORIES= games
+MASTER_SITES= http://diaspora.fs2downloads.com/ \
+ http://www.freespacemods.net/e107_files/downloads/:freespacemods \
+ http://copy.com/8wo3AQnYu0bj/:copy
+DISTFILES= Diaspora_R1_Linux.tar.lzma:freespacemods,DEFAULT \
+ Diaspora_R1_Patch_1.1.tar.lzma:copy \
+ Diaspora_R1_Patch_1.1.1.tar.lzma
+
+MAINTAINER= lightside@gmx.com
+COMMENT= Single and multiplayer space fighter combat game
+
+LICENSE= CCBYNCSAv3 VOLITION GPLv2
+LICENSE_COMB= multi
+LICENSE_NAME_CCBYNCSAv3= Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported license
+LICENSE_NAME_VOLITION= Volition license
+LICENSE_FILE_CCBYNCSAv3= ${WRKDIR_DIASPORA}/License.txt
+LICENSE_FILE_VOLITION= ${WRKSRC}/COPYING
+LICENSE_FILE_GPLv2= ${WRKDIR_DIASPORA}/wxlauncher/GPLv2.txt
+LICENSE_PERMS_CCBYNCSAv3= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept
+LICENSE_PERMS_VOLITION= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept
+
+LIB_DEPENDS+= libjansson.so:${PORTSDIR}/devel/jansson \
+ libjpeg.so:${PORTSDIR}/graphics/jpeg \
+ libpng.so:${PORTSDIR}/graphics/png \
+ libogg.so:${PORTSDIR}/audio/libogg \
+ libvorbisfile.so:${PORTSDIR}/audio/libvorbis \
+ libtheora.so:${PORTSDIR}/multimedia/libtheora
+
+USES= autoreconf lua:51 openal pkgconfig tar:lzma
+USE_GL= yes
+USE_SDL= sdl
+GNU_CONFIGURE= yes
+
+WRKDIR_DIASPORA= ${WRKDIR}/Diaspora_R1_Linux/Diaspora
+WRKSRC= ${WRKDIR_DIASPORA}/fs2_open
+
+PORTDATA= data *.vp
+PORTDOCS= *
+SUB_FILES= fs2_open_${PORTNAME}
+PLIST_FILES+= bin/fs2_open_${PORTNAME} \
+ libexec/fs2_open_${PORTNAME} \
+ share/pixmaps/${PORTNAME}.png
+
+DESKTOP_ENTRIES= "Diaspora" "${COMMENT}" \
+ "${PORTNAME}" "fs2_open_${PORTNAME}" \
+ "Game;Simulation;" false
+
+MANUAL_PACKAGE_BUILD= very large distfile set (~1.8 GB)
+
+OPTIONS_DEFINE= DOCS INCJOYBTNS SPEECH WXLAUNCHER
+OPTIONS_DEFAULT= SPEECH WXLAUNCHER
+INCJOYBTNS_DESC= Increase a number of joystick buttons from 32 to 98
+INCJOYBTNS_EXTRA_PATCHES= ${FILESDIR}/extra-patch-increase_joy_buttons_fixed.patch
+SPEECH_DESC= Text to speech
+SPEECH_CONFIGURE_ENABLE= speech
+WXLAUNCHER_DESC= Use wxlauncher to manage application profile
+WXLAUNCHER_RUN_DEPENDS= wxlauncher:${PORTSDIR}/games/wxlauncher
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MWXLAUNCHER}
+PORTDATA+= resources *.ini *.png *.bmp
+SUB_FILES+= fs2_open_${PORTNAME}_launcher
+PLIST_FILES+= bin/fs2_open_${PORTNAME}_launcher \
+ %%DATADIR%%/fs2_open_${PORTNAME}
+
+DESKTOP_ENTRIES+= "Diaspora Launcher" "${COMMENT}" \
+ "${PORTNAME}" "fs2_open_${PORTNAME}_launcher" \
+ "Game;Simulation;" false
+.endif
+
+post-extract: .SILENT
+.for v in 1.1 1.1.1
+ (cd ${WRKDIR} && tar -xf Patch_Files.${v}.tar -C ${WRKDIR_DIASPORA} && \
+ ${RM} Patch_Files.${v}.tar)
+.endfor
+.if ${PORT_OPTIONS:MWXLAUNCHER}
+ (cd ${WRKDIR_DIASPORA} && ${CP} -f pro00099.template.ini pro00099.ini)
+# Backup data/cmdline_fso.cfg, because executable might merge it with
+# user settings
+ (cd ${WRKDIR_DIASPORA}/data && ${MV} -f cmdline_fso.cfg cmdline_fso.cfg.bak)
+.endif
+
+post-patch: .SILENT
+.if ${PORT_OPTIONS:MWXLAUNCHER}
+ ${REINPLACE_CMD} -e \
+ 's|/PATH/TO/YOUR/DIASPORA/FOLDER/HERE|${DATADIR}|' \
+ ${WRKDIR_DIASPORA}/pro00099.ini
+.endif
+ ${REINPLACE_CMD} -e '/^AC_INIT/s/3\.7\.1/${PORTNAME}/ ; \
+ s/freebsd/${OPSYS:tl}/ ; \
+ s/ -m64 -march=athlon64 -ansi// ; \
+ s|/usr/local|${LOCALBASE}|' \
+ ${CONFIGURE_WRKSRC}/configure.ac
+ ${REINPLACE_CMD} -e 's|(640x480)x16|(1024x768)x32|' \
+ ${BUILD_WRKSRC}/code/osapi/osapi_unix.cpp
+
+do-install:
+ ${INSTALL_SCRIPT} ${WRKDIR}/fs2_open_${PORTNAME} \
+ ${STAGEDIR}${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/code/fs2_open_${PORTNAME} \
+ ${STAGEDIR}${PREFIX}/libexec
+ (cd ${WRKDIR_DIASPORA} && ${COPYTREE_SHARE} "${PORTDATA}" \
+ ${STAGEDIR}${DATADIR})
+ (cd ${WRKDIR} && ${COPYTREE_SHARE} "README*.txt" ${STAGEDIR}${DOCSDIR})
+ (cd ${WRKDIR_DIASPORA} && ${COPYTREE_SHARE} "*.pdf *.rtf README.txt" \
+ ${STAGEDIR}${DOCSDIR})
+ (cd ${WRKSRC} && ${COPYTREE_SHARE} "AUTHORS ChangeLog" \
+ ${STAGEDIR}${DOCSDIR})
+ ${INSTALL_DATA} ${WRKDIR_DIASPORA}/resources/modimg.png \
+ ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME}.png
+.if ${PORT_OPTIONS:MWXLAUNCHER}
+ ${INSTALL_SCRIPT} ${WRKDIR}/fs2_open_${PORTNAME}_launcher \
+ ${STAGEDIR}${PREFIX}/bin
+# Create a symbolic link, which used by launcher
+ ${LN} -sf ${PREFIX}/libexec/fs2_open_${PORTNAME} ${STAGEDIR}${DATADIR}
+.endif
+
+add-plist-post: build-plist-empty
+
+build-plist-empty: .SILENT
+# Add required empty directories to TMPPLIST
+ ${FIND} ${STAGEDIR}${DATADIR}/data -type d -empty | \
+ ${SED} -e 's|^${STAGEDIR}|@dir |' >> ${TMPPLIST}
+
+.include <bsd.port.mk>
diff --git a/games/diaspora/distinfo b/games/diaspora/distinfo
new file mode 100644
index 000000000000..0d6063e3dec7
--- /dev/null
+++ b/games/diaspora/distinfo
@@ -0,0 +1,6 @@
+SHA256 (Diaspora_R1_Linux.tar.lzma) = 598910f2382ab2c8b10aa02cc6fb00c55ed4cd5a1a64d580deb1a0d4e521cf17
+SIZE (Diaspora_R1_Linux.tar.lzma) = 1342425409
+SHA256 (Diaspora_R1_Patch_1.1.tar.lzma) = 759491c5614a4b814ff9199aaa59bd43d034c0ddf25070e94b2019571e127ba4
+SIZE (Diaspora_R1_Patch_1.1.tar.lzma) = 487141904
+SHA256 (Diaspora_R1_Patch_1.1.1.tar.lzma) = 1569d6990b110cbee240b76727b1a015188cd34c53ecdfea7e84d9de151ce7b4
+SIZE (Diaspora_R1_Patch_1.1.1.tar.lzma) = 8191400
diff --git a/games/diaspora/files/extra-patch-increase_joy_buttons_fixed.patch b/games/diaspora/files/extra-patch-increase_joy_buttons_fixed.patch
new file mode 100644
index 000000000000..3d07285ca41d
--- /dev/null
+++ b/games/diaspora/files/extra-patch-increase_joy_buttons_fixed.patch
@@ -0,0 +1,97 @@
+# Origin: http://scp.indiegames.us/mantis/view.php?id=2651
+Index: code/controlconfig/controlsconfigcommon.cpp
+===================================================================
+--- code/controlconfig/controlsconfigcommon.cpp (revision 8781)
++++ code/controlconfig/controlsconfigcommon.cpp (working copy)
+@@ -233,12 +233,23 @@
+ };
+
+ char *Joy_button_text_german[] = {
+- "Knopf 1", "Knopf 2", "Knopf 3", "Knopf 4", "Knopf 5", "Knopf 6",
+- "Knopf 7", "Knopf 8", "Knopf 9", "Knopf 10", "Knopf 11", "Knopf 12",
+- "Knopf 13", "Knopf 14", "Knopf 15", "Knopf 16", "Knopf 17", "Knopf 18",
+- "Knopf 19", "Knopf 20", "Knopf 21", "Knopf 22", "Knopf 23", "Knopf 24",
+- "Knopf 25", "Knopf 26", "Knopf 27", "Knopf 28", "Knopf 29", "Knopf 30",
+- "Knopf 31", "Knopf 32", "Hut Hinten", "Hut Vorne", "Hut Links", "Hut Rechts"
++ "Knopf 1", "Knopf 2", "Knopf 3", "Knopf 4", "Knopf 5", "Knopf 6",
++ "Knopf 7", "Knopf 8", "Knopf 9", "Knopf 10", "Knopf 11", "Knopf 12",
++ "Knopf 13", "Knopf 14", "Knopf 15", "Knopf 16", "Knopf 17", "Knopf 18",
++ "Knopf 19", "Knopf 20", "Knopf 21", "Knopf 22", "Knopf 23", "Knopf 24",
++ "Knopf 25", "Knopf 26", "Knopf 27", "Knopf 28", "Knopf 29", "Knopf 30",
++ "Knopf 31", "Knopf 32", "Knopf 33", "Knopf 34", "Knopf 35", "Knopf 36",
++ "Knopf 37", "Knopf 38", "Knopf 39", "Knopf 40", "Knopf 41", "Knopf 42",
++ "Knopf 43", "Knopf 44", "Knopf 45", "Knopf 46", "Knopf 47", "Knopf 48",
++ "Knopf 49", "Knopf 50", "Knopf 51", "Knopf 52", "Knopf 53", "Knopf 54",
++ "Knopf 55", "Knopf 56", "Knopf 57", "Knopf 58", "Knopf 59", "Knopf 60",
++ "Knopf 61", "Knopf 62", "Knopf 63", "Knopf 64", "Knopf 65", "Knopf 66",
++ "Knopf 67", "Knopf 68", "Knopf 69", "Knopf 70", "Knopf 71", "Knopf 72",
++ "Knopf 73", "Knopf 74", "Knopf 75", "Knopf 76", "Knopf 77", "Knopf 78",
++ "Knopf 79", "Knopf 80", "Knopf 81", "Knopf 82", "Knopf 83", "Knopf 84",
++ "Knopf 85", "Knopf 86", "Knopf 87", "Knopf 88", "Knopf 89", "Knopf 90",
++ "Knopf 91", "Knopf 92", "Knopf 93", "Knopf 94", "Knopf 95", "Knopf 96",
++ "Knopf 97", "Knopf 98", "Hut Hinten", "Hut Vorne", "Hut Links", "Hut Rechts"
+ };
+
+ char *Scan_code_text_french[] = {
+@@ -285,11 +296,22 @@
+
+ char *Joy_button_text_french[] = {
+ "Bouton 1", "Bouton 2", "Bouton 3", "Bouton 4", "Bouton 5", "Bouton 6",
+- "Bouton 7", "Bouton 8", "Bouton 9", "Bouton 10", "Bouton 11", "Bouton 12",
+- "Bouton 13", "Bouton 14", "Bouton 15", "Bouton 16", "Bouton 17", "Bouton 18",
+- "Bouton 19", "Bouton 20", "Bouton 21", "Bouton 22", "Bouton 23", "Bouton 24",
+- "Bouton 25", "Bouton 26", "Bouton 27", "Bouton 28", "Bouton 29", "Bouton 30",
+- "Bouton 31", "Bouton 32", "Chapeau Arriere", "Chapeau Avant", "Chapeau Gauche", "Chapeau Droite"
++ "Bouton 7", "Bouton 8", "Bouton 9", "Bouton 10", "Bouton 11", "Bouton 12",
++ "Bouton 13", "Bouton 14", "Bouton 15", "Bouton 16", "Bouton 17", "Bouton 18",
++ "Bouton 19", "Bouton 20", "Bouton 21", "Bouton 22", "Bouton 23", "Bouton 24",
++ "Bouton 25", "Bouton 26", "Bouton 27", "Bouton 28", "Bouton 29", "Bouton 30",
++ "Bouton 31", "Bouton 32", "Bouton 33", "Bouton 34", "Bouton 35", "Bouton 36",
++ "Bouton 37", "Bouton 38", "Bouton 39", "Bouton 40", "Bouton 41", "Bouton 42",
++ "Bouton 43", "Bouton 44", "Bouton 45", "Bouton 46", "Bouton 47", "Bouton 48",
++ "Bouton 49", "Bouton 50", "Bouton 51", "Bouton 52", "Bouton 53", "Bouton 54",
++ "Bouton 55", "Bouton 56", "Bouton 57", "Bouton 58", "Bouton 59", "Bouton 60",
++ "Bouton 61", "Bouton 62", "Bouton 63", "Bouton 64", "Bouton 65", "Bouton 66",
++ "Bouton 67", "Bouton 68", "Bouton 69", "Bouton 70", "Bouton 71", "Bouton 72",
++ "Bouton 73", "Bouton 74", "Bouton 75", "Bouton 76", "Bouton 77", "Bouton 78",
++ "Bouton 79", "Bouton 80", "Bouton 81", "Bouton 82", "Bouton 83", "Bouton 84",
++ "Bouton 85", "Bouton 86", "Bouton 87", "Bouton 88", "Bouton 89", "Bouton 90",
++ "Bouton 91", "Bouton 92", "Bouton 93", "Bouton 94", "Bouton 95", "Bouton 96",
++ "Bouton 97", "Bouton 98", "Chapeau Arriere", "Chapeau Avant", "Chapeau Gauche", "Chapeau Droite"
+ };
+
+ // This is the text that is displayed on the screen for the keys a player selects
+@@ -341,7 +363,18 @@
+ "Button 13", "Button 14", "Button 15", "Button 16", "Button 17", "Button 18",
+ "Button 19", "Button 20", "Button 21", "Button 22", "Button 23", "Button 24",
+ "Button 25", "Button 26", "Button 27", "Button 28", "Button 29", "Button 30",
+- "Button 31", "Button 32", "Hat Back", "Hat Forward", "Hat Left", "Hat Right"
++ "Button 31", "Button 32", "Button 33", "Button 34", "Button 35", "Button 36",
++ "Button 37", "Button 38", "Button 39", "Button 40", "Button 41", "Button 42",
++ "Button 43", "Button 44", "Button 45", "Button 46", "Button 47", "Button 48",
++ "Button 49", "Button 50", "Button 51", "Button 52", "Button 53", "Button 54",
++ "Button 55", "Button 56", "Button 57", "Button 58", "Button 59", "Button 60",
++ "Button 61", "Button 62", "Button 63", "Button 64", "Button 65", "Button 66",
++ "Button 67", "Button 68", "Button 69", "Button 70", "Button 71", "Button 72",
++ "Button 73", "Button 74", "Button 75", "Button 76", "Button 77", "Button 78",
++ "Button 79", "Button 80", "Button 81", "Button 82", "Button 83", "Button 84",
++ "Button 85", "Button 86", "Button 87", "Button 88", "Button 89", "Button 90",
++ "Button 91", "Button 92", "Button 93", "Button 94", "Button 95", "Button 96",
++ "Button 97", "Button 98", "Hat Back", "Hat Forward", "Hat Left", "Hat Right"
+ };
+
+ char **Scan_code_text = Scan_code_text_english;
+
+Index: code/io/joy.h
+===================================================================
+--- code/io/joy.h (revision 8781)
++++ code/io/joy.h (working copy)
+@@ -12,7 +12,7 @@
+ #ifndef __JOY_H__
+ #define __JOY_H__
+
+-#define JOY_NUM_BUTTONS 32
++#define JOY_NUM_BUTTONS 98
+ #define JOY_NUM_HAT_POS 4
+ #define JOY_TOTAL_BUTTONS (JOY_NUM_BUTTONS + JOY_NUM_HAT_POS)
+ #define JOY_NUM_AXES 6
diff --git a/games/diaspora/files/fs2_open_diaspora.in b/games/diaspora/files/fs2_open_diaspora.in
new file mode 100644
index 000000000000..dd4ea7a6924b
--- /dev/null
+++ b/games/diaspora/files/fs2_open_diaspora.in
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+cd %%DATADIR%% && exec %%PREFIX%%/libexec/fs2_open_diaspora "$@"
diff --git a/games/diaspora/files/fs2_open_diaspora_launcher.in b/games/diaspora/files/fs2_open_diaspora_launcher.in
new file mode 100644
index 000000000000..f67a1de80c42
--- /dev/null
+++ b/games/diaspora/files/fs2_open_diaspora_launcher.in
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+wxlauncher --add-profile --file="%%DATADIR%%/pro00099.ini" --profile=Diaspora
+wxlauncher --select-profile --profile=Diaspora
+wxlauncher
diff --git a/games/diaspora/pkg-descr b/games/diaspora/pkg-descr
new file mode 100644
index 000000000000..626a9197ea70
--- /dev/null
+++ b/games/diaspora/pkg-descr
@@ -0,0 +1,5 @@
+Diaspora: Shattered Armistice is a single and multiplayer space fighter
+combat game set in the reimagined Battlestar Galactica universe. It is
+based on FreeSpace 2 Open Source Code Project engine.
+
+WWW: http://www.diasporagame.com