Puffy mandoc — UNIX manpage compiler — base system, ports and packages

Availability of the mandoc toolset

When looking for mandoc on your system, be aware that many downstream distributions still use the historical name mdocml for mandoc.

Additional information about mandoc packaging may be available from Repology.

mandoc in the base system

The following operating systems come with bundled mandoc utilities as part of the base system. On these systems, no installation of mandoc is required, you can use it out of the box. All of these projects have helped to make mandoc better, by providing feedback and advice, bug reports, and patches.

mandoc is the default manual formatter and viewer

The following operating systems by default use the mandoc implementation of man(1) and apropos(1).

OpenBSD (default formatter since April 3, 2010; default viewer since December 14, 2014)
src/usr.bin/mandoc (1.14.5 sources under active development and build system)
Alpine Linux (testing aport July 6, 2010; main aport June 12, 2011; man(1), apropos(1), makewhatis(8) enabled since December 29, 2014)
aports/main/mdocml (1.14.3 port)
Maintainers: Natanael Copa (ncopa@) and Daniel Sabogal
Void Linux (default formatter since September 23, 2014; default viewer since March 14, 2015; a man-db package is also available)
srcpkgs/mdocml (1.14.5 base system package)
Maintainer: Leah Neukirchen
Unleashed (default formatter and viewer since February 15, 2017)
bin/mandoc (1.14.5 sources and build system)
Maintainer: Lauri Tirkkonen
Termux (default formatter and viewer since June 13, 2015)
packages/man (1.14.5 package installed by default)
Maintainer: Fredrick Fornwall (fornwall@)

mandoc is the default manual formatter and search tool

The following operating system by default uses the mandoc implementation of apropos(1), but a different implementation of man(1).

FreeBSD (default formatter since Nov 23, 2014; default search tool since May 30, 2015)
contrib/mandoc (1.14.5 sources) usr.bin/mandoc (build system)
Maintainer: Baptiste Daroussin (bapt@)

mandoc is the default manual formatter

The following operating systems by default use the mandoc utility to format manual pages for display, but use different implementations of man(1) and apropos(1).

NetBSD (default since February 7, 2012)
src/external/bsd/mdocml (1.14.5 sources and build system)
Maintainer: Christos Zoulas (christos@), formerly Joerg Sonnenberger (joerg@)
illumos (default since July 21, 2014)
src/cmd/mandoc (1.14.5 sources and build system)
Maintainers: Yuri Pankov and Garrett D'Amore

mandoc is not the default manual formatter

The following operating systems install mandoc by default, but do not use it as the default manual formatter. Both systems are very seriously outdated, with no update for about three years.

DragonFly BSD (in base since October 29, 2009)
contrib/mdocml (1.14.5 sources) lib/libmandoc usr.bin/mandoc (build system)
Maintainers: Sascha Wildner and Franco Fichtner
Minix 3 (in base since June 26, 2010)
external/bsd/mdocml (1.12.3 sources and build system)

mandoc via ports and packages

The following operating systems provide ports and packages of mandoc. To use mandoc, you do not need to build and install it manually. The easiest way probably is to install a precompiled package. In case that isn't available, you can build the package yourself, using the ports framework or an equivalent mechanism. Please refer to your operation system documentation for instructions how to install packages and/or how to use the ports system.

Official ports and packages

The following operating systems provide official ports or packages, that is, the files required to build the port or package are stored in an official repository maintained by the respective operating system project.

FreeBSD (since March 25, 2009, useful for version 9 and older)
ports/textproc/mdocml (1.14.4 port)
Maintainer: Ulrich Spoerlein (uqs@)
Debian (since July 3, 2016)
sid (unstable) package (1.14.4) — version historybuster (testing) package (1.14.4) — stretch (stable) package (1.13.3) — jessie-backports (oldstable) package (1.13.3)
Maintainers: Michael Stapelberg (stapelberg@) and Bdale Garbee (bdale@)
Ubuntu (since July 7, 2016)
mdocmlEoan Ermine (development) (1.14.4) — Disco Dingo (stable) (1.14.4) — Cosmic Cuttlefish (1.14.4) — Bionic Beaver (1.14.3)
NixOS (since September 15, 2016)
pkgs/tools/misc/mandoc (1.14.5 package)
Gentoo (since January 28, 2017)
packages/app-text/mandoc (1.14.5 port)
Maintainers: Lars Wendler (polynomial-c@), Mike Frysinger (vapier@)
Fedora (since February 7, 2019)
rpms/mandoc (1.14.4 package)
Maintainer: David Shea (dshea@)

Unofficial ports and packages

For the following operating systems, files to build a port or package are available from third parties, not from the maintainers of the operating system itself. In the past, these maintainers did a very decent job, so it should not be a problem that these ports are unofficial.

Arch Linux (since October 3, 2010)
packages/mandoc (1.14.5 port provided in the Arch User Repository)
Slackware Linux (since January 7, 2014)
slackbuilds/system/mandoc (1.14.4 SlackBuild script provided by SlackBuilds.org)
Maintainer: Daniel Levai
Crux Linux (since June 10, 2014)
mandoc (1.14.3 port provided by Svyatoslav Mishyn, no longer maintained)
openSUSE (since November 28, 2018)
mandoc (1.14.5 package)
Maintainer: Matej Cepl (mcepl@)
MacOS X (since January 13, 2015)
mandoc (1.14.5 formula provided by Homebrew)
mandoc (1.14.5 port provided by MacPorts)

The ports for the following operating systems are seriously outdated. Updating them is a pretty simple task. Consider doing that; if you don't want to, using pkgsrc (see below) or compiling from source as explained in the INSTALL file is your second best bet.

IBM AIX (since February 4, 2011)
Main/mdocml (1.12.0 package provided by Michael Perzl)
Last tested version: 1.13.4 still works on AIX 7.1 (tested by Sevan Janiyan), so updating the package is a simple task, but it wasn't done yet.

Updating the packages for Microsoft Windows is more difficult because newer mandoc requires the mmap(2) function, which is reasonable given that mmap(2) is a POSIX function. Consequently, anybody trying to port mandoc to Windows will have to implement mmap(2) for Windows first. I don't know whether simple code snippets like this one will or will not work.

Cygwin (since December 5, 2012)
mdocml (1.12.2 port)
MinGW (since October 11, 2014)
mandoc (1.13.1 port and pre-built binaries for Microsoft Windows provided by Embedeo Ltd.)

mandoc via pkgsrc

On many other operating systems, for example other Linux distributions, AIX, HP-UX, IRIX, and Solaris, you can use the pkgsrc portable package build system, see the list of supported platforms.

pkgsrc (since March 1, 2009)
textproc/mandoc (1.14.5 port)
Maintainer: Thomas Klausner (wiz@)

Other tested platforms

Building mandoc directly from the distribution tarball as described in the INSTALL file and running it has been tested on the following platforms, but a port or package is not yet available and there is no maintainer for these platforms:

Add or improve mandoc support

If you are interested in building or maintaining another port or consider integrating mandoc into the base system of another operating system, please contact us, such that we can provide help and keep you updated regarding new releases.

Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ingo Schwarze, $Date: 2019/07/01 23:11:38 $