I had a bit of free time over the last few days, and looked at the current state of the art for Doom on Linux. The awesome Rahul Sundaram has been looking after several Doom-related packages for a while – including the Chocolate Doom package – but there are some things that seem to be commonly used these days that we didn’t have packaged. So I packaged them up, and put them in a new repository!
First up I packaged Competition Doom, which is a sort of special-purpose variant of Chocolate intended for competitive speedrunning; it’s the port used for the new tables at COMPET-N. It should have no trouble getting into the official Fedora repos, and I’ve filed a review request, but until that gets approved, it’s living in this new repository.
Then I worked on Zandronum. Zandronum is a sort of continuation of Skulltag, which was a multiplayer-focused fork of ZDoom with the GZDoom OpenGL renderer subsequently added in (I think). It seems to be the most popular port for multiplayer Dooming at present.
Its source is also…ahem…something of a mess. The licensing would give a license lawyer migraines for weeks (Zandronum’s is even more of a disaster than ZDoom’s, as it pulls in even more stuff). The codebase bundles an ancient copy of the LZMA SDK and links against all sorts of private symbols in it, so there’s no possibility of using any kind of system-wide copy. It does the same thing with the DUMB music library, and compiles some subset of TiMidity++ straight into the executable. It uses the Mercurial metadata for the source to version stamp the network code, so you have to include all the metadata in your source tarball or else your build won’t connect to any servers. There’s more ickiness. If you don’t understand any of the above, the executive summary is it’s a mess.
But hey, I got an okay package build done, so it’s living in this repository. It likely won’t be able to go anywhere else, really, due to the crazy licensing (until that gets cleaned up upstream) and library bundling. It’s fine for personal use, but if you have any intent to redistribute it, do check the spec file comments and references and the license files in the package.
Along with Zandronum I packaged Doomseeker, which is a server browser with a modular design that, out of the box, can find Zandronum, Chocolate, Vavoom and Odamex servers. I hadn’t really looked into Odamex before, but now I look at it it seems quite nice, so I guess I’ll do that next.
EDIT: I’ve added Odamex packages now:
odamex for the client (and the launcher / server browser),
odamex-server for the server.
So basically, you can enable the repo (stick the repo file in
/etc/yum.repos.d) and install odamex, cndoom, zandronum and/or doomseeker, should it take your fancy. There’s a sort-of convention between source ports that they look for WADs (including IWADs) in the path exported as
$DOOMWADDIR, so you can set that, or point each port to your wads separately (they have their own config files and will print info on how to do it if you try and run them).
As always with Doom ports, you need an IWAD file to play anything. You can use the official IWADs from Doom (
doom.wad) or Doom2 (
doom2.wad) or Final Doom (also
doom2.wad, but a different one), or the F/OSS-licensed IWAD Freedoom, which is packaged as
freedoom; the package places its wad file in
/usr/share/doom, so if you use Freedoom, point the launcher and/or port to that directory. The official IWADs are still copyrighted, if you want to use them, you must own a copy (you might have an old one lying around or you can buy them on Steam, I believe; there are instructions around the internets).
To play on an online server you need a matching IWAD, I believe; Doomseeker and Odamex will download any PWADs (mods, basically) the server uses automatically when you connect.
Happy Dooming! I’ll try and keep the packages up to date, but no promises. They’re not signed yet, but I’ll try and change that and publish the key sometime.