makedbm(8) on Solnix vs Linux and the BSDs

On Solnix, makedbm is the illumos /usr/sbin/makedbm. It writes ndbm files (outfile.pag and outfile.dir) for NIS maps. It has extra key-splitting options (-S, -D, -E) that the OpenBSD and NetBSD pages do not list, and -u takes a file argument, as on NetBSD.

What Solnix runs

A default Solnix system runs the illumos makedbm at /usr/sbin/makedbm. No other variants are shipped. Linux has no counterpart page in the bundle, so no Linux comparison is made.

Differences

Compared withTopicWhat differs
OpenBSD, NetBSDoutput file formatSolnix makedbm writes a pair of ndbm files, outfile.pag and outfile.dir. OpenBSD describes a slightly modified ndbm format. NetBSD describes a db(3) database file. Map files are not interchangeable across these systems without checking the format.
Source: Solnix makedbm(8) DESCRIPTION, OPERANDS outfile; OpenBSD makedbm(8) DESCRIPTION; NetBSD makedbm(8) DESCRIPTION
OpenBSD, NetBSDkey splitting options -S, -D, -ESolnix has -S delimiter, -D number_of_delimiters and -E (delimiters are escaped) to control how the key is formed. The OpenBSD and NetBSD pages list none of these. Without them, the documented rule is key = text up to the first space or tab.
Source: Solnix makedbm(8) SYNOPSIS, OPTIONS -S, -D, -E; OpenBSD makedbm(8) SYNOPSIS; NetBSD makedbm(8) SYNOPSIS
OpenBSD-u argument and -USolnix -u takes a dbm file name (makedbm -u dbmfilename). On OpenBSD, -u is a plain flag in the main synopsis and the page names no file argument. OpenBSD also has -U, which tries the hash(3) format as well. Solnix has no -U.
Source: Solnix makedbm(8) SYNOPSIS, -u; OpenBSD makedbm(8) SYNOPSIS, -U, -u
NetBSD-u output formatSolnix -u prints one entry per line with a single space between key and value. NetBSD says its -u output is suitable to be passed back into makedbm. The Solnix page does not make that claim.
Source: Solnix makedbm(8) -u; NetBSD makedbm(8) -u
NetBSDcomment handling in inputSolnix makedbm does not treat # as special, so a line starting with # becomes a record. NetBSD says # is a comment character and the rest of the line is ignored, and blank lines are ignored. Solnix does not say how it handles blank lines.
Source: Solnix makedbm(8) DESCRIPTION; NetBSD makedbm(8) DESCRIPTION
OpenBSD, NetBSDline continuationSolnix continues a record onto the next line when a line ends with a backslash. The OpenBSD and NetBSD pages do not mention line continuation.
Source: Solnix makedbm(8) DESCRIPTION; OpenBSD makedbm(8) DESCRIPTION; NetBSD makedbm(8) DESCRIPTION
OpenBSD, NetBSDyp_last_modified entrySolnix adds a special key yp_last_modified, set to the date of infile or the current time when infile is the dash. The OpenBSD and NetBSD pages do not mention this entry.
Source: Solnix makedbm(8) DESCRIPTION; OpenBSD makedbm(8) DESCRIPTION; NetBSD makedbm(8) DESCRIPTION
OpenBSD, NetBSDspecial key namesOpenBSD and NetBSD name the keys in upper case (YP_DOMAIN_NAME, YP_INPUT_FILE, YP_MASTER_NAME, YP_OUTPUT_FILE). The Solnix page writes them as yp_domain_name, yp_input_file and so on. Solnix says keys with the prefix yp_ are interpreted by NIS server utilities.
Source: Solnix makedbm(8) OPTIONS -d, -i, -m, -o; OpenBSD makedbm(8) -d; NetBSD makedbm(8) -d
OpenBSD, NetBSD-m default and -b scopeOn Solnix, -m without a master name sets yp_master_name to the local host name. The BSD pages take the name as the option argument and do not describe a default. OpenBSD and NetBSD say -b only has effect on hosts.byname and hosts.byaddr; the Solnix page does not restrict it.
Source: Solnix makedbm(8) -m, -b; OpenBSD makedbm(8) -m, -b; NetBSD makedbm(8) -m, -b

Standards

  • POSIX: makedbm is not a POSIX.1-2024 utility.
  • OpenBSD: The OpenBSD page has no STANDARDS section in the bundle.
  • NetBSD: The NetBSD page has no STANDARDS section in the bundle.

Writing portable scripts

  • Use only -b, -d, -i, -l, -m, -o, -s and the infile outfile operands in portable scripts. Avoid -S, -D, -E and -U.
  • Do not assume outfile names or format. Solnix writes outfile.pag and outfile.dir; NetBSD describes a db(3) file. Generate maps on the system that will serve them.

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.