diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2015-12-31 09:47:26 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2015-12-31 09:53:02 +0100 |
commit | f9f6f41bff2213e199bded515e9b66d1e5c4d7dd (patch) | |
tree | 29c5a75228e31f305f42c5b761709a186e406776 /pkgs/games | |
parent | bbcf127c7c9029cba43493d7d25a9d1c65d59152 (diff) | |
parent | 468f698f609e123bb0ffae67181d07ac99eb2204 (diff) | |
download | nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar.gz nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar.bz2 nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar.lz nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar.xz nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar.zst nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.zip |
Merge branch 'master' into closure-size
TODO: there was more significant refactoring of qtbase and plasma 5.5 on master, and I'm deferring pointing to correct outputs to later.
Diffstat (limited to 'pkgs/games')
-rw-r--r-- | pkgs/games/anki/default.nix | 60 | ||||
-rw-r--r-- | pkgs/games/anki/fix-paths.patch | 98 | ||||
-rw-r--r-- | pkgs/games/atanks/default.nix | 65 | ||||
-rw-r--r-- | pkgs/games/atanks/default.upstream | 5 | ||||
-rw-r--r-- | pkgs/games/beret/default.nix | 1 | ||||
-rw-r--r-- | pkgs/games/eboard/default.nix | 13 | ||||
-rw-r--r-- | pkgs/games/liquidwar/default.nix | 52 | ||||
-rw-r--r-- | pkgs/games/mnemosyne/default.nix | 8 | ||||
-rw-r--r-- | pkgs/games/sauerbraten/default.nix | 103 | ||||
-rw-r--r-- | pkgs/games/stardust/default.nix | 77 | ||||
-rw-r--r-- | pkgs/games/super-tux/default.nix | 16 | ||||
-rw-r--r-- | pkgs/games/terraria-server/default.nix | 39 | ||||
-rw-r--r-- | pkgs/games/the-butterfly-effect/default.nix | 76 | ||||
-rw-r--r-- | pkgs/games/tome4/default.nix | 6 | ||||
-rw-r--r-- | pkgs/games/zandronum/bin.nix | 39 | ||||
-rw-r--r-- | pkgs/games/zandronum/default.nix | 60 | ||||
-rw-r--r-- | pkgs/games/zandronum/server.nix | 44 |
17 files changed, 380 insertions, 382 deletions
diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix index 735d260560d..ca18ca194da 100644 --- a/pkgs/games/anki/default.nix +++ b/pkgs/games/anki/default.nix @@ -1,5 +1,5 @@ -{ stdenv, lib, fetchurl, lame, mplayer, libpulseaudio, portaudio -, python, pyqt4, pythonPackages +{ stdenv, lib, fetchurl, substituteAll, lame, mplayer +, libpulseaudio, python, pyqt4, qt4, pythonPackages # This little flag adds a huge number of dependencies, but we assume that # everyone wants Anki to draw plots with statistics by default. , plotsSupport ? true }: @@ -18,33 +18,59 @@ stdenv.mkDerivation rec { sha256 = "1d5rf5gcw98m38wam6wh3hyh7qd78ws7zipm67xg744flqsjrzmr"; }; - pythonPath = [ pyqt4 py.pysqlite py.sqlalchemy9 py.pyaudio ] + pythonPath = [ pyqt4 py.pysqlite py.sqlalchemy9 py.pyaudio py.beautifulsoup py.httplib2 ] ++ lib.optional plotsSupport py.matplotlib; buildInputs = [ python py.wrapPython lame mplayer libpulseaudio ]; - preConfigure = '' - substituteInPlace anki/anki \ - --replace /usr/share/ $out/share/ + phases = [ "unpackPhase" "patchPhase" "installPhase" ]; - substituteInPlace Makefile \ - --replace PREFIX=/usr PREFIX=$out \ - --replace /local/bin/ /bin/ + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit lame mplayer qt4; + qt4name = qt4.name; + }) + ]; - sed -i '/xdg-mime/ d' Makefile + postPatch = '' + substituteInPlace oldanki/lang.py --subst-var-by anki $out + substituteInPlace anki/lang.py --subst-var-by anki $out + + # Remove unused starter. We'll create our own, minimalistic, + # starter. + rm anki/anki + + # Remove QT translation files. We'll use the standard QT ones. + rm "locale/"*.qm ''; - preInstall = '' + installPhase = '' + pp=$out/lib/${python.libPrefix}/site-packages + mkdir -p $out/bin - mkdir -p $out/share/pixmaps mkdir -p $out/share/applications + mkdir -p $out/share/doc/anki mkdir -p $out/share/man/man1 - ''; + mkdir -p $out/share/mime/packages + mkdir -p $out/share/pixmaps + mkdir -p $pp + + cat > $out/bin/anki <<EOF + #!${python}/bin/python + import aqt + aqt.run() + EOF + chmod 755 $out/bin/anki + + cp -v anki.desktop $out/share/applications/ + cp -v README* LICENSE* $out/share/doc/anki/ + cp -v anki.1 $out/share/man/man1/ + cp -v anki.xml $out/share/mime/packages/ + cp -v anki.{png,xpm} $out/share/pixmaps/ + cp -rv locale $out/share/ + cp -rv anki aqt thirdparty/send2trash $pp/ - postInstall = '' - mkdir -p "$out/lib/${python.libPrefix}/site-packages" - ln -s "$out/share/anki/"* $out/lib/${python.libPrefix}/site-packages/ - export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH" wrapPythonPrograms ''; diff --git a/pkgs/games/anki/fix-paths.patch b/pkgs/games/anki/fix-paths.patch new file mode 100644 index 00000000000..cfd3424f799 --- /dev/null +++ b/pkgs/games/anki/fix-paths.patch @@ -0,0 +1,98 @@ +diff -Nurp anki-2.0.33.orig/anki/lang.py anki-2.0.33/anki/lang.py +--- anki-2.0.33.orig/anki/lang.py 2015-12-27 11:23:02.334908723 +0100 ++++ anki-2.0.33/anki/lang.py 2015-12-27 14:06:00.688003103 +0100 +@@ -71,13 +71,7 @@ def ngettext(single, plural, n): + return localTranslation().ungettext(single, plural, n) + + def langDir(): +- dir = os.path.join(os.path.dirname( +- os.path.abspath(__file__)), "locale") +- if not os.path.isdir(dir): +- dir = os.path.join(os.path.dirname(sys.argv[0]), "locale") +- if not os.path.isdir(dir): +- dir = "/usr/share/anki/locale" +- return dir ++ return "@anki@/share/locale" + + def setLang(lang, local=True): + trans = gettext.translation( +diff -Nurp anki-2.0.33.orig/anki/sound.py anki-2.0.33/anki/sound.py +--- anki-2.0.33.orig/anki/sound.py 2015-12-27 11:23:02.334908723 +0100 ++++ anki-2.0.33/anki/sound.py 2015-12-27 11:34:11.863147265 +0100 +@@ -29,8 +29,9 @@ processingDst = u"rec.mp3" + processingChain = [] + recFiles = [] + ++lameCmd = "@lame@/bin/lame" + processingChain = [ +- ["lame", "rec.wav", processingDst, "--noreplaygain", "--quiet"], ++ [lameCmd, "rec.wav", processingDst, "--noreplaygain", "--quiet"], + ] + + # don't show box on windows +@@ -44,13 +45,6 @@ if isWin: + else: + si = None + +-if isMac: +- # make sure lame, which is installed in /usr/local/bin, is in the path +- os.environ['PATH'] += ":" + "/usr/local/bin" +- dir = os.path.dirname(os.path.abspath(__file__)) +- dir = os.path.abspath(dir + "/../../../..") +- os.environ['PATH'] += ":" + dir + "/audio" +- + def retryWait(proc): + # osx throws interrupted system call errors frequently + while 1: +@@ -62,13 +56,7 @@ def retryWait(proc): + # Mplayer settings + ########################################################################## + +-if isWin: +- mplayerCmd = ["mplayer.exe", "-ao", "win32"] +- dir = os.path.dirname(os.path.abspath(sys.argv[0])) +- os.environ['PATH'] += ";" + dir +- os.environ['PATH'] += ";" + dir + "\\..\\win\\top" # for testing +-else: +- mplayerCmd = ["mplayer"] ++mplayerCmd = ["@mplayer@/bin/mplayer"] + mplayerCmd += ["-really-quiet", "-noautosub"] + + # Mplayer in slave mode +@@ -220,7 +208,7 @@ class _Recorder(object): + self.encode = encode + for c in processingChain: + #print c +- if not self.encode and c[0] == 'lame': ++ if not self.encode and c[0] == lameCmd: + continue + try: + ret = retryWait(subprocess.Popen(c, startupinfo=si)) +diff -Nurp anki-2.0.33.orig/aqt/__init__.py anki-2.0.33/aqt/__init__.py +--- anki-2.0.33.orig/aqt/__init__.py 2015-12-27 11:23:02.338908782 +0100 ++++ anki-2.0.33/aqt/__init__.py 2015-12-27 12:35:03.405565214 +0100 +@@ -107,7 +107,7 @@ def setupLang(pm, app, force=None): + app.setLayoutDirection(Qt.LeftToRight) + # qt + _qtrans = QTranslator() +- if _qtrans.load("qt_" + lang, dir): ++ if _qtrans.load("qt_" + lang, "@qt4@/share/@qt4name@/translations"): + app.installTranslator(_qtrans) + + # App initialisation +diff -Nurp anki-2.0.33.orig/oldanki/lang.py anki-2.0.33/oldanki/lang.py +--- anki-2.0.33.orig/oldanki/lang.py 2015-12-27 11:23:02.390909551 +0100 ++++ anki-2.0.33/oldanki/lang.py 2015-12-27 14:05:51.663920453 +0100 +@@ -32,11 +32,7 @@ def ngettext(single, plural, n): + return localTranslation().ungettext(single, plural, n) + + def setLang(lang, local=True): +- base = os.path.dirname(os.path.abspath(__file__)) +- localeDir = os.path.join(base, "locale") +- if not os.path.exists(localeDir): +- localeDir = os.path.join( +- os.path.dirname(sys.argv[0]), "locale") ++ localeDir = "@anki@/share/locale" + trans = gettext.translation('libanki', localeDir, + languages=[lang], + fallback=True) diff --git a/pkgs/games/atanks/default.nix b/pkgs/games/atanks/default.nix index 9ebfb724779..4b9b097bbb7 100644 --- a/pkgs/games/atanks/default.nix +++ b/pkgs/games/atanks/default.nix @@ -1,53 +1,26 @@ -x@{builderDefsPackage - , allegro - , ...}: -builderDefsPackage -(a : -let - helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ - []; +{ stdenv, fetchurl, allegro }: - buildInputs = map (n: builtins.getAttr n x) - (builtins.attrNames (builtins.removeAttrs x helperArgNames)); - sourceInfo = rec { - baseName="atanks"; - version = "6.2"; - name="${baseName}-${version}"; - project="${baseName}"; - url="mirror://sourceforge/project/${project}/${baseName}/${name}/${name}.tar.gz"; +stdenv.mkDerivation rec { + name = "atanks-${version}"; + version = "6.2"; + + src = fetchurl { + url = "mirror://sourceforge/project/atanks/atanks/${name}/${name}.tar.gz"; sha256 = "1s1lb87ind0y9d6hmfaf1b9wks8q3hd6w5n9dibq75rxqmcfvlpy"; }; -in -rec { - src = a.fetchurl { - url = sourceInfo.url; - sha256 = sourceInfo.sha256; - }; - inherit (sourceInfo) name version; - inherit buildInputs; + buildInputs = [ allegro ]; + + patchPhase = '' + substituteInPlace Makefile --replace /usr $out + ''; - /* doConfigure should be removed if not needed */ - phaseNames = ["fixInstall" "doMakeInstall"]; - makeFlags=[ - "PREFIX=$out/" - ]; - fixInstall = a.fullDepEntry ('' - sed -e "s@INSTALL=.*bin/install @INSTALL=install @" -i Makefile - sed -e "s@-g 0 -m ... -o 0@@" -i Makefile - sed -e 's@/usr/@'"$out"'@g' -i Makefile - '') ["doUnpack" "minInit"]; - - meta = { + makeFlags = [ "PREFIX=$(out)/" "INSTALL=install" ]; + + meta = with stdenv.lib; { description = "Atomic Tanks ballistics game"; - maintainers = with a.lib.maintainers; - [ - raskin - ]; - platforms = with a.lib.platforms; - linux; - downloadPage = "http://sourceforge.net/projects/atanks/files/atanks/"; - inherit version; + homepage = http://atanks.sourceforge.net/; + maintainers = [ maintainers.raskin ]; + platforms = platforms.linux; }; -}) x - +} diff --git a/pkgs/games/atanks/default.upstream b/pkgs/games/atanks/default.upstream deleted file mode 100644 index f52364b3427..00000000000 --- a/pkgs/games/atanks/default.upstream +++ /dev/null @@ -1,5 +0,0 @@ -url http://sourceforge.net/projects/atanks/files/atanks/ -version_link 'atanks[-][0-9.]+/$' -version_link '[.]tar[.][a-z0-9]+/download' -SF_redirect -do_overwrite () { do_overwrite_just_version; } diff --git a/pkgs/games/beret/default.nix b/pkgs/games/beret/default.nix index cfb276c0fb0..81bdbed46e9 100644 --- a/pkgs/games/beret/default.nix +++ b/pkgs/games/beret/default.nix @@ -35,6 +35,7 @@ stdenv.mkDerivation { license = licenses.lgpl2; maintainers = with maintainers; [ lovek323 ]; platforms = platforms.all; + broken = true; # source won't download, and no replacement is visible }; } diff --git a/pkgs/games/eboard/default.nix b/pkgs/games/eboard/default.nix index 8dd06fa6a28..3d070c5eafb 100644 --- a/pkgs/games/eboard/default.nix +++ b/pkgs/games/eboard/default.nix @@ -1,8 +1,8 @@ -{ stdenv, fetchurl, pkgconfig, gtk }: +{ stdenv, fetchurl, perl, pkgconfig, gtk }: stdenv.mkDerivation { name = "eboard-1.1.1"; - + src = fetchurl { url = mirror://sourceforge/eboard/eboard-1.1.1.tar.bz2; sha256 = "0vm25j1s2zg1lipwjv9qrcm877ikfmk1yh34i8f5l3bwd63115xd"; @@ -10,7 +10,14 @@ stdenv.mkDerivation { patches = [ ./eboard.patch ]; - buildInputs = [ pkgconfig gtk ]; + buildInputs = [ gtk ]; + nativeBuildInputs = [ perl pkgconfig ]; + + preConfigure = '' + patchShebangs ./configure + ''; + + NIX_CFLAGS_COMPILE = [ "-fpermissive" ]; meta = { homepage = http://www.bergo.eng.br/eboard/; diff --git a/pkgs/games/liquidwar/default.nix b/pkgs/games/liquidwar/default.nix index a87c4dea0c3..f97c0ec412f 100644 --- a/pkgs/games/liquidwar/default.nix +++ b/pkgs/games/liquidwar/default.nix @@ -1,11 +1,20 @@ -a @ { xproto, libX11, libXrender +{ stdenv, fetchurl, xproto, libX11, libXrender , gmp, mesa, libjpeg, libpng -, expat, gettext, perl +, expat, gettext, perl, guile , SDL, SDL_image, SDL_mixer, SDL_ttf , curl, sqlite -, libogg, libvorbis, libcaca, csound, cunit, ... } : -let - buildInputs = with a; [ +, libogg, libvorbis, libcaca, csound, cunit } : + +stdenv.mkDerivation rec { + name = "liquidwar6-${version}"; + version = "0.6.3902"; + + src = fetchurl { + url = "mirror://gnu/liquidwar6/${name}.tar.gz"; + sha256 = "1976nnl83d8wspjhb5d5ivdvdxgb8lp34wp54jal60z4zad581fn"; + }; + + buildInputs = [ xproto libX11 gmp guile mesa libjpeg libpng expat gettext perl @@ -14,34 +23,15 @@ let libogg libvorbis csound libXrender libcaca cunit ]; -in -rec { - name = "liquidwar6-${meta.version}"; - src = a.fetchurl { - url = "mirror://gnu/liquidwar6/${name}.tar.gz"; - sha256 = "1976nnl83d8wspjhb5d5ivdvdxgb8lp34wp54jal60z4zad581fn"; - }; - - inherit buildInputs; - configureFlags = []; + # To avoid problems finding SDL_types.h. + configureFlags = [ "CFLAGS=-I${SDL.dev}/include/SDL" ]; - /* doConfigure should be removed if not needed */ - phaseNames = ["setVars" "doConfigure" "doMakeInstall"]; - - setVars = a.noDepEntry ('' - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${a.SDL.dev}/include/SDL" - ''); - - meta = { + meta = with stdenv.lib; { description = "Quick tactics game"; - maintainers = [ - a.lib.maintainers.raskin - ]; - platforms = with a.lib.platforms; - linux; - homepage = "http://www.gnu.org/software/liquidwar6/"; - version = "0.6.3902"; - updateWalker=true; + homepage = "http://www.gnu.org/software/liquidwar6/"; + maintainers = [ maintainers.raskin ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; }; } diff --git a/pkgs/games/mnemosyne/default.nix b/pkgs/games/mnemosyne/default.nix index e01999b2ecc..8624e168f92 100644 --- a/pkgs/games/mnemosyne/default.nix +++ b/pkgs/games/mnemosyne/default.nix @@ -2,9 +2,7 @@ , fetchurl , buildPythonPackage , pyqt4 -, matplotlib -, cherrypy -, sqlite3 +, pythonPackages }: let version = "2.3.2"; @@ -14,17 +12,17 @@ in buildPythonPackage rec { url = "http://sourceforge.net/projects/mnemosyne-proj/files/mnemosyne/${name}/Mnemosyne-${version}.tar.gz"; sha256 = "0jkrw45i4v24p6xyq94z7rz5948h7f5dspgs5mcdaslnlp2accfp"; }; - pythonPath = [ + propagatedBuildInputs = with pythonPackages; [ pyqt4 matplotlib cherrypy sqlite3 + webob ]; preConfigure = '' substituteInPlace setup.py --replace /usr $out find . -type f -exec grep -H sys.exec_prefix {} ';' | cut -d: -f1 | xargs sed -i s,sys.exec_prefix,\"$out\", ''; - installCommand = "python setup.py install --prefix=$out"; meta = { homepage = http://mnemosyne-proj.org/; description = "Spaced-repetition software"; diff --git a/pkgs/games/sauerbraten/default.nix b/pkgs/games/sauerbraten/default.nix index 8f3fb53f7e3..61a9310ae21 100644 --- a/pkgs/games/sauerbraten/default.nix +++ b/pkgs/games/sauerbraten/default.nix @@ -1,77 +1,56 @@ -x@{builderDefsPackage - , fetchsvn, mesa, SDL, SDL_image, SDL_mixer - , libpng, zlib, libjpeg, imagemagick, libX11 - , ...}: -builderDefsPackage -(a : -let - helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ - ["fetchsvn"]; - - buildInputs = map (n: builtins.getAttr n x) - (builtins.attrNames (builtins.removeAttrs x helperArgNames)); - sourceInfo = rec { - baseName="sauerbraten"; - version="5000"; - name="${baseName}-r${version}"; - url="https://svn.code.sf.net/p/sauerbraten/code"; - hash="17libj7dslprlwppdk3vyxdcigbsa4czln8gdyz9j264m11z1cbh"; - }; -in -rec { - srcDrv = a.fetchsvn { - url = sourceInfo.url; - sha256 = sourceInfo.hash; - rev = sourceInfo.version; +{ stdenv, fetchsvn, mesa, SDL, SDL_image, SDL_mixer +, libpng, zlib, libjpeg, imagemagick, libX11 +}: + +stdenv.mkDerivation rec { + name = "sauerbraten-r${version}"; + version = "5000"; + + src = fetchsvn { + url = "https://svn.code.sf.net/p/sauerbraten/code"; + sha256 = "17libj7dslprlwppdk3vyxdcigbsa4czln8gdyz9j264m11z1cbh"; + rev = version; }; - src = srcDrv + "/"; - - inherit (sourceInfo) name version; - inherit buildInputs; - - phaseNames = ["setVars" "doMakeInstall" "doCreateScripts"]; + buildInputs = [ + mesa SDL SDL_image SDL_mixer libpng zlib libjpeg imagemagick + libX11 + ]; - setVars = a.noDepEntry '' + preBuild = '' export NIX_LDFLAGS="$NIX_LDFLAGS -lX11" + pushd src ''; - doUnpack = a.fullDepEntry '' - mkdir -p $out/share/sauerbraten/build-dir - ln -s $out/share/sauerbraten/build-dir - cd $out/share/sauerbraten/build-dir - (cd ${src}; find . -type d) | tail -n +2 | xargs -L 1 mkdir - (cd ${src}; find . -type f) | while read; do ln -s ${src}/"$REPLY" "$(dirname "$REPLY")"; done - cd src - ls - make clean - sed -e '/[.]h[.]gch/,/-o/s@-o@-x c++-header -o@' -i Makefile - '' ["minInit" "addInputs" "defEnsureDir"]; - - doCreateScripts = a.fullDepEntry '' - cd .. - mkdir -p $out/bin - echo '#! /bin/sh' >> $out/bin/sauerbraten_server - echo 'cd "'"$out"'/share/sauerbraten/build-dir"' >> $out/bin/sauerbraten_server - echo './bin_unix/native_server "$@"' >> $out/bin/sauerbraten_server - echo '#! /bin/sh' >> $out/bin/sauerbraten_client - echo 'cd "'"$out"'/share/sauerbraten/build-dir"' >> $out/bin/sauerbraten_client - echo './bin_unix/native_client "$@"' >> $out/bin/sauerbraten_client + installPhase = '' + popd + mkdir -p $out/bin $out/share/sauerbraten $out/share/doc/sauerbraten + cp -rv "docs/"* $out/share/doc/sauerbraten/ + cp -v src/sauer_client src/sauer_server $out/share/sauerbraten/ + cp -rv packages $out/share/sauerbraten/ + cp -rv data $out/share/sauerbraten/ + cat > $out/bin/sauerbraten_server <<EOF + #!${stdenv.shell} + cd $out/share/sauerbraten + ./sauer_server "\$@" + EOF + cat > $out/bin/sauerbraten_client <<EOF + #!${stdenv.shell} + cd $out/share/sauerbraten + ./sauer_client "\$@" + EOF chmod a+x $out/bin/sauerbraten_* - '' ["minInit" "defEnsureDir"]; - - meta = { + ''; + + meta = with stdenv.lib; { description = ""; - maintainers = with a.lib.maintainers; - [ - raskin - ]; + maintainers = [ maintainers.raskin ]; hydraPlatforms = # raskin: tested amd64-linux; # not setting platforms because it is 0.5+ GiB of game data []; license = "freeware"; # as an aggregate - data files have different licenses # code is under zlib license + platforms = platforms.linux; }; -}) x - +} diff --git a/pkgs/games/stardust/default.nix b/pkgs/games/stardust/default.nix index c7ee0df6a7a..aa68da6b73d 100644 --- a/pkgs/games/stardust/default.nix +++ b/pkgs/games/stardust/default.nix @@ -1,62 +1,31 @@ -x@{builderDefsPackage - , zlib, libtiff, libxml2, SDL, xproto, libX11, libXi, inputproto, libXmu - , libXext, xextproto, mesa - , ...}: -builderDefsPackage -(a : -let - helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ - []; +{ stdenv, fetchurl, zlib, libtiff, libxml2, SDL, xproto, libX11 +, libXi, inputproto, libXmu, libXext, xextproto, mesa }: - buildInputs = map (n: builtins.getAttr n x) - (builtins.attrNames (builtins.removeAttrs x helperArgNames)); - sourceInfo = rec { - baseName="stardust"; - version="0.1.13"; - name="${baseName}-${version}"; - url="http://iwar.free.fr/IMG/gz/${name}.tar.gz"; - hash="19rs9lz5y5g2yiq1cw0j05b11digw40gar6rw8iqc7bk3s8355xp"; - }; -in -rec { - src = a.fetchurl { - url = sourceInfo.url; - sha256 = sourceInfo.hash; - }; +stdenv.mkDerivation rec { + name = "stardust-${version}"; + version = "0.1.13"; - inherit (sourceInfo) name version; - inherit buildInputs; - - /* doConfigure should be removed if not needed */ - phaseNames = ["doConfigure" "fixPaths" "doMakeInstall"]; + src = fetchurl { + url = "http://iwar.free.fr/IMG/gz/${name}.tar.gz"; + sha256 = "19rs9lz5y5g2yiq1cw0j05b11digw40gar6rw8iqc7bk3s8355xp"; + }; - configureFlags = [ - "--bindir=$out/bin" - "--datadir=$out/share" - ]; - - makeFlags = [ - "bindir=$out/bin" - "datadir=$out/share" + buildInputs = [ + zlib libtiff libxml2 SDL xproto libX11 libXi inputproto + libXmu libXext xextproto mesa ]; - fixPaths = a.fullDepEntry ('' - sed -e "s@#define PACKAGE .*@#define PACKAGE \"stardust\"@" -i config.h - '') ["minInit"]; + installFlags = [ "bindir=\${out}/bin" ]; + + postConfigure = '' + substituteInPlace config.h \ + --replace '#define PACKAGE ""' '#define PACKAGE "stardust"' + ''; - meta = { + meta = with stdenv.lib; { description = "Space flight simulator"; - maintainers = with a.lib.maintainers; - [ - raskin - ]; - platforms = with a.lib.platforms; - linux; + maintainers = [ maintainers.raskin ]; + platforms = platforms.linux; + license = licenses.gpl2Plus; }; - passthru = { - updateInfo = { - downloadPage = "http://iwar.free.fr/article.php3?id_article=6"; - }; - }; -}) x - +} diff --git a/pkgs/games/super-tux/default.nix b/pkgs/games/super-tux/default.nix index 11429cfadd2..163320d8ae2 100644 --- a/pkgs/games/super-tux/default.nix +++ b/pkgs/games/super-tux/default.nix @@ -1,25 +1,19 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, SDL2, SDL2_image, SDL2_mixer +{ stdenv, fetchurl, cmake, pkgconfig, SDL2, SDL2_image, SDL2_mixer , curl, gettext, libogg, libvorbis, mesa, openal, physfs, boost, glew , libiconv }: stdenv.mkDerivation rec { name = "supertux-${version}"; - version = "0.3.5a"; + version = "0.4.0"; - src = fetchFromGitHub { - owner = "SuperTux"; - repo = "supertux"; - rev = "v${version}"; - sha256 = "0f522wsv0gx7v1h70x8xznklaqr5bm2l9h7ls9vjywy0z4iy1ahp"; + src = fetchurl { + url = https://github.com/SuperTux/supertux/releases/download/v0.4.0/supertux-0.4.0.tar.bz2; + sha256 = "10ppmy6w77lxj8bdzjahc9bidgl4qgzr9rimn15rnqay84ydx3fi"; }; buildInputs = [ pkgconfig cmake SDL2 SDL2_image SDL2_mixer curl gettext libogg libvorbis mesa openal physfs boost glew libiconv ]; - preConfigure = '' - patchShebangs configure - ''; - postInstall = '' mkdir $out/bin ln -s $out/games/supertux2 $out/bin diff --git a/pkgs/games/terraria-server/default.nix b/pkgs/games/terraria-server/default.nix new file mode 100644 index 00000000000..4eeefc2801b --- /dev/null +++ b/pkgs/games/terraria-server/default.nix @@ -0,0 +1,39 @@ +{ stdenv, lib, file, fetchurl }: +assert stdenv.system == "x86_64-linux"; + +stdenv.mkDerivation rec { + name = "terraria-server-${version}"; + version = "1308"; + + src = fetchurl { + url = http://terraria.org/server/terraria-server-linux-1308.tar.gz; + sha256 = "0cx3nx7wmzcw9l0nz9zm4amccl8nrd09hlb3jc1yrqcaswbyxc8a"; + }; + + buildInputs = [ file ]; + + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/bin + cp -r * $out/ + ln -s $out/terraria-server-linux-${version}/TerrariaServer.bin.x86_64 $out/bin/TerrariaServer + + # Fix "/lib64/ld-linux-x86-64.so.2" like references in ELF executables. + echo "running patchelf on prebuilt binaries:" + find "$out" | while read filepath; do + if file "$filepath" | grep -q "ELF.*executable"; then + echo "setting interpreter $(cat "$NIX_CC"/nix-support/dynamic-linker) in $filepath" + patchelf --set-interpreter "$(cat "$NIX_CC"/nix-support/dynamic-linker)" "$filepath" + test $? -eq 0 || { echo "patchelf failed to process $filepath"; exit 1; } + fi + done + ''; + + meta = with lib; { + homepage = http://terraria.org; + description = "Dedicated server for the main game"; + platforms = platforms.linux; + license = licenses.unfree; + }; +} diff --git a/pkgs/games/the-butterfly-effect/default.nix b/pkgs/games/the-butterfly-effect/default.nix index 3cf91e11a55..8775fb103d8 100644 --- a/pkgs/games/the-butterfly-effect/default.nix +++ b/pkgs/games/the-butterfly-effect/default.nix @@ -1,64 +1,28 @@ -x@{builderDefsPackage - , qt4, box2d, which - ,fetchsvn, cmake - , ...}: -builderDefsPackage -(a : -let - helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ - ["fetchsvn"]; +{ stdenv, fetchurl, qt4, box2d, which, cmake }: - buildInputs = map (n: builtins.getAttr n x) - (builtins.attrNames (builtins.removeAttrs x helperArgNames)); - sourceInfo = rec { - baseName="tbe"; - revision="2048"; - version="r${revision}"; - name="${baseName}-${version}"; - url="https://tbe.svn.sourceforge.net/svnroot/tbe/trunk"; - hash="19pqpkil4r5y9j4nszkbs70lq720nvqw8g8magd8nf2n3l9nqm51"; - }; -in -rec { - srcDrv = a.fetchsvn { - url = sourceInfo.url; - sha256 = sourceInfo.hash; - rev = sourceInfo.revision; - }; - src = srcDrv + "/"; +stdenv.mkDerivation rec { + name = "tbe-${version}"; + version = "0.9.2.1"; - inherit (sourceInfo) name version; - inherit buildInputs; + src = fetchurl { + url = "https://github.com/kaa-ching/tbe/archive/v${version}.tar.gz"; + sha256 = "1cs4q9qiakfd2m1lvfsvfgf8yvhxzmc06glng5d80piwyn6ymzxg"; + }; - phaseNames = ["setVars" "doCmake" "doMakeInstall" "doDeploy"]; + buildInputs = [ qt4 box2d which cmake ]; - setVars = a.noDepEntry '' - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${a.box2d}/include/Box2D" + installPhase = '' + make DESTDIR=.. install + mkdir -p $out/bin + cp ../usr/games/tbe $out/bin + cp -r ../usr/share $out/ ''; - doDeploy = a.fullDepEntry '' - mkdir -p "$out/share/tbe" - cp -r . "$out/share/tbe/build-dir" - mkdir -p "$out/bin" - echo '#!${a.stdenv.shell}' >> "$out/bin/tbe" - echo "$out/share/tbe/build-dir/tbe \"\$@\"" >> "$out/bin/tbe" - chmod a+x "$out/bin/tbe" - '' ["minInit" "doMake" "defEnsureDir"]; - - meta = { + meta = with stdenv.lib; { description = "A physics-based game vaguely similar to Incredible Machine"; - maintainers = with a.lib.maintainers; - [ - raskin - ]; - platforms = with a.lib.platforms; - linux; - license = a.stdenv.lib.licenses.gpl2; - }; - passthru = { - inherit srcDrv; - updateInfo = { - downloadPage = "http://sourceforge.net/projects/tbe/files/"; - }; + homepage = http://the-butterfly-effect.org/; + maintainers = [ maintainers.raskin ]; + platforms = platforms.linux; + license = licenses.gpl2; }; -}) x +} diff --git a/pkgs/games/tome4/default.nix b/pkgs/games/tome4/default.nix index 7b7b0808aa9..8ad0f7723c0 100644 --- a/pkgs/games/tome4/default.nix +++ b/pkgs/games/tome4/default.nix @@ -1,11 +1,11 @@ {stdenv, fetchurl, openal, libvorbis, mesa_glu, premake4, SDL2, SDL2_image, SDL2_ttf}: stdenv.mkDerivation rec { - version = "1.3.1"; + version = "1.3.3"; name = "tome4-${version}"; src = fetchurl { - url = "http://te4.org/dl/t-engine/t-engine4-src-1.3.1.tar.bz2"; - sha256 = "9b6658e29ad3be9f8469a61e724350f4dfec676777e471f633d616443dfbc7e7"; + url = "http://te4.org/dl/t-engine/t-engine4-src-${version}.tar.bz2"; + sha256 = "d4c6d6aa0cb73b28172cebf89e4271b0a51c6e7dea744ce9c6d6042dd076e9cd"; }; buildInputs = [ mesa_glu openal libvorbis SDL2 SDL2_ttf SDL2_image premake4 ]; preConfigure = '' diff --git a/pkgs/games/zandronum/bin.nix b/pkgs/games/zandronum/bin.nix index 453f7dc1c1d..cf46877ef71 100644 --- a/pkgs/games/zandronum/bin.nix +++ b/pkgs/games/zandronum/bin.nix @@ -18,10 +18,9 @@ , zlib }: -assert stdenv.system == "x86_64-linux"; - stdenv.mkDerivation rec { name = "zandronum-2.1.2"; + src = fetchurl { url = "http://zandronum.com/downloads/zandronum2.1.2-linux-x86_64.tar.bz2"; sha256 = "1f5aw2m8c0bl3lrvi2k3rrzq3q9x1ikxnxxjgh3k9qvanfn7ykbk"; @@ -49,38 +48,30 @@ stdenv.mkDerivation rec { phases = [ "unpackPhase" "installPhase" ]; - unpackPhase = '' - tar xf $src - ''; + sourceRoot = "."; installPhase = '' mkdir -p $out/bin - mkdir -p $out/share - cp * $out/share - - patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/share/zandronum - patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/share/zandronum-server + mkdir -p $out/share/zandronum + cp *.so *.pk3 zandronum zandronum-server $out/share/zandronum - cat > $out/bin/zandronum << EOF - #!/bin/sh + patchelf \ + --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ + --set-rpath $libPath:$out/share/zandronum \ + $out/share/zandronum/zandronum + patchelf \ + --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ + --set-rpath $libPath \ + $out/share/zandronum/zandronum-server - LD_LIBRARY_PATH=$libPath:$out/share $out/share/zandronum "\$@" - EOF - - cat > $out/bin/zandronum-server << EOF - #!/bin/sh - - LD_LIBRARY_PATH=$libPath:$out/share $out/share/zandronum-server "\$@" - EOF - - chmod +x "$out/bin/zandronum" - chmod +x "$out/bin/zandronum-server" + ln -s $out/share/zandronum/zandronum $out/bin/zandronum + ln -s $out/share/zandronum/zandronum-server $out/bin/zandronum-server ''; meta = { homepage = http://zandronum.com/; description = "multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software. Binary version for online play."; maintainer = [ stdenv.lib.maintainers.lassulus ]; + platforms = [ "x86_64-linux" ]; }; } - diff --git a/pkgs/games/zandronum/default.nix b/pkgs/games/zandronum/default.nix index b92551a78bf..ecdf8cfdbd2 100644 --- a/pkgs/games/zandronum/default.nix +++ b/pkgs/games/zandronum/default.nix @@ -1,43 +1,61 @@ -{ stdenv, fetchhg, cmake, SDL, mesa, fmod42416, openssl, sqlite, sqlite-amalgamation }: +{ stdenv, lib, fetchhg, cmake, pkgconfig, makeWrapper +, SDL, mesa, bzip2, zlib, fmod, libjpeg, fluidsynth, openssl, sqlite-amalgamation +, serverOnly ? false +}: + +let suffix = lib.optionalString serverOnly "-server"; + +# FIXME: drop binary package when upstream fixes their protocol versioning +in stdenv.mkDerivation { + name = "zandronum${suffix}-2.1.2"; -stdenv.mkDerivation { - name = "zandronum-2.1.2"; src = fetchhg { url = "https://bitbucket.org/Torr_Samaho/zandronum-stable"; rev = "a3663b0061d5"; sha256 = "0qwsnbwhcldwrirfk6hpiklmcj3a7dzh6pn36nizci6pcza07p56"; }; - phases = [ "unpackPhase" "configurePhase" "buildPhase" "installPhase" ]; + # I have no idea why would SDL and libjpeg be needed for the server part! + # But they are. + buildInputs = [ openssl bzip2 zlib SDL libjpeg ] + ++ lib.optionals (!serverOnly) [ mesa fmod fluidsynth ]; - buildInputs = [ cmake SDL mesa fmod42416 openssl sqlite sqlite-amalgamation ]; + nativeBuildInputs = [ cmake pkgconfig makeWrapper ]; preConfigure = '' - cp ${sqlite-amalgamation}/* sqlite/ + ln -s ${sqlite-amalgamation}/* sqlite/ ''; - cmakeFlags = [ - "-DFMOD_LIBRARY=${fmod42416}/lib/libfmodex.so" - ]; + cmakeFlags = + lib.optional (!serverOnly) "-DFMOD_LIBRARY=${fmod}/lib/libfmodex.so" + ++ lib.optional serverOnly "-DSERVERONLY=ON" + ; + + enableParallelBuilding = true; installPhase = '' mkdir -p $out/bin - mkdir -p $out/share - cp zandronum zandronum.pk3 skulltag_actors.pk3 liboutput_sdl.so $out/share - - cat > $out/bin/zandronum << EOF - #!/bin/sh - - LD_LIBRARY_PATH=$out/share $out/share/zandronum "\$@" - EOF + mkdir -p $out/share/zandronum + cp zandronum${suffix} \ + zandronum.pk3 \ + skulltag_actors.pk3 \ + ${lib.optionalString (!serverOnly) "liboutput_sdl.so"} \ + $out/share/zandronum + + # For some reason, while symlinks work for binary version, they don't for source one. + makeWrapper $out/share/zandronum/zandronum${suffix} $out/bin/zandronum${suffix} + ''; - chmod +x "$out/bin/zandronum" + postFixup = lib.optionalString (!serverOnly) '' + patchelf --set-rpath $(patchelf --print-rpath $out/share/zandronum/zandronum):$out/share/zandronum \ + $out/share/zandronum/zandronum ''; - meta = { + meta = with stdenv.lib; { homepage = http://zandronum.com/; description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software."; - maintainer = [ stdenv.lib.maintainers.lassulus ]; + maintainer = with maintainers; [ lassulus ]; + platforms = platforms.linux; + license = licenses.bsdOriginal; }; } - diff --git a/pkgs/games/zandronum/server.nix b/pkgs/games/zandronum/server.nix deleted file mode 100644 index eec2c3acc9c..00000000000 --- a/pkgs/games/zandronum/server.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ stdenv, fetchhg, cmake, openssl, sqlite, sqlite-amalgamation, SDL }: - -stdenv.mkDerivation { - name = "zandronum-server-2.1.2"; - src = fetchhg { - url = "https://bitbucket.org/Torr_Samaho/zandronum-stable"; - rev = "a3663b0061d5"; - sha256 = "0qwsnbwhcldwrirfk6hpiklmcj3a7dzh6pn36nizci6pcza07p56"; - }; - - phases = [ "unpackPhase" "configurePhase" "buildPhase" "installPhase" ]; - - buildInputs = [ cmake openssl sqlite sqlite-amalgamation SDL ]; - - preConfigure = '' - cp ${sqlite-amalgamation}/* sqlite/ - ''; - - cmakeFlags = [ - "-DSERVERONLY=ON" - ]; - - installPhase = '' - find - mkdir -p $out/bin - mkdir -p $out/share - cp zandronum-server zandronum.pk3 skulltag_actors.pk3 $out/share - - cat > $out/bin/zandronum-server << EOF - #!/bin/sh - - LD_LIBRARY_PATH=$out/share $out/share/zandronum-server "\$@" - EOF - - chmod +x "$out/bin/zandronum-server" - ''; - - meta = { - homepage = http://zandronum.com/; - description = "Server of the multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software"; - maintainer = [ stdenv.lib.maintainers.lassulus ]; - }; -} - |