Chocolate-doom for "pure" vanilla experience, including all limits and bugs (a bit rough, but a very well maintained port. Beautiful clean C codebase, especially compared to some other source ports, but even compared to the original id Software LinuxDoom source).
DSDA-Doom for true vanilla gameplay (as deemed by the speedrunning community) with lots of modern accoutrements. Broadest demo playback compatibility and mod support sans ZDoom (highly recommended, my first choice for anything).
UZDoom for mods which require it (there are many good ones, despite it playing a bit differently).