LDMud is a game engine for text based multi-user dungeon games (MUDs),
in the "LP" heritage. In essence it is a virtual machine that allows
developers to implement MUD games ("mudlibs" in LD parlance) using the
LPC programming language.
In the project's own words:
> This is 'LDMud', a gamedriver for LPMuds. (LPC compiler, interpreter
> and runtime environment.)
>
> LDMud started as a project to clean up and modernize Amylaar's LPMud
> gamedriver. Primary goals are full documentation, a commented source
> body and out-of-the-box support for the major mudlibs, of which the
> commented source body has been pretty much completed. During the course
> of work a lot of bug fixes and improvements found their way into the
> driver - much more than originally expected, and definitely enough to
> make LDMud a driver in its own right.
For nixpkgs the new LDMud addition is largely a standard derivation for
an autoreconf/automake based project. Some small tweaks are required to
get everything lined up between the Nix environment and the LDMud build
system.
The new LDMud derivation is placed in `pkgs/games/ldmud/` alongside
other MUD-related projects in the games category (e.g. `mudlet`,
`blightmud`).
LD offers a variety of optional features, some of which require heavier
dependencies (e.g. MySQL/Postgres client libraries). To support both
a minimal default build equal to what one gets using the upstream build
with no customization, and to also support a more useful fully featured
build, the LDMud derivation is added to `all-packages.nix` twice:
1. the `ldmud` attribute builds the minimal default configuration (just
the optional gcrypt and pcre options enabled, matching upstream).
2. the `ldmud-full` attribute builds LDMud with all of the optional
features enabled (database support, Python support, TLS support,
etc).
Initial port of our GHC Nix expressions to the new hadrian build system,
as it has become required after 9.4. Unfortunately there are some
regressions affecting us, namely the inability to install a GHC
cross-compiler at the moment (see issue linked in relevant error
message). This means that a lot of specific configuration snippets for
cross-platforms and static compilation have been ported from make
speculatively, as we are unable to test them for the moment.