From 7dd6c37a54452fa8873db62f1e645dea3374af45 Mon Sep 17 00:00:00 2001 From: CRTS Date: Sat, 21 Sep 2019 15:59:25 +0700 Subject: games/vegastrike: Added (free, Elite-like space simulator). Signed-off-by: Willy Sudiarto Raharjo --- games/vegastrike/README | 41 +++++ games/vegastrike/patch-0.5.1.r1 | 326 +++++++++++++++++++++++++++++++++ games/vegastrike/slack-desc | 19 ++ games/vegastrike/vegastrike.SlackBuild | 175 ++++++++++++++++++ games/vegastrike/vegastrike.info | 18 ++ 5 files changed, 579 insertions(+) create mode 100644 games/vegastrike/README create mode 100644 games/vegastrike/patch-0.5.1.r1 create mode 100644 games/vegastrike/slack-desc create mode 100644 games/vegastrike/vegastrike.SlackBuild create mode 100644 games/vegastrike/vegastrike.info diff --git a/games/vegastrike/README b/games/vegastrike/README new file mode 100644 index 0000000000..23222eefc5 --- /dev/null +++ b/games/vegastrike/README @@ -0,0 +1,41 @@ +Welcome to Vega Strike, a 3d OpenGL spaceflight simulator being developed +for multi-platform play. + +Vega Strike allows players to explore a vastly dynamic universe where +frontiers collide and you're just a pilot trying to make ends meet. How? +That's your decision. Vega Strike is designed as a non-linear gaming +experience, where you choose what action you want to take. + +Vega Strike features a dynamic trading economy, allowing your character to +operate as a merchant. Discover what trade routes bring in the most profit, +what commodities make you the most money given your ship's cargo space +limitations, accept cargo missions and learn to avoid areas of danger +(repairs eat into your profits!). + +If you are tired of making money on milk runs, or want to try something +different, then there are other paths to success. Vega Strike features a +mission generator, providing multiple missions to the experienced +(and not so experienced) pilots. Engage in bounty hunting, patrols, +battles and escort missions. Feel like traveling? Explore the dynamic +universe and see the farthest reaches of known space. +Want a walk on the wild side? You could always turn pirate! Just be +prepared for the consequences. + +Your ship just not doing the job you want it to? Vega Strike gives you the +ability to purchase from a wide variety of ships capable of doing different +jobs. Want to haul cargo? Fight battles? There's a ship for you. Your ship +is fully customizable, so if you've got the credit, outfit your craft +with the right tools for the job at hand. + +Have a chat with the bartender or view the news broadcasts to find out +what's going on in the universe. While you're there, talk to the fixers, +they may have a job that only you can do. But be warned, you never know +where it may lead ... + +HINTS: + + - After installation run 'vssetup' and adjust the settings + before you launch 'vegastrike'. + - You can quit the game either by pressing ESC and then 'q' + during flight or by clicking 'Quit Game' on a save screen. + diff --git a/games/vegastrike/patch-0.5.1.r1 b/games/vegastrike/patch-0.5.1.r1 new file mode 100644 index 0000000000..4077324d4c --- /dev/null +++ b/games/vegastrike/patch-0.5.1.r1 @@ -0,0 +1,326 @@ +diff -ruN ./CMakeLists.txt ../b/CMakeLists.txt +--- ./CMakeLists.txt 2012-03-26 02:50:49.000000000 +0200 ++++ ../b/CMakeLists.txt 2019-09-20 14:45:44.171890881 +0200 +@@ -10,7 +10,7 @@ + + project (vsUTCS) + +- ++include(GNUInstallDirs) + + include_directories(${vsUTCS_SOURCE_DIR}/src + ${vsUTCS_SOURCE_DIR}/src/cmd +@@ -828,33 +828,33 @@ + + #Find FFMpeg + +-find_package(FFMPEG) +-IF(FFMPEG_FOUND) +- SET(TST_INCLUDES ${TST_INCLUDES} ${FFMPEG_INCLUDE_DIRS}) +- SET(TST_LIBS ${TST_LIBS} ${FFMPEG_LIBRARIES}) +- add_definitions(${FFMPEG_DEFINITIONS}) +- SET(HAVE_FFMPEG 1 ) +- IF(swscale1_FOUND) +- message("++ FFmpeg's libswscale found.") +- ELSE(swscale1_FOUND) +- message("-- FFMpeg's libswscale not found... depending on your ffmpeg version, VS might not build.") +- ENDIF(swscale1_FOUND) +-ELSE(FFMPEG_FOUND) +- message("-- FFMPEG Not Found") +-ENDIF(FFMPEG_FOUND) ++#find_package(FFMPEG) ++#IF(FFMPEG_FOUND) ++# SET(TST_INCLUDES ${TST_INCLUDES} ${FFMPEG_INCLUDE_DIRS}) ++# SET(TST_LIBS ${TST_LIBS} ${FFMPEG_LIBRARIES}) ++# add_definitions(${FFMPEG_DEFINITIONS}) ++# SET(HAVE_FFMPEG 1 ) ++# IF(swscale1_FOUND) ++# message("++ FFmpeg's libswscale found.") ++# ELSE(swscale1_FOUND) ++# message("-- FFMpeg's libswscale not found... depending on your ffmpeg version, VS might not build.") ++# ENDIF(swscale1_FOUND) ++#ELSE(FFMPEG_FOUND) ++# message("-- FFMPEG Not Found") ++#ENDIF(FFMPEG_FOUND) + + #Find Ogre + +-find_package(OGRE) +-IF(OGRE_FOUND) +- SET(TST_INCLUDES ${TST_INCLUDES} ${OGRE_INCLUDE_DIR}) +- SET(TST_LIBS ${TST_LIBS} ${OGRE_LIBRARY}) +- add_definitions(${OGRE_DEFINITIONS}) +- SET(HAVE_OGRE 1) +- message("++ Found Ogre: ${OGRE_VERSION}") +-ELSE(OGRE_FOUND) +- message("-- Ogre Not Found: compiling without") +-ENDIF(OGRE_FOUND) ++#find_package(OGRE) ++#IF(OGRE_FOUND) ++# SET(TST_INCLUDES ${TST_INCLUDES} ${OGRE_INCLUDE_DIR}) ++# SET(TST_LIBS ${TST_LIBS} ${OGRE_LIBRARY}) ++# add_definitions(${OGRE_DEFINITIONS}) ++# SET(HAVE_OGRE 1) ++# message("++ Found Ogre: ${OGRE_VERSION}") ++#ELSE(OGRE_FOUND) ++# message("-- Ogre Not Found: compiling without") ++#ENDIF(OGRE_FOUND) + + IF(NOT BEOS) + FIND_LIBRARY(UTIL_LIB util) +@@ -977,12 +977,12 @@ + HAVE_AVFORMAT_H + HAVE_AVCODEC_H + HAVE_AVIO_H +- HAVE_FFMPEG_SWSCALE_H ++# HAVE_FFMPEG_SWSCALE_H + CMAKE_BACKWARDS_COMPATIBILITY +- FFMPEG_INCLUDE_DIR +- FFMPEG_FOUND +- FFMPEG_LIBRARIES +- FFMPEG_DEFINITIONS ++# FFMPEG_INCLUDE_DIR ++# FFMPEG_FOUND ++# FFMPEG_LIBRARIES ++# FFMPEG_DEFINITIONS + GTK2_ATK_INCLUDE_DIR + GTK2_ATK_LIBRARY + GTK2_CAIRO_INCLUDE_DIR +diff -ruN ./objconv/basemaker/base_maker_texture.cpp ../b/objconv/basemaker/base_maker_texture.cpp +--- ./objconv/basemaker/base_maker_texture.cpp 2010-03-10 03:56:23.000000000 +0100 ++++ ../b/objconv/basemaker/base_maker_texture.cpp 2019-09-20 14:45:44.174891262 +0200 +@@ -6,9 +6,12 @@ + #define XMD_H + #define HAVE_BOOLEAN + #endif ++ + extern "C" { + //YUCK it doesn't even have extern c in the headers! + #include ++#include ++ + } + + #define strip_16 true +diff -ruN ./objconv/mesher/to_OgreMesh.cpp ../b/objconv/mesher/to_OgreMesh.cpp +--- ./objconv/mesher/to_OgreMesh.cpp 2011-06-02 01:47:36.000000000 +0200 ++++ ../b/objconv/mesher/to_OgreMesh.cpp 2019-09-20 14:45:44.176891516 +0200 +@@ -1078,10 +1078,15 @@ + Ogre::VertexDeclaration *newDcl = + data->vertexDeclaration->getAutoOrganisedDeclaration( + mesh->hasSkeleton() ); +-#else ++#elif (OGRE_VERSION_MAJOR == 1) && (OGRE_VERSION_MINOR < 8) + Ogre::VertexDeclaration *newDcl = + data->vertexDeclaration->getAutoOrganisedDeclaration( + mesh->hasSkeleton(), mesh->hasVertexAnimation() || (mesh->getPoseCount() > 0) ); ++#else ++ Ogre::VertexDeclaration *newDcl = ++ data->vertexDeclaration->getAutoOrganisedDeclaration( ++ mesh->hasSkeleton(), mesh->hasVertexAnimation() || (mesh->getPoseCount() > 0), ++ mesh->getSharedVertexDataAnimationIncludesNormals()); // what about Pose objects? + #endif + if ( *newDcl != *(data->vertexDeclaration) ) { + //Usages don't matter here since we're onlly exporting +@@ -1109,35 +1114,35 @@ + } + } + +-void AutoLOD( void *outputcontext, bool force, int numLod, float reductionFactor, float refDistance ) +-{ +- struct outputContext *ctxt = (struct outputContext*) outputcontext; +- MeshPtr newMesh = ctxt->top; +- if ( force || (newMesh->getNumLodLevels() <= 1) ) { +- if (newMesh->getNumLodLevels() <= 1) +- newMesh->removeLodLevels(); +- const Ogre::ProgressiveMesh::VertexReductionQuota quota = Ogre::ProgressiveMesh::VRQ_PROPORTIONAL; +- const Real reduction = Real( 1-reductionFactor ); +- +- Real currDist = refDistance; +- +- #if (OGRE_VERSION >= 0x010700) +- Ogre::Mesh::LodValueList distanceList; +- +- // pixel area is squared length, and length is proportional to triangle count +- const Real distFactor = reductionFactor * reductionFactor; +- newMesh->setLodStrategy(Ogre::LodStrategyManager::getSingletonPtr()-> +- getStrategy( "PixelCount" ) ); +- #else +- Ogre::Mesh::LodDistanceList distanceList; +- const Real distFactor = ( (reduction > 0.00001) ? 1/reduction : 1 ); +- #endif +- +- for (int iLod = 0; iLod < numLod; ++iLod, currDist *= distFactor) +- distanceList.push_back( currDist ); +- newMesh->generateLodLevels( distanceList, quota, reduction ); +- } +-} ++//void AutoLOD( void *outputcontext, bool force, int numLod, float reductionFactor, float refDistance ) ++//{ ++// struct outputContext *ctxt = (struct outputContext*) outputcontext; ++// MeshPtr newMesh = ctxt->top; ++// if ( force || (newMesh->getNumLodLevels() <= 1) ) { ++// if (newMesh->getNumLodLevels() <= 1) ++// newMesh->removeLodLevels(); ++// const Ogre::ProgressiveMesh::VertexReductionQuota quota = Ogre::ProgressiveMesh::VRQ_PROPORTIONAL; ++// const Real reduction = Real( 1-reductionFactor ); ++// ++// Real currDist = refDistance; ++// ++// #if (OGRE_VERSION >= 0x010700) ++// Ogre::Mesh::LodValueList distanceList; ++// ++// // pixel area is squared length, and length is proportional to triangle count ++// const Real distFactor = reductionFactor * reductionFactor; ++// newMesh->setLodStrategy(Ogre::LodStrategyManager::getSingletonPtr()-> ++// getStrategy( "PixelCount" ) ); ++// #else ++// Ogre::Mesh::LodDistanceList distanceList; ++// const Real distFactor = ( (reduction > 0.00001) ? 1/reduction : 1 ); ++// #endif ++// ++// for (int iLod = 0; iLod < numLod; ++iLod, currDist *= distFactor) ++// distanceList.push_back( currDist ); ++// newMesh->generateLodLevels( distanceList, quota, reduction ); ++// } ++//} + + void DoneMeshes( void *outputcontext ) + { +diff -ruN ./objconv/mesher/to_OgreMesh.h ../b/objconv/mesher/to_OgreMesh.h +--- ./objconv/mesher/to_OgreMesh.h 2010-02-25 16:22:25.000000000 +0100 ++++ ../b/objconv/mesher/to_OgreMesh.h 2019-09-20 14:45:44.179891897 +0200 +@@ -20,7 +20,7 @@ + float RadialSize( void *outputcontext ); //returns the size of the resulting mesh (it's maximum distance from 0,0,0). Useful for LODding. + + void Optimize( void *outputcontext ); //a good idea - reorganizes internal buffers so that the output mesh is more efficient +-void AutoLOD( void *outputcontext, bool force, int numLod, float reductionFactor, float refDistance ); //autogenerates LOD levels - if force==true, will discard current LOD data ++//void AutoLOD( void *outputcontext, bool force, int numLod, float reductionFactor, float refDistance ); //autogenerates LOD levels - if force==true, will discard current LOD data + void AutoEdgeList( void *outputcontext ); //a good idea - prepares the mesh for stencil shadows + void AutoTangents( void *outputcontext ); //prepares the mesh for normal mapping (only needed if the material uses normal mapping) + } +diff -ruN ./setup/src/c/setup.cpp ../b/setup/src/c/setup.cpp +--- ./setup/src/c/setup.cpp 2011-03-15 01:28:47.000000000 +0100 ++++ ../b/setup/src/c/setup.cpp 2019-09-20 14:45:44.180892025 +0200 +@@ -110,10 +110,22 @@ + return 1; + } + } +- ++ + #ifdef DATA_DIR + data_paths.push_back( DATA_DIR ); + #endif ++ /* whatever the plan was, it does not work on Linux - at least ++ * not at this stage. Hence, use fixed absolute paths to ++ * find data directory ++ */ ++ data_paths.push_back( "/usr/share/games/vegastrike/data"); ++ data_paths.push_back( "/usr/share/vegastrike/data"); ++ data_paths.push_back( "/usr/games/vegastrike/data"); ++ data_paths.push_back( "/usr/local/share/games/vegastrike/data"); ++ data_paths.push_back( "/usr/local/share/vegastrike/data"); ++ data_paths.push_back( "/usr/local/games/vegastrike/data"); ++ data_paths.push_back( "/opt/vegastrike/data"); ++ + data_paths.push_back( origpath ); + data_paths.push_back( string( origpath )+"/.." ); + data_paths.push_back( string( origpath )+"/../data4.x" ); +@@ -133,22 +145,7 @@ + data_paths.push_back( "../Resources" ); + data_paths.push_back( "../Resources/data" ); + data_paths.push_back( "../Resources/data4.x" ); +-/* +- * data_paths.push_back( "/usr/share/local/vegastrike/data"); +- * data_paths.push_back( "/usr/local/share/vegastrike/data"); +- * data_paths.push_back( "/usr/local/vegastrike/data"); +- * data_paths.push_back( "/usr/share/vegastrike/data"); +- * data_paths.push_back( "/usr/local/games/vegastrike/data"); +- * data_paths.push_back( "/usr/games/vegastrike/data"); +- * data_paths.push_back( "/opt/share/vegastrike/data"); +- * data_paths.push_back( "/usr/share/local/vegastrike/data4.x"); +- * data_paths.push_back( "/usr/local/share/vegastrike/data4.x"); +- * data_paths.push_back( "/usr/local/vegastrike/data4.x"); +- * data_paths.push_back( "/usr/share/vegastrike/data4.x"); +- * data_paths.push_back( "/usr/local/games/vegastrike/data4.x"); +- * data_paths.push_back( "/usr/games/vegastrike/data4.x"); +- * data_paths.push_back( "/opt/share/vegastrike/data4.x"); +- */ ++ + //Win32 data should be "." + char tmppath[16384]; + for (vector< string >::iterator vsit = data_paths.begin(); vsit != data_paths.end(); vsit++) { +diff -ruN ./src/cmd/music.cpp ../b/src/cmd/music.cpp +--- ./src/cmd/music.cpp 2012-03-19 09:20:14.000000000 +0100 ++++ ../b/src/cmd/music.cpp 2019-09-20 14:45:44.182892279 +0200 +@@ -448,7 +448,9 @@ + if (foundcache) { + *me->music_load_info = wherecache->second; + me->freeWav = false; +- } ++ } else if ( ! AUDLoadSoundFile(songname, me->music_load_info, true)) { ++ VSFileSystem::vs_dprintf(1, "Failed to load music file \"%s\"", songname); ++ } + } + if (me->freeWav && docacheme) { + me->freeWav = false; +diff -ruN ./src/cmd/unit_jump.h ../b/src/cmd/unit_jump.h +--- ./src/cmd/unit_jump.h 2012-03-19 09:20:14.000000000 +0100 ++++ ../b/src/cmd/unit_jump.h 2019-09-20 14:45:44.184892533 +0200 +@@ -108,7 +108,7 @@ + (tester = *i) != NULL; ++i) + if (tester->isUnit() == UNITPTR && tester != this) + if ( ( this->LocalPosition()-tester->LocalPosition() ).Magnitude() < this->rSize()+tester->rSize() ) +- SetCurPosition( this->LocalPosition()+this->cumulative_transformation_matrix.getR() ++ this->SetCurPosition( this->LocalPosition()+this->cumulative_transformation_matrix.getR() + *( 4*( this->rSize()+tester->rSize() ) ) ); + DealPossibleJumpDamage( this ); + static int jumparrive = AUDCreateSound( vs_config->getVariable( "unitaudio", "jumparrive", "sfx43.wav" ), false ); +diff -ruN ./src/gfx/quadsquare.cpp ../b/src/gfx/quadsquare.cpp +--- ./src/gfx/quadsquare.cpp 2010-03-10 06:27:01.000000000 +0100 ++++ ../b/src/gfx/quadsquare.cpp 2019-09-20 14:45:44.186892787 +0200 +@@ -13,9 +13,9 @@ + #include + #include + #include +-#include "quadsquare.h" + #include "gfxlib.h" + #include "aux_texture.h" ++#include "quadsquare.h" + using std::vector; + + unsigned int*quadsquare::VertexAllocated; +diff -ruN ./src/networking/lowlevel/packetmem.cpp ../b/src/networking/lowlevel/packetmem.cpp +--- ./src/networking/lowlevel/packetmem.cpp 2008-03-31 10:20:19.000000000 +0200 ++++ ../b/src/networking/lowlevel/packetmem.cpp 2019-09-20 14:45:44.187892914 +0200 +@@ -102,7 +102,7 @@ + } + else + { +- _buffer.reset( 0 ); ++ _buffer.reset(); + _len = 0; + } + } +diff -ruN ./src/vsfilesystem.cpp ../b/src/vsfilesystem.cpp +--- ./src/vsfilesystem.cpp 2012-03-19 09:20:14.000000000 +0100 ++++ ../b/src/vsfilesystem.cpp 2019-09-20 14:45:44.190893296 +0200 +@@ -563,6 +563,18 @@ + data_paths.push_back( DATA_DIR ); + #endif + if ( !vegastrike_cwd.empty() ) { ++ /* whatever the plan was, it does not work on Linux - at least ++ * not at this stage. Hence, use fixed absolute paths to ++ * find data directory ++ */ ++ data_paths.push_back( "/usr/share/games/vegastrike/data"); ++ data_paths.push_back( "/usr/share/vegastrike/data"); ++ data_paths.push_back( "/usr/games/vegastrike/data"); ++ data_paths.push_back( "/usr/local/share/games/vegastrike/data"); ++ data_paths.push_back( "/usr/local/share/vegastrike/data"); ++ data_paths.push_back( "/usr/local/games/vegastrike/data"); ++ data_paths.push_back( "/opt/vegastrike/data"); ++ + data_paths.push_back( vegastrike_cwd ); + data_paths.push_back( vegastrike_cwd+"/.." ); + data_paths.push_back( vegastrike_cwd+"/../data4.x" ); diff --git a/games/vegastrike/slack-desc b/games/vegastrike/slack-desc new file mode 100644 index 0000000000..3e5629d092 --- /dev/null +++ b/games/vegastrike/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +vegastrike: vegastrike (free, Elite-like space simulator) +vegastrike: +vegastrike: Vegastrike is an Open Source 3D Action-Space-Sim that +vegastrike: lets you trade, fight, and explore in a vast universe. +vegastrike: +vegastrike: +vegastrike: +vegastrike: Homepage: http://vegastrike.sourceforge.net +vegastrike: +vegastrike: +vegastrike: diff --git a/games/vegastrike/vegastrike.SlackBuild b/games/vegastrike/vegastrike.SlackBuild new file mode 100644 index 0000000000..dcf0e2f936 --- /dev/null +++ b/games/vegastrike/vegastrike.SlackBuild @@ -0,0 +1,175 @@ +#!/bin/sh + +# Slackware build script for vegastrike + +# Copyright 2019- CRTS +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=vegastrike + +PRGSRCSUF=${PRGSRCSUF:-.tar.bz2} +PRGSRCNAME=${PRGSRCNAME:-$PRGNAM-src-*} +PRGSRCNAME=${PRGSRCNAME%$PRGSRCSUF} + +PRGDATASUF=${PRGDATASUF:-.tar.bz2} +PRGDATANAME=${PRGDATANAME:-$PRGNAM-data-*} +PRGDATANAME=${PRGDATANAME%$PRGDATASUF} + +PRGEXTRASUF=${PRGEXTRASUF%.tar.bz2} +PRGEXTRANAME=${PRGEXTRANAME:-$PRGNAM-extra-*} +PRGEXTRANAME=${PRGEXTRANAME%$PRGEXTRASUF} + +PRGMUSICSUF=${PRGMUSICSUF%.tar} +PRGMUSICNAME=${PRGMUSICNAME:-$PRGNAM-music-*} +PRGMUSICNAME=${PRGMUSICNAME%$PRGMUSICSUF} + +PRGSPEECHSUF=${PRGSPEECHSUF%.tar} +PRGSPEECHNAME=${PRGSPEECHNAME:-$PRGNAM-speech-*} +PRGSPEECHNAME=${PRGSPEECHNAME%$PRGSPEECHSUF} + +VERSION=${VERSION:-0.5.1.r1} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGSRCNAME +tar xvf $CWD/$PRGSRCNAME$PRGSRCSUF + +cd $PRGSRCNAME + +patch -p0 < $CWD/patch-$VERSION + +BUILDDIR=build +mkdir -p $BUILDDIR + +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +cd $BUILDDIR + +# ATTENTION: The settings currently do NOT affect the installation +# destinations! +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=/usr/lib${LIBDIRSUFFIX} \ + -DCMAKE_INSTALL_SYSCONFDIR=/etc \ + -DCMAKE_INSTALL_LOCALSTATEDIR=/var \ + -DCMAKE_INSTALL_MANDIR=/usr/man \ + -DCMAKE_INSTALL_DOCDIR=/usr/doc/$PRGNAM-$VERSION \ + -DCMAKE_SYSTEM_PROCESSOR=$ARCH \ + .. + +make + +# auto install is not working, so we have to do it +# manually like a peasant. + +#make install DESTDIR=$PKG + +cd $TMP/$PRGSRCNAME + +bindir=$PKG/usr/bin +vsbasedir=$PKG/usr/share/games/vegastrike +vsdatadir=$vsbasedir/data +objconvdir=$vsbasedir/objconv + +mkdir -p $vsbasedir $bindir $objconvdir + +for f in ./build/objconv/asteroidgen ./build/objconv/replace ./build/objconv/trisort ./build/vegaserver ./build/vegastrike ./build/setup/vssetup;do + cp $f $bindir +done + +for f in ./objconv/3ds2xml ./objconv/obj2xml ./objconv/wcp2xml;do + chmod -x $f + cp $f $objconvdir +done + +tar xvf $CWD/$PRGDATANAME$PRGDATASUF +mv $PRGDATANAME $vsdatadir + +tar xvf $CWD/$PRGEXTRANAME$PRGEXTRASUF +tar xvf $CWD/$PRGMUSICNAME$PRGMUSICSUF +tar xvf $CWD/$PRGSPEECHNAME$PRGSPEECHSUF + +mv $PRGMUSICNAME/* $vsdatadir + +for d in $PRGEXTRANAME $PRGSPEECHNAME;do + echo "copying: $d" + find "$d" -type f -printf '%P\n' | + while read f;do + # all paths will contain at least one '/' in this case + mkdir -p "$vsdatadir/${f%/*}" + mv "$d/$f" "$vsdatadir/$f" + done +done + +echo "stripping libraries" + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp AUTHORS COPYING CYGWIN.NOTES ChangeLog DOCUMENTATION INSTALL NEWS README README.MACOSX.rtf README.sgi $PKG/usr/doc/$PRGNAM-$VERSION + +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/games/vegastrike/vegastrike.info b/games/vegastrike/vegastrike.info new file mode 100644 index 0000000000..e37e9f2c5a --- /dev/null +++ b/games/vegastrike/vegastrike.info @@ -0,0 +1,18 @@ +PRGNAM="vegastrike" +VERSION="0.5.1.r1" +HOMEPAGE="http://vegastrike.sourceforge.net" +DOWNLOAD="http://downloads.sourceforge.net/vegastrike/vegastrike-src-0.5.1.r1.tar.bz2 \ + http://downloads.sourceforge.net/vegastrike/vegastrike-data-0.5.1.r1.tar.bz2 \ + http://downloads.sourceforge.net/vegastrike/vegastrike-speech-0.5.1.r1.tar \ + http://downloads.sourceforge.net/vegastrike/vegastrike-extra-0.5.1.r1.tar.bz2 \ + http://downloads.sourceforge.net/vegastrike/vegastrike-music-0.5.1.r1.tar" +MD5SUM="6f3f2f1ff56a29710b7d0fdd8c3a255f \ + 9ee86998f3611fcf9f94380b6be24e10 \ + e5697fb4d08491ea45f2ef0c1e7602af \ + 909e08838e41740642be121453192342 \ + 66eb03b08504cd51a12c9bd919fa78a0" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="OpenAL" +MAINTAINER="CRTS" +EMAIL="crts [at] gmx [dot] net" -- cgit v1.2.3