--- old/usr/src/tools/scripts/Install.1onbld	Thu Sep 13 19:12:27 2018
+++ new/usr/src/tools/scripts/Install.1onbld	Thu Sep 13 19:12:27 2018
@@ -21,6 +21,8 @@
 .\"
 .\" CDDL HEADER END
 .\"
+.\" Copyright 2018 Joyent, Inc.
+.\"
 .TH INSTALL 1ONBLD "Jan 14, 2010"
 .SH NAME
 Install \- install a kernel from an ON workspace
@@ -285,7 +287,6 @@
 .BR Install " (``" "Install -t machine:/" "''),"
 you will need to do the following on the target machine:
 .LP
-.br
 .nf
 	(1) add your machine name to the /etc/hosts.equiv file
 .fi
--- old/usr/src/tools/scripts/Makefile	Thu Sep 13 19:12:28 2018
+++ new/usr/src/tools/scripts/Makefile	Thu Sep 13 19:12:28 2018
@@ -22,6 +22,8 @@
 # Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 # Copyright 2010, Richard Lowe
+#
+# Copyright 2018 Joyent, Inc.
 
 SHELL=/usr/bin/ksh93
 
@@ -114,9 +116,6 @@
 
 CLEANFILES = $(SHFILES) $(PERLFILES) $(PYFILES) bldenv.1onbld onu.sh
 
-onu.sh:	onu.sh.in
-	$(SED) -e "s:@PYTHON_VERSION@:$(PYTHON_VERSION):g" < onu.sh.in > $@
-
 include ../Makefile.tools
 
 ROOTONBLDSCRIPTLINKS = $(SCRIPTLINKS:%=$(ROOTONBLDBIN)/%)
@@ -133,6 +132,9 @@
 all:	$(SHFILES) $(PERLFILES) $(PERLMODULES) $(PYFILES) \
 	$(MAN1ONBLDFILES) $(MAKEFILES)
 
+onu.sh:	onu.sh.in
+	$(SED) -e "s:@PYTHON_VERSION@:$(PYTHON_VERSION):g" < onu.sh.in > $@
+
 $(ROOTONBLDBIN)/git-nits:
 	$(RM) $(ROOTONBLDBIN)/git-nits
 	$(SYMLINK) git-pbchk $(ROOTONBLDBIN)/git-nits
@@ -163,7 +165,8 @@
 	$(RM) "$@"
 	(set +o errexit ; ksh93 $? --nroff ; true) 2>&1 | \
 	sed -e 's/\.DS/.nf/g;s/\.DE/.fi/' \
-	-e 's/\.TH BLDENV 1/.TH BLDENV 1ONBLD/' \
+	-e 's/\.TH BLDENV 1/.TH BLDENV 1ONBLD "September 4, 2018"/' \
+	-e 's/.OP \([a-z]\) - flag -/.OP \\-\1/g' \
 	-e 's/(1)/(1ONBLD)/' > "$@"
 
 nightly: nightly.sh stdenv.sh
@@ -171,5 +174,10 @@
 	sed -e '/# STDENV_START/ r stdenv.sh' nightly.sh > nightly
 	$(CHMOD) +x "$@"
 
+#
+# Not run by default: bootstrap...
+check:
+	$(ROOTONBLDBINMACH)/mandoc -Tlint -Wwarning $(MAN1ONBLDFILES)
+
 include ../Makefile.targ
 
--- old/usr/src/tools/scripts/git-pbchk.1onbld	Thu Sep 13 19:12:28 2018
+++ new/usr/src/tools/scripts/git-pbchk.1onbld	Thu Sep 13 19:12:28 2018
@@ -12,85 +12,72 @@
 .\"
 .\" Copyright 2011 Richard Lowe.
 .\" Copyright 2015 Elysium Digital, L.L.C.
+.\" Copyright 2018 Joyent, Inc.
 .\"
 
-.TH "GIT\-PBCHK" "1ONBLD" "April 23, 2015" "" ""
+.TH "GIT\-PBCHK" "1ONBLD" "September 4, 2018" "" ""
 
 .SH "NAME"
 \fBgit\-pbchk\fR \- nits and pre\-putback checks for git
 
 .SH "SYNOPSIS"
-git\-pbchk [\-b \fIbranch\fR]
+git\-pbchk [\-c \fIcheck\fR] [\-p \fIbranch\fR] [file...]
 
 .P
-git\-nits [\-b \fIbranch\fR]
+git\-nits [\-c \fIcheck\fR] [\-p \fIbranch\fR] [file...]
 
+.SH "OPTIONS"
+
+.TP
+\fB\-c check\fR:
+.IP
+Run the specific \fIcheck\fR, as named below.
+In this mode, individual files can be provided to check.
+.TP
+\fB\-p branch\fR:
+.IP
+Compare the current workspace to the parent \fIbranch\fR for the purposes of generating file and comment lists\.
+.IP
+If this option is not specified an attempt is made to determine this automatically, if the git branch configuration contains this information\.
+.IP
+If no branch is specified and none can be determined automatically \fBorigin/master\fR is used\.
 .SH "DESCRIPTION"
 Check your workspace for common nits and putback\-ending mistakes, a simple set of checks are run over various parts of your workspace and errors encountered are reported, all of which should, generally, be fixed\.
-
 .TP
