diff options
Diffstat (limited to 'community/freeorion')
-rw-r--r-- | community/freeorion/PKGBUILD | 116 | ||||
-rw-r--r-- | community/freeorion/cmake_python.patch | 23 | ||||
-rw-r--r-- | community/freeorion/freeorion.install | 13 | ||||
-rw-r--r-- | community/freeorion/freeorion.sh | 143 |
4 files changed, 295 insertions, 0 deletions
diff --git a/community/freeorion/PKGBUILD b/community/freeorion/PKGBUILD new file mode 100644 index 000000000..75c60bedd --- /dev/null +++ b/community/freeorion/PKGBUILD @@ -0,0 +1,116 @@ +# $Id: PKGBUILD 95098 2013-08-05 17:01:03Z arodseth $ +# Maintainer: Alexander Rødseth <rodseth@gmail.com> +# Contributor: Elmo Todurov <todurov@gmail.com> +# Contributor: guini <sidtrun@googlemail.com> +# Contributor: Forrest Loomis <cybercyst@gmail.com> +# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com> +# Contributor: fana-m <geminin@gmx.net> + +pkgname=freeorion +pkgver=0.4.3 +pkgrel=1 +_svnrev=6281 +_pyversion=2.7 +pkgdesc='Turn-based galactic conquest game inspired by Master of Orion' +arch=('x86_64' 'i686') +url='http://www.freeorion.org/' +license=('GPL') +if [ "$CARCH" == "x86_64" ] +then + depends=('lib32-nvidia-cg-toolkit') +else + depends=('nvidia-cg-toolkit') +fi +depends=('bullet' 'freealut' 'libvorbis' 'python2' 'gigi' 'desktop-file-utils' 'libgl') +makedepends=('boost' 'ogre=1.8.1' 'sdl' 'gigi>0.8.0-18' 'graphviz' 'mesa-libgl' + 'desktop-file-utils' 'setconf' 'cmake' 'gendesk' 'subversion' 'libogg') +options=('!strip' '!emptydirs') +install=$pkgname.install +source=("$pkgname.sh" + "$pkgname.png::https://a.fsdn.com/con/icons/fr/freeorion@sf.net/FO_Icon_256x256.png" + "cmake_python.patch" + "$pkgname::svn+https://freeorion.svn.sourceforge.net/svnroot/freeorion/trunk/FreeOrion/#revision=$_svnrev") +sha256sums=('25b574af5397226373e24510ce59de94c5df5b31d94562fc0de387fd70731707' + 'a6a253eed31b77b00bf4f721f4b1c6bbd95505b9e4b38b736101e551dd12ff5f' + '3dbe8df9c3a4a0d6451f42727ebf9bcb21fed41a08d1181d1cf77ef4ab5ee81a' + 'SKIP') + +pkgver() { + svn upgrade + svn up -r "$_svnrev" + echo "$pkgver" +} + +prepare() { + #msg2 'Looking up revision from version number...' + #_releaserevision=`curl --progress-bar -o- ${url}index.php/Compile | grep "$pkgver" | cut -d':' -f2 | cut -d' ' -f10 | tail -1` + + gendesk -n --pkgname "$pkgname" --pkgdesc "$pkgdesc" +} + +build() { + cd "$srcdir/$pkgname" + + msg2 'CMake/Python fix...' + patch -N -p1 -i "$srcdir/cmake_python.patch" + + msg2 'Generating makefiles...' + cmake \ + -DPYTHON_INCLUDE_DIR:PATH="/usr/include/python$_pyversion" \ + -DPYTHON_LIBRARY:FILEPATH="/usr/lib/libpython$_pyversion.so" \ + -G "Unix Makefiles" + + msg2 'GLU fix...' + if [ "$CARCH" == "x86_64" ] + then + setconf CMakeCache.txt CMAKE_CXX_FLAGS:STRING \ + "'-march=native -mtune=generic -O2 -fno-var-tracking -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -lGL -lGLU -rpath=/usr/lib '" + fi + + msg2 'Compiling...' + make -j1 + + msg2 'OGRE fix...' + sed -i 's:PluginFolder=.:PluginFolder=/usr/lib/OGRE/:g' \ + "$srcdir/$pkgname/ogre_plugins.cfg" +} + +package() { + cd "$srcdir/$pkgname" + + msg2 'Packaging documentation...' + install -Dm644 loki_setup/README.txt \ + "$pkgdir/usr/share/doc/$pkgname/README.txt" + + msg2 'Packaging binaries...' + install -Dm 755 "$srcdir/$pkgname.sh" "$pkgdir/usr/bin/freeorion" + install -Dm 755 freeorion "$pkgdir/usr/bin/freeorion.elf" + install -Dm 755 freeorionca "$pkgdir/usr/bin/freeorionca" + install -Dm 755 freeoriond "$pkgdir/usr/bin/freeoriond" + + msg2 'Packaging data...' + mkdir -p "$pkgdir/usr/share/$pkgname" "$pkgdir/usr/lib/$pkgname" + cp -r default "$pkgdir/usr/share/$pkgname" + install -Dm 644 OISInput.cfg "$pkgdir/usr/share/$pkgname/OISInput.cfg" + + msg2 'Packaging license...' + install -Dm 644 default/COPYING \ + "$pkgdir/usr/share/licenses/$pkgname/COPYING" + + cd "$srcdir" + + msg2 'Packaging icon and shortcut...' + install -Dm 644 "$pkgname.png" \ + "$pkgdir/usr/share/pixmaps/freeorion.png" + install -Dm 644 "$pkgname.desktop" \ + "$pkgdir/usr/share/applications/freeorion.desktop" + + msg2 'Packaging OGRE plugins configuration...' + install -Dm 644 "$srcdir/$pkgname/ogre_plugins.cfg" \ + "$pkgdir/usr/share/freeorion/ogre_plugins.cfg" + + msg2 'Cleaning up...' + find "$pkgdir" -name ".svn" -print0 | xargs -0 rm -rf +} + +# vim:set ts=2 sw=2 et: diff --git a/community/freeorion/cmake_python.patch b/community/freeorion/cmake_python.patch new file mode 100644 index 000000000..b875fa844 --- /dev/null +++ b/community/freeorion/cmake_python.patch @@ -0,0 +1,23 @@ +--- a/client/AI/CMakeLists.txt 2012-09-10 00:11:18.659341865 +0200 ++++ b/client/AI/CMakeLists.txt 2012-09-10 00:12:37.659345189 +0200 +@@ -33,6 +33,20 @@ + find_package(PythonLibs) + if (PYTHONLIBS_FOUND) + include_directories(${PYTHON_INCLUDE_PATH}) ++ SET(_VERSION_REGEX ++ "^#define[ \t]+PY([A-Z_]*_VERSION)[ \t]+[\"]*([0-9A-Za-z\\.]+)[\"]*[ \t]*$") ++ FILE(STRINGS "${PYTHON_INCLUDE_DIR}/patchlevel.h" _VERSION_STRINGS ++ LIMIT_COUNT 10 REGEX ${_VERSION_REGEX}) ++ FOREACH(_VERSION_STRING ${_VERSION_STRINGS}) ++ STRING(REGEX REPLACE ${_VERSION_REGEX} "PYTHON\\1" ++ _VERSION_VARIABLE "${_VERSION_STRING}") ++ STRING(REGEX REPLACE ${_VERSION_REGEX} "\\2" ++ _VERSION_NUMBER "${_VERSION_STRING}") ++ SET(${_VERSION_VARIABLE} ${_VERSION_NUMBER}) ++ ENDFOREACH(_VERSION_STRING ${_VERSION_STRINGS}) ++ IF(PYTHON_MAJOR_VERSION EQUAL 3) ++ MESSAGE(FATAL_ERROR "Python 3 is not supported!") ++ ENDIF() + else () + message(FATAL_ERROR " library not found.") + endif () diff --git a/community/freeorion/freeorion.install b/community/freeorion/freeorion.install new file mode 100644 index 000000000..ad97d7bab --- /dev/null +++ b/community/freeorion/freeorion.install @@ -0,0 +1,13 @@ +post_upgrade() { + update-desktop-database -q +} + +post_install() { + post_upgrade +} + +post_remove() { + post_upgrade +} + +# vim:set ts=2 sw=2 et: diff --git a/community/freeorion/freeorion.sh b/community/freeorion/freeorion.sh new file mode 100644 index 000000000..9f35e7032 --- /dev/null +++ b/community/freeorion/freeorion.sh @@ -0,0 +1,143 @@ +#!/bin/sh +# +# written by Markus Sinner, http://psitronic.de +# +# Nightly builds on. +# http://freeorion.psitronic.de/download/nightly/ +# +# This is a wrapper-script for starting FreeOrion on +# ix86 (and maybe x64) Linux Systems. +# This script will CD into application and set some +# enviroment variables. + +# ---- commandline PARAMETERS and ENVIROMENT variables ----- +# This script supports parameters, that will be evaluated +# BEFORE freeorion binary is called and will be removed, +# because the binary won't support them. +# Currently only one parameter at a time is supported! +# Parameters other than these will be appended as command +# line parameters to the call of the freeorion binary. +# +# --strace +# This starts freeorion using the "strace" utility. +# Generates a strace logifle /tmp/freeorion.trace. +# Make sure it is installed on your system! +# --gdb +# Runs freeorion in a gdb instance, passes the original +# parameters through the --args parameter of gdb +# +# +# ENVIROMENT variables +# This script supports some enviroment variables. To set them +# either use the followin command BEFORE you execute this script. +# export XXXX="value" +# This permanently set the variable in you current shell script. +# Or you prepend the options when running this script, like this: +# PARAM1="hello" PARAM2="yo man" /usr/bin/freeorion.elf +# +# Supportet are: +# FO_TRACE= +# Use this to prepend something to calling freorion. +# This variables also is used internally, when --gdb or --trace +# appear on the command line. +# FO_GDB_ARGS= +# If you use --gbd, you should uses this env to add GDB parameters. +# Make sure you end this list of parameters with --args, otherwise +# gdb won't start. Example: FO_GDB_ARGS="-q -s fo.symbols --args" +# LD_LIBRARY_PATH= +# This is a well known env and will be honored by this script. +# + + +# ---------- STARTS HERE --------------- +# Change into application directory +# If this is a symlink, then we +# need to change into the dir of symlink-target. +if [ -h $0 ]; then + #echo "I am Symlink. Following into my targets basedir" + ME=`readlink $0` +else + #echo "Following into my basedir" + ME=$0 +fi + +# This is important! Script won't work outside its installation dir +ROOT=/usr/share/freeorion +cd ${ROOT} +#echo -n "CWD: " +pwd + + + +# Check for python. If freeorionca binary is missing it, use +# the shipped version. +if ldd /usr/bin/freeorionca | grep "libpython.*not found"; then + #echo "python2.5 missing. Using shipped version." + PYTHON_USE_SHIPPED=1 +else + #echo "python2.5 found. Using it." + PYTHON_USE_SHIPPED=0 +fi + +# Set Python library home for loading modules +# If no python 2.5 is detected, use shipped python 2.5 +if [ "$PYTHON_USE_SHIPPED" = "1" ]; then + export PYTHONHOME=/usr/lib/freeorion/python2.5 + export PYTHONPATH=${PYTHONHOME} + export PYTHONDEBUG=1 + export PYTHONVERBOSE=1 + #echo "PYTHONHOME=${PYTHONHOME}" + + export LD_LIBRARY_PATH=${PYTHONHOME}:${LD_LIBRARY_PATH} + export LD_PRELOAD=${PYTHONHOME}/libutil.so.1:${PYTHONHOME}/libpython2.5.so +fi + + +# Command line Parameter --gdb forces running in gdb +# Setting FO_TRACE to gdb results in other settings, see +# below +if [ "$1" = "--gdb" ]; then + FO_TRACE="gdb" + + # Don't forget to remove the param + shift +fi + +if [ "$1" = "--strace" ]; then + TRACEFILE=/tmp/freeorion.trace + echo + echo "Tracing to ${TRACEFILE}" + echo + FO_TRACE="strace -f -o ${TRACEFILE}" + + # Don't forget to remove the param + shift +fi + + + +# Add a parameter FO_GDB_ARGS to support gdb +# Or warn the user, if he changed FO_GDB_ARGS and has +# forgotten to end it with --args +if [ "$FO_TRACE" = "gdb" ]; then + if [ "$FO_GDB_ARGS" = "" ]; then + FO_GDB_ARGS="--args" + else + echo "****************************************************" + echo "** NOTE NOTE NOTE NOTE **" + echo "Running FO in gdb" + echo "If you use FO_GDB_ARGS on your command line, make" + echo "sure that you END this variabble with --args." + echo "Otherwise gdb will not start." + echo + echo "Type 'start' when the gdb instance has loaded!" + echo + fi +fi + + +# Support loading libs from application/lib +export LD_LIBRARY_PATH=./lib:${LD_LIBRARY_PATH} + +# Call with settings-dir to avoid conflicting installations +${FO_TRACE} ${FO_GDB_ARGS} /usr/bin/freeorion.elf --resource-dir ./default $@ |