deroff(1) on Solnix vs Linux and the BSDs

On Solnix, deroff is the illumos deroff at /usr/bin/deroff. Its options are -m, -w and -i only. The OpenBSD and NetBSD pages also document -k and -p, and accept more -m macro-package letters (a, e, l, m, s).

What Solnix runs

A default Solnix system runs the illumos deroff at /usr/bin/deroff, published in pkgs.solnix.illumos-world-man. No other variants are shipped. The bundle contains no Linux deroff page, so nothing is claimed about Linux.

Differences

Compared withTopicWhat differs
OpenBSD, NetBSD-m macro package lettersSolnix documents -m followed by m, s or l only. OpenBSD and NetBSD also accept a (man macros) and e (me macros). The Solnix page does not say how man or me macro files are handled.
Source: Solnix deroff(1) SYNOPSIS, OPTIONS -m; OpenBSD deroff(1) -m; NetBSD deroff(1) -m
OpenBSD, NetBSD-m argument optional or requiredThe Solnix synopsis shows the -m argument as optional: [-m [m | s | l]]. OpenBSD and NetBSD synopses write -m a | e | l | m | s with no brackets around the letter, so the argument is not shown as optional.
Source: Solnix deroff(1) SYNOPSIS; OpenBSD deroff(1) SYNOPSIS; NetBSD deroff(1) SYNOPSIS
OpenBSD, NetBSD-m l meaningOn Solnix, -ml forces -mm and also deletes mm lists. On OpenBSD and NetBSD, l is listed as its own argument that removes list constructs. Neither BSD page says that l implies mm.
Source: Solnix deroff(1) OPTIONS -m; OpenBSD deroff(1) -m l; NetBSD deroff(1) -m l
OpenBSD, NetBSD-k missing on SolnixSolnix deroff has no -k. On OpenBSD and NetBSD, -k keeps blocks of text intact, and that is the default unless -m is given. A script using -k fails on Solnix.
Source: Solnix deroff(1) SYNOPSIS; OpenBSD deroff(1) -k; NetBSD deroff(1) -k
OpenBSD, NetBSD-p missing on SolnixSolnix deroff has no -p. On OpenBSD and NetBSD, -p preserves paragraph macros and only has an effect together with -m.
Source: Solnix deroff(1) SYNOPSIS; OpenBSD deroff(1) -p; NetBSD deroff(1) -p
OpenBSD, NetBSD-w word definitionSolnix counts a word as at least two letters made of letters, digits, & and ', and strips trailing ' and &. OpenBSD and NetBSD define a word as letters, digits and apostrophes beginning with a letter, with apostrophes removed. Word lists can differ.
Source: Solnix deroff(1) OPTIONS -w; OpenBSD deroff(1) -w; NetBSD deroff(1) -w
OpenBSD, NetBSDpic picturesOpenBSD and NetBSD state that deroff removes pic pictures. The Solnix page lists troff requests, macro calls, backslash constructs, eqn and tbl constructs, and does not mention pic.
Source: Solnix deroff(1) DESCRIPTION; OpenBSD deroff(1) DESCRIPTION; NetBSD deroff(1) DESCRIPTION
OpenBSD, NetBSDsame -i and known limits-i (ignore .so and .nx) and the handling of repeated includes read the same on all three. All three pages warn that deroff is not a complete troff interpreter, usually errs by printing too much, and mishandles nested lists with -ml.
Source: Solnix deroff(1) -i, NOTES; OpenBSD deroff(1) -i, BUGS; NetBSD deroff(1) -i, BUGS

Standards

  • POSIX: deroff is not a POSIX.1-2024 utility.

Writing portable scripts

  • Stick to deroff -w, -i and plain -mm, -ms or -ml with input files. Avoid -k and -p, which Solnix lacks, and -ma or -me, which the Solnix page does not document.
  • Do not compare -w word lists across systems byte for byte: the definition of a word differs between Solnix and the BSDs.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.