-Comment format
+Comment format [comchk]
 Check that putback comments follow the prescribed format (only run for pbchk)
-
 .TP
-Copyrights
+Copyrights [copyright]
 Check that each source file contains a copyright notice for the current
 year\. You don't need to fix this if you, the potential new copyright holder, chooses not to
-
 .TP
-C style
+C style [cstyle]
 Check that C source files conform to the Illumos C style rules
-
 .TP
-Header check
+Header check [hdrchk]
 Check that C header files conform to the Illumos header style rules (in addition to the general C rules)
-
 .TP
-Java style
+Java style [jstyle]
 Check that Java source files conform to the Illumos Java style rules (which differ from the traditionally recommended Java style)
-
 .TP
-SCCS Keywords
+SCCS Keywords [keywords]
 Check that no source files contain unexpanded SCCS keywords\. It is possible that this check may false positive on certain inputs\. It is generally obvious when this is the case\.
-
 .IP
 This check does not check for expanded SCCS keywords, though the common \'ident\'\-style lines should be removed regardless of whether they are expanded\.
-
 .TP
-Mapfile check
+Man page check [manlint]
+Check for problems with man pages.
+.TP
+Mapfile check [mapfilechk]
 Check that linker mapfiles contain a comment directing anyone editing to read the directions in \fBusr/lib/README\.mapfiles\fR\.
-
-.SH "OPTIONS"
-
 .TP
-\fB\-b branch\fR:
-
-.IP
-Compare the current workspace to /branch/ for the purposes of generating file and comment lists\.
-
-.IP
-If this option is not specified an attempt is made to determine this automatically, if the git branch configuration contains this information\.
-
-.IP
-If no branch is specified and none can be determined automatically \fBorigin/master\fR is used\.
-
+Whitespace check [wscheck]
+Check for whitespace issues such as mixed tabs/spaces in source files.
 .SH "FILES"
-\fBgit nits\fR and \fBgit pbchk\fR support NOT files of the form used by Cadmium with Mercurial\. These are looked for in \fB$CODEMGR_WS/\.git/\fR and in \fB$CODEMGR_WS/exception_lists/\fR as normal\. The files are named after the check from which they exclude files\.
+Exception lists can be used to exclude certain files from checking, named after
+the specific check.
+They can be found in \fB$CODEMGR_WS/exception_lists/\fR, or optionally under
+\fB$CODEMGR_WS/\.git/\fR, where they must be suffixed \fB.NOT\fR.
 
-.IP "\(bu" 4
-\fBcopyright\.NOT\fR: exclude files listed from copyright checking
-
-.IP "\(bu" 4
-\fBcstyle\.NOT\fR: exclude files from the C style check
-
-.IP "\(bu" 4
-\fBhdrchk\.NOT\fR: exclude files from the C header style check
-
-.IP "\(bu" 4
-\fBkeywords\.NOT\fR: exclude files from the SCCS keywords check
-
-.IP "\(bu" 4
-\fBmapfilechk\.NOT\fR: exclude files from the linker mapfile check
-
 .IP "" 0
 
--- old/usr/src/tools/scripts/git-pbchk.py	Thu Sep 13 19:12:29 2018
+++ new/usr/src/tools/scripts/git-pbchk.py	Thu Sep 13 19:12:29 2018
@@ -18,9 +18,9 @@
 # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 # Copyright 2008, 2012 Richard Lowe
 # Copyright 2014 Garrett D'Amore <garrett@damore.org>
-# Copyright (c) 2014, Joyent, Inc.
 # Copyright (c) 2015, 2016 by Delphix. All rights reserved.
 # Copyright 2016 Nexenta Systems, Inc.
+# Copyright 2018 Joyent, Inc.
 #
 
 import getopt
@@ -371,30 +371,43 @@
 
 def main(cmd, args):
     parent_branch = None
+    checkname = None
 
     try:
-        opts, args = getopt.getopt(args, 'b:')
+        opts, args = getopt.getopt(args, 'c:p:')
     except getopt.GetoptError, e:
         sys.stderr.write(str(e) + '\n')
-        sys.stderr.write("Usage: %s [-b branch] [path...]\n" % cmd)
+        sys.stderr.write("Usage: %s [-c check] [-p branch] [path...]\n" % cmd)
         sys.exit(1)
 
     for opt, arg in opts:
+        # backwards compatibility
         if opt == '-b':
             parent_branch = arg
+        elif opt == '-c':
+            checkname = arg
+        elif opt == '-p':
+            parent_branch = arg
 
     if not parent_branch:
         parent_branch = git_parent_branch(git_branch())
 
-    func = nits
-    if cmd == 'git-pbchk':
-        func = pbchk
+    if checkname is None:
+        if cmd == 'git-pbchk':
+            checkname= 'pbchk'
+        else:
+            checkname = 'nits'
+
+    if checkname == 'pbchk':
         if args:
             sys.stderr.write("only complete workspaces may be pbchk'd\n");
             sys.exit(1)
+        pbchk(git_root(), parent_branch, None)
+    elif checkname == 'nits':
+        nits(git_root(), parent_branch, args)
+    else:
+        run_checks(git_root(), parent_branch, [eval(checkname)], args)
 
-    func(git_root(), parent_branch, args)
-
 if __name__ == '__main__':
     try:
         main(os.path.basename(sys.argv[0]), sys.argv[1:])
