diff options
author | Andrew Morsillo <andrew@peeramid.org> | 2014-07-23 22:41:30 -0400 |
---|---|---|
committer | Andrew Morsillo <andrew@peeramid.org> | 2014-07-23 22:41:30 -0400 |
commit | 7c84e3b785c2a512af1e2c185a5d830df56876b0 (patch) | |
tree | 5ea6902f85b75aa2cfc1b320512962ff3cb21a01 /pkgs/games | |
parent | a1a2851409253c6152291791c55093f1794e6260 (diff) | |
download | nixpkgs-7c84e3b785c2a512af1e2c185a5d830df56876b0.tar nixpkgs-7c84e3b785c2a512af1e2c185a5d830df56876b0.tar.gz nixpkgs-7c84e3b785c2a512af1e2c185a5d830df56876b0.tar.bz2 nixpkgs-7c84e3b785c2a512af1e2c185a5d830df56876b0.tar.lz nixpkgs-7c84e3b785c2a512af1e2c185a5d830df56876b0.tar.xz nixpkgs-7c84e3b785c2a512af1e2c185a5d830df56876b0.tar.zst nixpkgs-7c84e3b785c2a512af1e2c185a5d830df56876b0.zip |
Add dwarf fortress 2014 (unstable) version
Diffstat (limited to 'pkgs/games')
-rw-r--r-- | pkgs/games/dwarf-fortress/df2014.nix | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/pkgs/games/dwarf-fortress/df2014.nix b/pkgs/games/dwarf-fortress/df2014.nix new file mode 100644 index 00000000000..aecdb0a44e1 --- /dev/null +++ b/pkgs/games/dwarf-fortress/df2014.nix @@ -0,0 +1,82 @@ +{ stdenv, fetchurl, SDL, SDL_image, SDL_ttf, gtk, glib, mesa, openal, glibc, libsndfile +, copyDataDirectory ? false }: + +assert stdenv.system == "i686-linux"; + +stdenv.mkDerivation rec { + name = "dwarf-fortress-0.40.04"; + + src = fetchurl { + url = "http://www.bay12games.com/dwarves/df_40_04_linux.tar.bz2"; + sha256 = "0kzkq42mpih5lsv8bv98j8ls26a8sbb1amp8bnf04k63ai99b9zx"; + }; + + phases = "unpackPhase patchPhase installPhase"; + + /* :TODO: Game options should be configurable by patching the default configuration files */ + + permission = ./df_permission; + + installPhase = '' + set -x + mkdir -p $out/bin + mkdir -p $out/share/df_linux + cp -r * $out/share/df_linux + cp $permission $out/share/df_linux/nix_permission + + patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 $out/share/df_linux/libs/Dwarf_Fortress + ln -s ${libsndfile}/lib/libsndfile.so $out/share/df_linux/libs/ + + cat > $out/bin/dwarf-fortress << EOF + #!${stdenv.shell} + export DF_DIR="\$HOME/.config/df_linux" + if [ -n "\$XDG_DATA_HOME" ] + then export DF_DIR="\$XDG_DATA_HOME/df_linux" + fi + + # Recreate a directory structure reflecting the original + # distribution in the user directory (for modding support) + ${if copyDataDirectory then '' + if [ ! -d "\$DF_DIR" ]; + then + mkdir -p \$DF_DIR + cp -r $out/share/df_linux/* \$DF_DIR/ + chmod -R u+rw \$DF_DIR/ + fi + '' else '' + # Link in the static stuff + mkdir -p \$DF_DIR + ln -sf $out/share/df_linux/libs \$DF_DIR/ + ln -sf $out/share/df_linux/raw \$DF_DIR/ + ln -sf $out/share/df_linux/df \$DF_DIR/ + + # Delete old data directory + rm -rf \$DF_DIR/data + + # Link in the static data directory + mkdir \$DF_DIR/data + for i in $out/share/df_linux/data/* + do + ln -s \$i \$DF_DIR/data/ + done + + # link in persistant data + mkdir -p \$DF_DIR/save + ln -s \$DF_DIR/save \$DF_DIR/data/ + ''} + + # now run Dwarf Fortress! + export LD_LIBRARY_PATH=\$DF_DIR/df_linux/libs/:${SDL}/lib:${SDL_image}/lib/:${SDL_ttf}/lib/:${gtk}/lib/:${glib}/lib/:${mesa}/lib/:${openal}/lib/ + \$DF_DIR/df "\$@" + EOF + + chmod +x $out/bin/dwarf-fortress + ''; + + meta = { + description = "control a dwarven outpost or an adventurer in a randomly generated, persistent world"; + homepage = http://www.bay12games.com/dwarves; + license = "unfree-redistributable"; + maintainers = [stdenv.lib.maintainers.roconnor]; + }; +} |