summary refs log tree commit diff
path: root/pkgs/games/adom/default.nix
blob: 25524528c5c892c78fc97cc9c5d270e5a0780a80 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
{ stdenv, patchelf, zlib, libmad, libpng12, libcaca, mesa, alsaLib, pulseaudio
, xlibs, plowshare }:

assert stdenv.isLinux;

let

  inherit (xlibs) libXext libX11;

  lpath = "${stdenv.cc.cc}/lib64:" + stdenv.lib.makeSearchPath "lib" [
      zlib libmad libpng12 libcaca libXext libX11 mesa alsaLib pulseaudio];

in
assert stdenv.is64bit;
stdenv.mkDerivation rec {

  name = "adom-1.2.0-noteye";

  # couldn't make fetchurl appear non-robot, even with --user-agent
  src = stdenv.mkDerivation {
    name = "adom-1.2.0-noteye.tar.gz";
    buildCommand = ''
      ${plowshare}/bin/plowdown "http://www30.zippyshare.com/v/39200582/file.html"
      F=`ls *tar.gz`
      mv $F $out
    '';
    outputHashAlgo = "sha256";
    outputHash = "1f825845d5007e676a4d1a3ccd887904b959bdddbcb9f241c42c2dac34037669";
  };

  buildCommand = ''
    . $stdenv/setup

    unpackPhase

    mkdir -pv $out
    cp -r -t $out adom/*

    chmod u+w $out/lib
    for l in $out/lib/*so* ; do
      chmod u+w $l
      ${patchelf}/bin/patchelf \
        --set-rpath "$out/lib:${lpath}" \
        $l
    done

    ${patchelf}/bin/patchelf \
      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
      --set-rpath "$out/lib:${lpath}" \
      $out/adom

    mkdir $out/bin
    cat >$out/bin/adom <<EOF
    #! ${stdenv.shell}
    (cd $out; $out/adom ; )
    EOF
    chmod +x $out/bin/adom
  '';

  meta = with stdenv.lib; {
    description = "A rogue-like game with nice graphical interface";
    homepage = http://adom.de/;
    license = licenses.unfreeRedistributable;
    maintainers = [maintainers.smironov];

    # Please, notify me (smironov) if you need the x86 version
    platforms = ["x86_64-linux"];
  };
}