arena: package initial version 1.1 of the Chess GUI
This commit is contained in:
parent
cc700ad55b
commit
2c72d70970
2 changed files with 76 additions and 0 deletions
74
pkgs/games/arena/default.nix
Normal file
74
pkgs/games/arena/default.nix
Normal file
|
@ -0,0 +1,74 @@
|
|||
{ stdenv, fetchurl, gtk2-x11, glib, pango, cairo, atk, gdk_pixbuf, libX11 }:
|
||||
|
||||
# Arena is free software in the sense of "free beer" but not as in "free
|
||||
# speech". We can install it as we please, but we cannot re-distribute it in
|
||||
# any way other than the original release tarball, so we cannot include its NAR
|
||||
# into the Nixpkgs channel.
|
||||
|
||||
let
|
||||
|
||||
inherit (stdenv.lib) makeLibraryPath;
|
||||
libDir = "lib64";
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "arena-1.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://www.playwitharena.de/downloads/arenalinux_64bit_1.1.tar.gz;
|
||||
sha256 = "1sh71v5ymzwflq8ycx9j9kl0jhqllgs6z24h4h8j5z8pwdh528v6";
|
||||
};
|
||||
|
||||
# stdenv.cc.cc.lib is in that list to pick up libstdc++.so. Is there a better way?
|
||||
buildInputs = [gtk2-x11 glib pango cairo atk gdk_pixbuf libX11 stdenv.cc.cc.lib];
|
||||
|
||||
unpackPhase = ''
|
||||
# This is is a tar bomb, i.e. it extract a dozen files and directories to
|
||||
# the top-level, so we must create a sub-directory first.
|
||||
mkdir -p $out/lib/${name}
|
||||
tar -C $out/lib/${name} -xf ${src}
|
||||
|
||||
# Remove executable bits from data files. This matters for the find command
|
||||
# we'll use below to find all bundled engines.
|
||||
chmod -x $out/lib/${name}/Engines/*/*.{txt,bin,bmp}
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
# Arena has (at least) two executables plus a couple of bundled chess
|
||||
# engines that we need to patch.
|
||||
exes=( $(find $out -name '*x86_64_linux')
|
||||
$(find $out/lib/${name}/Engines -type f -perm /u+x)
|
||||
)
|
||||
for i in "''${exes[@]}"; do
|
||||
# Arminius is statically linked.
|
||||
if [[ $i =~ "Arminius_2017-01-01" ]]; then echo yo $i; continue; fi
|
||||
echo Fixing interpreter and rpath paths in $i ...
|
||||
patchelf \
|
||||
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
--set-rpath ${makeLibraryPath buildInputs}:$(cat $NIX_CC/nix-support/orig-cc)/${libDir} \
|
||||
$i
|
||||
done
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
ln -s $out/lib/${name}/Arena_x86_64_linux $out/bin/arena
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
meta = {
|
||||
synopsis = "Chess GUI for analyzing with and playing against various engines";
|
||||
description = ''
|
||||
A free Graphical User Interface (GUI) for chess. Arena assists you in
|
||||
analyzing and playing games as well as in testing chess engines. It runs
|
||||
on Linux or Windows. Arena is compatible to Winboard protocol I, II and
|
||||
UCI protocol I, II. Furthermore, compatible to Chess960, DGT electronic
|
||||
chess board & DGT clocks and much more.
|
||||
'';
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
platforms = ["x86_64-linux"];
|
||||
hydryPlatforms = stdenv.lib.platforms.none;
|
||||
};
|
||||
|
||||
}
|
|
@ -19357,6 +19357,8 @@ with pkgs;
|
|||
|
||||
armagetronad = callPackage ../games/armagetronad { };
|
||||
|
||||
arena = callPackage ../games/arena {};
|
||||
|
||||
arx-libertatis = callPackage ../games/arx-libertatis {
|
||||
stdenv = overrideCC stdenv gcc6;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue