This is a massive rework of the current dwarf_fortress package.
The main reason for rework is to split game, its libraries and wrappers,
enabling builds on Hydra and general maintainability.
dfhack, dwarf-fortress-unfuck, dwarf-fortress-original and dwarf-fortress
are now all separate derivations. All were updated to the latest versions
supporting DF 0.42.04 (some things taken from development branches):
dfhack: 20150927 -> 20160118
dwarf-fortress-unfuck: 0.40.24 -> 20160118
dwarf-fortress-original: 0.40.24 -> 0.42.05
dfhack got a patch for using more system libraries.
Wrapper scripts were also redone -- now they support DF_DIR variable (for
setting another data directory) and try to save more space by means of
symlinking. They now try to be more smart, updating those directories that were
not touched by user automatically.
All the new packages now reside in dwarf-fortress-packages. dwarf_fortress was
renamed into dwarf-fortress per our conventions, old name is deprecated. Also
duplicate dfhack derivation is removed.
Also drop dwarfFortress.enableDFHack config option; it can be re-added later
but now is deemed controversial.
DwarfTherapist does some ugly stuff by matching the first 8 characters
of the md5sum of the game binary to match its binary content. This patch
adds support to automatically patch the ini files.
Somehow Dwarf Fortress suddenly started failing to use our libpng (or
zlib). I tried all possible combinations (supplying them via
LD_LIBRARY_PATH in the script) but it just won't work.
This solution was found in the Archlinux bug tracker: It just symlinks
all problematic .png files to their .bmp counterparts. It's ugly and
*sadly* breaks tileset support (unless you convert them to bmp) but I
think it's acceptable, as the whole expression is pretty problematic
in terms of purity.
Let's hope the next release of Dwarf Fortress will be easier to
support.
(fixes#710)
The wrapper script works by creating an image of the distribution in the users home directory
(defaulting to $HOME/.config/df_linux). This is done because the program expects to write
state into it's own distribution.
Better ideas are welcome!
What further is needed is to allow users to configure the init. One way is to use nix-config
to apply patches to the init.txt file, though this would break sharing of the package between
different users.
svn path=/nixpkgs/trunk/; revision=24538