Home | History | Annotate | only in /src/usr.sbin/postinstall
History log of /src/usr.sbin/postinstall
RevisionDateAuthorComments
 1.3 14-Jun-2019  christos make the script MI again (same across all archs)
 1.2 14-Jun-2019  christos build dynamically the list of compat archsubdirs.
 1.1 17-Apr-2005  lukem branches: 1.1.2; 1.1.86;
Move /etc/postinstall (and the etc.tgz set) to /usr/sbin/postinstall
(and the base.tgz set).
 1.1.86.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.1.2.2 20-Apr-2005  tron Pull up revision 1.1 (requested by lukem in ticket #164):
Move /etc/postinstall (and the etc.tgz set) to /usr/sbin/postinstall
(and the base.tgz set).
 1.1.2.1 17-Apr-2005  tron file Makefile was added on branch netbsd-3 on 2005-04-20 11:20:13 +0000
 1.233 14-Jun-2019  christos build dynamically the list of compat archsubdirs.
 1.232 13-Jun-2019  christos remove obsolete library files for all the "compat" subdirs not just amd64
and sparc64.
 1.231 13-Jun-2019  christos Anchor the egrep search to avoid npf.conf matching pf.conf, but don't
anchor $ so that blacklistd machines blackist.
 1.230 13-Jun-2019  christos 1. fix /etc/defaults/*.conf files
a. there are more rc.conf.append arch than only for x86, deal with them too.
b. populate new /etc/defaults/rc.conf files
2. merge sed patterns
3. deal with empty exclude lists
 1.229 13-Jun-2019  christos handle $SOURCEMODE
 1.228 12-Jun-2019  christos Add missing npf.boot.conf
 1.227 12-Jun-2019  christos Remove hard-coded lists of rc files and generate them dynamically from the
sets. Fixes issues with automount, npf_boot etc. that were never updated here!
 1.226 11-May-2019  maxv Add smtoff, an rc.d script that disables Simultaneous Multi-Threading. It
parses the output of cpuctl, and executes "cpuctl offline" for each CPU
that has SmtID!=0.

The default is "smtoff=NO", which means that SMT remains enabled.
 1.225 11-Apr-2019  martin Do not test contents of non-existing Xresource file (if X11 sets have
not been installed)
 1.224 09-Mar-2019  mrg remove 30-urw-aliases.conf and add 45-generic.conf and 60-generic.conf.

should fix build issues reported on current-users.
 1.223 08-Mar-2019  martin XDM Xresources has been extended and the new values are important for proper
working of newer XDM. Check for the missing values and ask the user to
fix manually.
 1.222 31-Jan-2019  msaitoh Stop continuing /var/shm check when var_shm_symlink is in /etc/rc.conf.
OK'd by martin.
 1.221 04-Dec-2018  plunky rc.d/isdnd is obsolete
 1.220 06-Nov-2018  plunky add rc.d/dhcpd6
 1.219 26-Oct-2018  martin Add support for MAKEDEV living in /etc instead of /dev, this is one of
the supported options when init(8) creates a union mounted tmpfs on /dev.
 1.218 23-Sep-2018  maxv Remove the userland part of ISDN. The kernel part is untouched for now.
ipppctl was actually an exact copy of pppoectl; there is no functional
change in pppoectl in this commit.
 1.217 02-Jul-2018  roy Remove dhclient references.
 1.216 10-Jul-2017  simonb branches: 1.216.4; 1.216.6;
Add npfd to the list of rc.d scripts to check.
 1.215 16-Jun-2017  christos add missing pam items (cron, racoon)
 1.214 17-Apr-2017  martin branches: 1.214.4;
If -x (xsrc location) is passed for "check", display it also in the
"how to fix" invocation instructions.
 1.213 01-Apr-2017  roy Move dhcpcd lease files to new location.
 1.212 01-Apr-2017  roy Move dhcpcd's rdm monotonic file if it exists.
 1.211 01-Apr-2017  roy Pluck dhcpcd.conf from dist/src
Move dhcpcd.duid and dhcpcd.secret from /etc to /var/db/dhcpcd/{duid,secret}
 1.210 11-Feb-2017  uwe Don't use slow file_exists_exact if we don't have to.

file_exists_exact function was introduced in 1.26 for the benefit of
cross-building on OS X case-insensitive file system. It is extremely
slow on diskless machines. That becomes especially noticeable when
you upgrade a system that has a lot of obsolete files, it can take
literally hours.
 1.209 09-Jan-2017  christos branches: 1.209.2;
don't try to install rc scripts for programs not installed
 1.208 07-Jan-2017  christos add nsd
 1.207 03-Jan-2017  jnemeth add rtsold to rc_obsolete_files :-(
 1.206 19-Oct-2016  christos rename populate_rc to update_rc and copy if source is newer.
 1.205 02-Sep-2016  kre PR toolchain/51457 -- be more posix compat with sort usage, though it
(currently anyway) makes no difference on NetBSD.
 1.204 02-Sep-2016  kre PR toolchain/51457 -- use sort correctly
 1.203 20-Aug-2016  christos unbound additions
 1.202 30-Jan-2016  christos branches: 1.202.2;
Add ip6addrctl
 1.201 24-Aug-2015  christos handle blacklistd properly.
 1.200 21-Aug-2015  jnemeth PR/50158 - Simon Burge -- postinstall does not know about blacklistd
 1.199 15-Aug-2015  uebayasi Whitespace.
 1.198 11-Jul-2015  dholland Comma of result is (though increasingly common) not formally recognized
grammar[,;] use a semicolon.
 1.197 08-Jul-2015  jnemeth Check for an out of date /etc/fonts/fonts.conf and if so, forcibly
update it (it is not intended to be user editable). This is
primarily intended so that pkgsrc fonts installed in the new location
can be found.
 1.196 02-Jul-2015  martin PR install/50020: postinstall does not check for mandoc in /etc/man.conf.
Add a check, but ask the user to fix manually (the file could have local
modifications).
 1.195 02-Jul-2015  martin Simplify previous, pass awk as TOOL_AWK (that is what the makefile uses),
create an obj dir for make and force it to use that.
This version now works with read-only source again.
 1.194 01-Jul-2015  martin Clean up the src/etc/mtree directory after using it to generate the mtree
spec file.
XXX this is fishy, we should find a better way.
 1.193 28-Jun-2015  martin Pass AWK to make when invoking emit_dist_file.
Part of fixing PR toolchain/50004.
 1.192 27-Jun-2015  martin Terminate the obsole directory walking loop when we hit "/" or "."
(both relative to DESTDIR), I have seen it run into an endless loop with
_path=. when invoked from the top level make with some (valid) args.
 1.191 31-Mar-2015  martin Add resize_root
 1.190 21-Mar-2015  jmcneill Process /etc/modules.conf (if present) at startup, before securelevel is
raised, to allow module loading on ports without a module aware bootloader.
 1.189 21-Feb-2015  joerg Add rc script for /sbin/iscsid.
 1.188 30-Dec-2014  apb rc_obsolete_vars is a list of pairs, so format it with one pair per line.
 1.187 16-Dec-2014  jnemeth add powerpc variants to the list of potentially obsolete modules to check
 1.186 13-Dec-2014  uebayasi Fix previous; obsolete vars are pairs.
 1.185 13-Dec-2014  uebayasi postinstall(8): Define long item lists as variables to improve future diff-ability.
 1.184 01-Dec-2014  uebayasi Handle obsolete xen/pae-xen kernel modules; reported by John D. Baker.
 1.183 12-Nov-2014  apb Fix tab/space inconsistency in comment.
 1.182 12-Nov-2014  apb Change the order of arguments to check_ids, placing the two file names
adjacent to each other. Also add a comment explaining the "start"
argument and the "SKIP" special value.
 1.181 11-Nov-2014  martin Make check_ids take an additional argument (the corresponding source
file) and grep that on error for the missing information, so the user
gets all the info needed how to "FIX MANUALLY".
 1.180 11-Sep-2014  roy Remove rtsol(8) and rtsold(8) as their functionality is in dhcpcd(8).
Remove rtsol(8) from rc.d/network.
Add -w seconds command to ifconfig to wait for N seconds for until DAD
has finished on all addresses.
Use ifconfig -w in rc.d/network instead of a forced sleep.

As discussed on tech-net@
 1.179 12-Aug-2014  apb In get_makevar, ask make to recursively expand the variable,
not just print the unexpanded value. This is done by
using make -V '${VAR}' instead of make -V 'VAR'.
 1.178 12-Aug-2014  apb Quoting fixes in several eval commands.
 1.177 12-Aug-2014  apb Check for and delete ${DEST_DIR}/@RUNDIR@, not /@RUNDIR@.
Also remove an unnecessary eval in do_dhcpcdrundir and
fix a typo in the description.
 1.176 11-Aug-2014  roy FONTCONFIG_DIR not existing does not need to be fixed.
 1.175 04-Aug-2014  apb branches: 1.175.2;
Synchronise several shell_quote implementations, and:
* Elide some unnecessary pairs of quotation marks, to improve readability.
For example, shell_quote "''" is now \'\' instead of ''\'''\'''.
* Don't add quotes around words that contain only safe characters,
to improve readability.
* LC_COLLATE=C to prevent [a-zA-Z] from matching non-ASCII characters.
* Use ${SED} if defined.
 1.174 16-Jun-2014  apb Use extra="${2-/,}" to use $2 if defined, else default to "/,".
 1.173 16-Jun-2014  apb Delete trailing slash with "${1%/}", not "${1#/}".
 1.172 16-Jun-2014  apb Add a new obsolete_stand target, disabled by default,
to delete old files and subdirectories under /stand/${MACHINE}.
 1.171 16-Jun-2014  apb Remove stray quotation mark
 1.170 16-Jun-2014  apb In do_sendmail, use unprefix to fix up paths that will be
processed by obsolete_paths.
 1.169 16-Jun-2014  apb Clarify wording in a comment for obsolete_paths.
 1.168 16-Jun-2014  apb Add bre_quote (copied from etcupdate), and unprefix functions.
 1.167 16-Jun-2014  apb Add SORT and SED variables, in case a host environment needs them.
 1.166 25-Apr-2014  mrg don't apply "ptyfsoldnodes" if /dev/pts does not exist, even if ptyfs
is listed in /etc/fstab. without this, postinstall happily removes
all your ptys leaving you with none at all. return an error if we
have ptyfs in /etc/fstab, but no /dev/pts.
 1.165 08-Mar-2014  martin branches: 1.165.2;
Fix wrong variable name, PR bin/48647 from Jim Bernard.
 1.164 15-Feb-2014  jmmv Fix path to atf-run.hooks after import of atf-0.19.

Problem found by martin@. Not spotted by me, I think, because I always use
postinstall on an etc.tgz file and forgot about this code path.
 1.163 29-Jan-2014  skrll Remove harmful whitespace. Now the /var/shm check can succeed quietly.
 1.162 17-Jan-2014  martin Add a check to remove the temporarily (eroneously) created /@RUNDIR@
(PR bin/48529)
 1.161 17-Dec-2013  njoly Skip varshm check if there is no fstab (like in chroots).
 1.160 13-Dec-2013  martin Cosmetics: use "msg" instead of "echo"
 1.159 05-Dec-2013  martin Add a "varshm" check/fix to make sure /var/shm is mentioned in /etc/fstab
(and add a default of tmpfs with 25% of available ram limit if not).
To avoid the warning but not mount the tmpfs, just comment out the line
for /var/shm.

Also move "obsolete" to the end of the list again, as it should be run
last.
 1.158 09-Sep-2013  prlw1 Add pkgpath.conf to /etc/defaults check.
 1.157 14-Jul-2013  htodd And add a skip for the deleted _gpio in uid.
 1.156 14-Jul-2013  htodd Add _rtadvd to uid check as well.
 1.155 14-Jul-2013  htodd Adding _rtadvd to group check.
 1.154 17-Jun-2013  christos don't echo the make command in the output file.
 1.153 15-Jun-2013  christos - missing semicolon
- missing SKIPS
- assignment instead of comparison
 1.152 11-Jun-2013  christos more thorough passwd/group checks.
 1.151 10-Jun-2013  mrg implement SOURCEMODE version of "fontconfig".
 1.150 06-Jun-2013  mrg update do_fontconfig() to update all the conf.avail files. fixes
errors that xkbcomp spews when the X server starts since fontconfig
was updated.
 1.149 21-May-2013  prlw1 add _gpio to gid check
 1.148 16-May-2013  yamt try to sync lists of rc.d scripts
 1.147 22-Sep-2012  ast Make sure that the "to fix, run: ..." instructions actually work cut-and-paste
By default postinstall has mode 644 so /bin/sh or similar needs to be prepended
 1.146 15-Aug-2012  apb branches: 1.146.2;
Remove the ability to specify multiple colon-separated fiel names with
a single "-s" option. Multiple "-s" options must now be used instead.
We have been printing a warning about this since 2008-09-14.
 1.145 15-Aug-2012  apb Don't rely on stat(1) with format "%SHr" to print the correct names.
That uses devname(3) internally, which doesn't work at all in a cross
build environment, and doesn't do what I thought even in a native
environment.

Instead, parse the device major numbers for the pty master and slave
devices from the output of "MAKEDEV -s pty0" and check those against the
actual device node that we are thinking of removing.
 1.144 14-Aug-2012  apb Change do_ptyfsoldnodes to use stat(1) to check whether a file is
a device node of the correct type. We no longer need to get the
major number from searching the MAKEDEV script, because the output
from stat(1) will contain the strings "tty" or "pty" instead of
the numeric major numbers. We also no longer rely on "find -ls".
 1.143 14-Aug-2012  apb Use grep -E and grep -F instead of egrep and fgrep. This reduces the
number of tools that may need to be passed in the environment.
 1.142 14-Aug-2012  apb Remove the "stat" shell function (stat op format target value).
It has been unused since revision 1.14 dated 2006-05-30.
 1.141 13-Aug-2012  martin Cleanup temporary file
 1.140 13-Aug-2012  martin Make "fix ptyfsoldnodes" more verbose
 1.139 13-Aug-2012  martin Add a ptyfsoldnodes item that checks/removes old /dev/{p,t}ty* nodes
if ptyfs is used.
 1.138 28-Jun-2012  kefren add ldpd rc.d script here too
 1.137 01-Jun-2012  jnemeth add _tss to uid and gid checks
 1.136 29-Feb-2012  jmmv Properly find atf configuration files in the source tree. My previous
change dealt properly with etc.tgz only. Addresses PR bin/45870.
 1.135 27-Feb-2012  jmmv Populate /etc/atf with any missing files. Fixes PR bin/45870.
 1.134 22-Feb-2012  apb quote SRC_DIR and DEST_DIR everywhere. Also wrap some long lines.
 1.133 22-Feb-2012  apb Fix a call to pwd_mkdb in the case that DEST_DIR is the empty string.
 1.132 21-Feb-2012  nakayama Pass -d option to pwd_mkdb(8) in order to make databases at proper location.
 1.131 18-Feb-2012  njoly Use msg for indentation.
 1.130 17-Feb-2012  apb Add "pwd_mkdb" item, which checks whether /etc/pwd.db is in the
new format, and runs "pwd_mkdb -V 1 /etc/master.passwd" to fix it.
 1.129 15-Feb-2012  joerg branches: 1.129.2;
Clean up cat pages that are older than the corresponding man pages.
Remove cat page directories that are empty.
 1.128 17-Dec-2011  tsutsui Add an rc.d(8) script for isibootd(8). Taken from ndbootd(8).
 1.127 26-Nov-2011  tls Make the rndsave structure public -- the kernel will learn to read it
and sysinst may learn to write it (since, on some systems, most of
the keyboard input they ever get happens to be during install). Fix a
couple of minor problems with the random_seed rc script addition.
 1.126 07-Oct-2011  mrg branches: 1.126.2;
fix the sendmail, mailerconf and atf checks to use ${DEST_DIR}.
add a note about this to the top of the file.
 1.125 06-Sep-2011  jym /etc/defaults/rc.conf can be modified at build time by getting additional
arch-specific hooks appended to its end (currently: i386 and amd64).

Handle this case in postinstall(8) by checking whether we are in
$SOURCEMODE or not, and generate the correct rc.conf file on the fly in
case we have to. Otherwise, postinstall(8) may install the default one
obtained from a source directory that does not have the MD hooks
appended to it.

Problem reported by wiz@. Thanks!
 1.124 06-Sep-2011  jym Set $SRC_DIR to its default value at the beginning of main() so that
usage() can print the correct value even when called early.
 1.123 06-Sep-2011  jym Check that $TGZMODE is true to deduce that the set is extracted
from a .tgz instead of checking that $SRC_DIR != $SRC_ARG. These variables
can be modified in different places, so it's less error prone.
 1.122 09-Aug-2011  jmmv Check (and fix) that unprivileged-user has been changed from _atf to _tests
in /etc/atf/common.conf. Requested by martin@.
 1.121 05-Aug-2011  jmmv Rename the _atf user to _tests. The _atf name will get obsoleted if/when
we migrate to Kyua (atf v2), so it's better to use a generic name that does
not depend on the specific implementation. Also, this user has not gone
out yet into any stable release, so we can easily rename it.

Suggested by jruoho@.
 1.120 14-Jul-2011  plunky rcconf_is_set takes a tuple of <script> <variable>, so add
in a couple of missing script names

network ip6forwarding
sysctl defcorename

and remove the trailing "sysctl"
 1.119 14-Jul-2011  plunky introduce rcvar_is_enabled to test if a rcvar is enabled

use this instead of rcconf_is_set to warn about superseded
rc.d scripts, to silence spurious warnings produced before
/etc/defaults/rc.conf script was updated.

(spurious warnings noted by Martin Husemann)
 1.118 27-May-2011  plunky provide a new 'bluetooth' rc.d script, to handle Bluetooth configuration
in a simpler manner. This replaces btattach, btconfig, bthcid, btdevctl
and sdpd scripts, and also should not require any configuration settings
other than "bluetooth=YES", though the full range of configurations is
still possible.
 1.117 17-Apr-2011  martin Invert the chroot/tcpdump/etc test and make it remove the (not needed
anymore) directory.
 1.116 11-Apr-2011  martin Add a new check to populate /var/chroot/tcpdump/etc
 1.115 12-Mar-2011  erh Fix the usage of the -s option to mention using it multiple times, rather
than the deprecated colon separated syntax.
 1.114 13-Feb-2011  tron Install "etc/gpio.conf" if it is missing.
 1.113 13-Feb-2011  tron Add "npf" to the list of startup scripts that get checked.
 1.112 17-Dec-2010  njoly branches: 1.112.2;
Add _tcpdump uid/gid checks.
 1.111 30-Nov-2010  njoly Adjust obsolete_libs to handle both the libraries (unchanged) and the
corresponding .debug files if exists.
 1.110 21-Nov-2010  christos - don't bitch if /usr/X11R6/lib/X11 does not exist, if /usr/X11R6 does not
exist either. We might have never installed X11R6 on this system.
- spell nonexistent
 1.109 08-Nov-2010  njoly Add _atf to uid/gid checks.
 1.108 23-Apr-2010  dyoung Do not try in postinstall(8) to replicate the code in etc/mtree/Makefile
that assembles /etc/mtree/NetBSD.dist. Instead, use the Makefile's
new target, emit_dist_file, to assemble the correct NetBSD.dist.

Previously, 'postinstall -m amd64 -s $SRC_TOP' would install a
NetBSD.dist that was missing /usr/lib/i386/ et cetera.
 1.107 24-Dec-2009  christos running postinstall fix should also say why fontconfig did not work, like
all other postinstall methods.
 1.106 13-Oct-2009  apb /usr/X11R7/lib/X11/xkb/symbols/pc used to be a directory, but changed
to a file on 2009-06-12. Fixing this requires removing the directory
(which we can do) and re-extracting the xbase set (which we can't do),
or at least adding that one file (which we may be able to do if X11SRCDIR
is available).

Reviewed by mrg, snj
 1.105 29-Sep-2009  tsarna Multicast DNS ("Bonjour") support, based on Apple's mDNSResponder.
 1.104 21-Sep-2009  njoly Make do_mtree correctly report failure if either special or
NetBSD.dist checks failed, not only the last one.
 1.103 07-Sep-2009  mrg install the fontconfig files into /etc/fonts/conf.avail, and symlink
the default ones into /etc/fonts/conf.d, as per default.

reported by jukka marin on netbsd-users.
 1.102 07-Sep-2009  mrg - do not create X11 subdirs always anymore

- we now only create them when building X11, and only create the ones
we need (X11R6 xor X11R7)

- all these subdirs are now in the xbase set

- move the logic for running mtree into etc/mtree/Makefile

- split NetBSD.dist into 3 files, and have the build and postinstall handle
creating a possibly merged one. we still have a single installed file
called "NetBSD.dist".
 1.101 06-Aug-2009  mbalmer Add gpio to rc checks.

Diff from Geoff Wing <gcw@pobox.com>, thanks.
 1.100 20-Jul-2009  christos moduli moved with openssh
 1.99 23-Jun-2009  tron Switch to building Postfix 2.6.2 via "external/ibm-public/postfix".
 1.98 22-May-2009  pgoyette Make the makedev step fail if either MAKEDEV or MAKEDEV.local need to
be updated. Patch from njoly@
 1.97 13-May-2009  jnemeth fetch /etc/dhcpcd.conf from the correct place when building the system
 1.96 12-May-2009  jnemeth install /etc/rc.d/dhcpcd as well
 1.95 12-May-2009  jnemeth install /etc/dhcpcd.conf
 1.94 21-Apr-2009  joerg Split fsck during boot into two phases. Check the root file system
first, mount root and run the various disk providers. Add swap and
check the remaining file systems after that.
This breaks the dependency cycle for lvm, which needs writeable /dev.
Depend on rndctl in cgd.
 1.93 06-Apr-2009  martin Now that we use ?= to optionally assing to ddb.onpanic, match that when
testint existing configurations too.
 1.92 01-Apr-2009  martin Make the ddb.onpanic line acceptable even if commented out
 1.91 11-Mar-2009  martin Switch the default value (if no options DDB_ONPANIC is defined) for
ddb.onpanic to 1, change it back to 0 in sysctl.conf and make sure
postinstall installs this setting.
This avoids us trying to dump while booting from install CD, but keeps
the default the same once we are far enough through /etc/rc.d. Failing
earlier is unlikely to be recovered by an automatic reboot.
OK: core.
 1.90 26-Feb-2009  apb As long as we don't yet have a working TOOL_GREP,
fgrep is more portable than grep -F.
 1.89 26-Feb-2009  apb In file_exists_exact(), fix an incorrect test of "1" instead of "$1",
and improve the comment explaining what this function does.
 1.88 26-Feb-2009  apb "grep -q" is not portable; use "grep >/dev/null" instead. Also add a
comment saying that postinstal is invoked during a cross build.
 1.87 25-Feb-2009  sketch Use awk and grep host tools where required. 'build.sh release' now works
on Solaris (but only with HOST_CC=/usr/sfw/bin/gcc for now).
 1.86 25-Feb-2009  dyoung Look for MAKEDEV.local in both ${SRC_DIR}/dev/ and ${SRC_DIR}/etc/,
so that 'postinstall check makedev' works whether the sources told
by the -s argument are a NetBSD source tree, etc.tgz, or a DESTDIR.
 1.85 22-Feb-2009  yamt do_makedev: look at a correct directory for MAKEDEV.local
 1.84 26-Jan-2009  jklos branches: 1.84.2;
Added MAKEDEV.local to postinstall's makedev check. Upgraded systems were
not getting an updated MAKEDEV.local file.
 1.83 16-Jan-2009  haad Add lvm script to the lists.
 1.82 08-Jan-2009  lukem Add rndctl to do_rc().
Thanks to Geoff Wing on current-users.
 1.81 20-Dec-2008  isaki x68k pow(4) now uses MI sysmon_pswitch framework. suggested by tsutsui@.
- Make MD poffd(8) retire, and use MI powerd(8) instead of it.
- Make /dev/pow1 retire, because nobody holds /dev/pow0 any longer.
Use /dev/pow0 for pow(4) ioctl.
- POWIOCSSIGNAL ioctl which is for poffd(8) is also obsoleted.
 1.80 11-Dec-2008  mishka Import rc.d/httpd script for httpd(8) daemon control.
See rc.conf(5) for options explanation.
 1.79 05-Dec-2008  cube - Introduce a function get_makevar that will retrieve the values of a
specific set of user-derived variables, to be used in SOURCEMODE.
- In SOURCEMODE, generate the rc.d scripts xdm and xfs.
- Auto-detect if X11 sets are used (either through the value of MKX11 in
SOURCEMODE, or by finding an xetc-xpecific file in sets mode).
- Ignore X11-specific rc.d scripts if X11 is not used.
 1.78 24-Nov-2008  nakayama Add scan obsolete minor shared libraries in /usr/X11R7/lib.
Also scan in /usr/lib/i386 for amd64, /usr/lib/sparc for sparc64.
 1.77 18-Nov-2008  chris lkm1, lkm2 and lkm3 are now obsolete and don't exist in the source tree,
so remove the references to them from postinstall.
 1.76 29-Oct-2008  snj branches: 1.76.2;
s/explicitely/explicitly/
 1.75 17-Oct-2008  cube apb's latest change introduced a test to make sure an actual etc.tgz (or an
extraction of it) was provided as -s, but SOURCEMODE was not set to true in
the default case, which is to use /usr/src/etc, a source directory.
 1.74 17-Oct-2008  christos revert previous; now 'postinstall fix' does not work anymore without having
sets.
 1.73 17-Oct-2008  christos use an existing file otherwise the test always fails.
 1.72 17-Oct-2008  christos I don't have set.etc!?!? Do you?
 1.71 04-Oct-2008  apb In both postinstall and etcupdate, in modes where the -s argument
refers to tgz files or to a directory in which tgz files have already
been extracted, make it an error for the files that should have come
from etc.tgz to be missing. This is intended to prevent users from
accidentally deleting necessary files when they run "postinstall -s
xetc.tgz fix".

Use the absence of .../etc/mtree/set.etc in the extracted directory
as a test for the error case.
 1.70 21-Sep-2008  junyoung Fix 'arith: syntax error: " N_SRC_ARGS + 1 "' error which occurs with
the Debian default shell ("dash").

Now cross-build works again on Ubuntu 7.10.
 1.69 14-Sep-2008  apb Fix errors in previous.
 1.68 14-Sep-2008  apb Allow "-s tgzfile1:tgzfile2" for backward compatibility. Print a
warning to encourage users to switch to using "-s tgzfile1 -s tgzfile2".
 1.67 07-Sep-2008  apb * Allow colons to appear in the names of tgz files, to address PR 39459.
* Remove the ability to specify a colon-separated list of tgz files
using a single "-s" option, because ":" is now a valid character within the
name of a single file. Callers should use multiple "-s" options
instead.
 1.66 07-Sep-2008  apb Cleanup shell quoting:

* Almost all shell variables are now quoted, except where they
hold numeric values such as exit status, or where we want
the shell to split on spaces.

* Constructs like

_files="$@"
do_something_with $files

are changed to

#_files="$@"
do_something_with "$@"

* In contexts where we do actually want the args to be concatenated with
space separators, use "$*", not "$@".

Tested by running "postinstall check" with a SCRATCHDIR whose name
contained spaces.
 1.65 23-Jul-2008  matt Make sure to update root.cache too.
 1.64 13-Jul-2008  dholland Correct improper escaping of regular expressions in string constants in
awk code. Noted by Aleksey Cheusov in tech-userlevel.
 1.63 20-Jun-2008  peter Install /etc/pf.os with 444 permissions.
Modify postinstall(8) to always upgrade /etc/pf.os.

Suggested by Luke Mewburn in PR/35188.
 1.62 18-Jun-2008  yamt merge yamt-pf42 branch.
(import newer pf from OpenBSD 4.2)

ok'ed by peter@. requested by core@
 1.61 03-May-2008  apb branches: 1.61.2;
Try to make it clear that local changes will be overwritten
by "postinstall fix".
 1.60 30-Apr-2008  martin Convert TNF licenses to new 2 clause variant
 1.59 15-Apr-2008  plunky branches: 1.59.2;
some changes to serial bluetooth host controller interfaces

btuartd(8) should be named btattach(8) for consistency
with other parts of NetBSD

make btattach(8) a single-use tool for less complexity

device specicific initialisation (from btuart(4)) is carried
out prior to activating the line discipline (in btattach(8)),
which simplifies the API somewhat and means that the user
tool and the kernel do not need to be kept in sync.

btuart(4) driver is much reduced; naming is made consistent
and all tsleep() and delay() are removed to userland
 1.58 13-Feb-2008  tron Avoid error message in "obsolete" check if "/usr/X11R6/lib" doesn't exist.
 1.57 13-Feb-2008  tron Don't fail the X11 check if "/usr/X11R6/lib" doesn't exist. This is
perfectly valid setup (e.g. no X11 or modular X11 from "pkgsrc").
 1.56 15-Dec-2007  jmmv Update URLs after website reorganization in the motd check; per pavel@'s
request. Closes PR misc/37070.
 1.55 21-Nov-2007  jnemeth PR/35238 - tls@ -- add _proxy to uid and gid checks
 1.54 26-Oct-2007  pavel now when trap 0 is not used, we need to remove the temporary directiry
at the end. PR bin/37223.
 1.53 16-Oct-2007  tls Add httpd to the build. Add _httpd to passwd and groups and postinstall.
Add /var/www to mtree, add example line to inetd.conf.
 1.52 05-Oct-2007  pavel Add a check for obsolete sendmail in /etc/mailer.conf, installs a
fresh copy of the file if invoked as "fix". Not enabled by default.
 1.51 05-Oct-2007  pavel Return exit status 1 for failed chacks/fixes, 2 for errors. Suggested
by hubertf. Use exit status 3 for internal errors (misuse of internal
functions).
 1.50 05-Oct-2007  pavel do not use trap 0, it clobbers the exit status. Instead remove the
scratch directory in err(). Use err() instead of exit in one place to
ensure that the temporary directory is removed.
 1.49 29-Jul-2007  plunky branches: 1.49.4; 1.49.6;
add mention of rc.d/btuartd
 1.48 15-Jul-2007  xtraeme Extend do_envsys() and check if the sensor_* files in /etc/powerd/scripts
are installed.
 1.47 15-Jul-2007  xtraeme Do not install fixsb anymore, which was removed recently.
 1.46 15-Jul-2007  jnemeth fix error message for obsolete_libs
 1.45 14-Jul-2007  ad fixsb has done its job.
 1.44 12-Jul-2007  xtraeme Add do_envsys() that checks if /etc/envsys.conf exists.
 1.43 01-Jul-2007  xtraeme Update for /etc/rc.d/envsys.
 1.42 08-Jun-2007  pavel Remove the remaining sendmail config files (including everything in
/usr/share/sendmail) from the obsolete list. Instead, remove them in the
"sendmail" postinstall item, which is disabled by default, to prevent
losing sendmail configuration on upgrade. Fixes the rest of
PR install/36180.
 1.41 02-Jun-2007  pavel Separate postinstall checks in two groups: enabled and disabled by
default. Only the former checks/fixes are done if no items are given
on the command line. The latter must be requested explicitely.

Intended for "fixes" that are dangerous in some way, because they might
remove files that are still in use, for example.

Make the "sendmail" item disabled by default, it removes sendmail
configuration. Partly addresses PR install/36180.

Proposed on tech-userlevel, review and spelling fixes from lukem@.
 1.40 11-Apr-2007  kiyohara Add btuartd.conf to bluetooth.
 1.39 26-Mar-2007  apb * Make postinstall's -s option accept several tgz files, either by
repeating the -s option, or by using a colon-separated list.
* Update postinstall(8) man page with some of the text used in
etcupdate(8)'s description of the -s option.
* Remove an outdated comment about invoking etc/postinstall from
the directory in which the tgz is extracted.
* Rename orig_SRC_DIR to SRC_ARG and make related changes.

Reviewed by lukem and martti.
 1.38 18-Mar-2007  plunky For sdpd(8), change default user/group from nobody/nobody to _sdpd/_sdpd
 1.37 03-Mar-2007  apb Revert previous. MAKEDEV.subr no longer exists.
 1.36 01-Mar-2007  apb Convert the guts of do_makedev() into a loop that checks both MAKEDEV
and MAKEDEV.subr.
 1.35 05-Feb-2007  elad Add perusertmp. Pointed out by Geoff Wing, thanks!
 1.34 28-Jan-2007  cbiere Added user and group "_timedc" for timedc.
 1.33 05-Dec-2006  lukem Crank copyright.
Whitespace & linewrap consistency tweaks.
 1.32 05-Dec-2006  lukem Fix method to find pf.os so it works with '-s etc.tgz'.
PR 35185 by Valeriy E. Ushakov.

Don't bother to find pf.conf first; the code was a noisy no-op.
 1.31 26-Nov-2006  peter branches: 1.31.2;
Check if /etc/pf.conf and /etc/pf.os exist and copy them if they don't.

Suggested by lukem@.
 1.30 14-Nov-2006  lukem /etc/postfix/post-install needs to be 555 not 444.
 1.29 07-Oct-2006  rpaulo PR 34692: wpa_supplicant script.
By Jukka Salmi.
 1.28 23-Sep-2006  jmmv Add a check to aid in the migration of motd contents between development
releases. Suggested by tron@ and approved by silence in tech-userlevel@.
 1.27 12-Sep-2006  dbj fix problem with file_exists_exact where it was returning false
for dangling symlinks because it was checking them with test -e
 1.26 11-Sep-2006  dbj fixes for building into case preserving, but case insensitive $DESTDIR
- have checkflist do a second possibly case insensitive check for
files which are missing from DESTDIR
- have postinstall require exact case matches for obsolete files
 1.25 10-Sep-2006  plunky update to bluetooth device attachment:

remove pseudo-device btdev(4) and inherent limitations

add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.

btdevctl(8) and its cache is updated to handle new semantics

etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf
 1.24 18-Aug-2006  hubertf give a hint on how to fix the 'NOT FIXED' checks -> fix manually

OK'd by lukem@
 1.23 13-Aug-2006  plunky rename btcontrol(8) as btdevctl(8) to make it fit with the NetBSD naming
scheme for control programs. This fixes pr 34051.
 1.22 26-Jul-2006  tron branches: 1.22.2;
Bluetooth fixes by Iain Hibbert:
Create "/etc/rc.d/btcontrol" to attach bluetooth devices at boot.
 1.21 26-Jul-2006  tron Bluetooth fixes by Iain Hibbert:
Remove bluetooth.conf(5) and config parsing from libbluetooth(3)
as this is no longer required.
 1.20 15-Jul-2006  tron Create and populate "/etc/bluetooth". Based on patch submitted by
Iain Hibbert on "current-users" mailing list.
 1.19 19-Jun-2006  gdamore Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.
 1.18 09-Jun-2006  tron Remove "/var/spool/clientmqueue" and "/var/spool/mqueue" from the list
of obsolete directories and handle them via the "sendmail" item in
postinstall(8), too. These directories are of course necessary on
systems using the "sendmail" package.

Problem pointed out by Hisashi T Fujinaka on "current-users" mailing list.
 1.17 09-Jun-2006  tron Remove the "sendmail" configuration files and startup scripts from the
list of obsolete files. Resurrect the "sendmail" item which now flags
these files as obsolete unless the "sendmail" package is installed.
 1.16 08-Jun-2006  simonb Sort the obsolete rc.conf(5) variables to check, and only check
sysctl once(!).
 1.15 30-May-2006  tron Check whether user and group "postfix" exist.
 1.14 30-May-2006  tron After removal of "sendmail":
- Remove the code dealing with "sendmail" updates.
- Don't check for the existence of user and group "smmsp" any more.
- Remove "/etc/rc.d/smmsp" and "/etc/rc.d/sendmail" because there defaults
have been removed from "/etc/defaults/rc.conf".
 1.13 14-May-2006  simonb Sync rc.d file list with etc/rc.d/Makefile, adding ftpd, hostapd, and
irdaattach.
 1.12 12-May-2006  tron Add "iscsi" target which install the iSCSI configuration files.
This will stop e.g. "/etc/security" complaining about these files
missing after a sucessful run of "postinstall"
 1.11 12-May-2006  tron Check for and install "/etc/rc.d/iscsi_target".
 1.10 14-Feb-2006  tsarna Add postinstall item for the rwhod de-preivledging.
Check and correct permissions on /var/rwho files so rwhod
will be able to update them.
 1.9 22-Nov-2005  lukem Add checks for _rwhod group & user.
Noted by Patrick Welche on current-users.
 1.8 02-Oct-2005  lukem Fix do_defaults() so that it errors when there's a mismatch.
Noted by Matthias Scheler.
 1.7 12-Sep-2005  lukem Add "named" item to move /etc/namedb/named.conf to /etc/named.conf.
Per discussion with Matthias Scheler.
 1.6 12-Sep-2005  lukem Reorganize items so that they're in alphabetical order except that
"obsolete" is moved to the end.
Clean up some comments.
 1.5 04-Sep-2005  lukem Fix the installation of /etc/defaults/pf.boot.conf so that it works
with -s etc.tgz.
 1.4 23-Aug-2005  peter pf needs to be started after the network is up, because some pf rules
derive IP address(es) from the interface (e.g "... from any to fxp0").
This however, creates window for possible attacks from the network.

Implement the solution proposed by YAMAMOTO Takashi:
Add /etc/defaults/pf.boot.conf and load it with the /etc/rc.d/pf_boot
script before starting the network. People who don't like the default
rules can override it with their own /etc/pf.boot.conf.
The default rules have been obtained from OpenBSD.

No objections on: tech-security
 1.3 26-Apr-2005  lukem If /etc/ssh/sshd_config contains the following deprecated options,
comment them out:
rhostsauthentication
verifyreversemapping
reversemappingcheck
 1.2 17-Apr-2005  lukem branches: 1.2.2;
do_postinstall() is now unnecessary; remove it.

If extracting -s etc.tgz to a temporary directory, don't run the
embedded etc/postinstall since it doesn't exist anymore.

Remember the original SRC_DIR passed in (e.g, "-s etc.tgz") and
display that in the suggested "fix" message, rather than a temporary
path to the extracted etc.tgz which won't be correct for the next run.
 1.1 17-Apr-2005  lukem Move /etc/postinstall (and the etc.tgz set) to /usr/sbin/postinstall
(and the base.tgz set).
 1.2.2.13 30-Jan-2007  tron Pull up following revision(s) (requested by lukem in ticket #1659):
usr.sbin/postinstall/postinstall: revision 1.32
Fix method to find pf.os so it works with '-s etc.tgz'.
PR 35185 by Valeriy E. Ushakov.
Don't bother to find pf.conf first; the code was a noisy no-op.
 1.2.2.12 29-Nov-2006  bouyer Pull up following revision(s) (requested by peter in ticket #1594):
usr.sbin/postinstall/postinstall: revision 1.31
Check if /etc/pf.conf and /etc/pf.os exist and copy them if they don't.
Suggested by lukem@.
 1.2.2.11 14-Nov-2006  bouyer Pull up following revision(s) (requested by lukem in ticket #1585):
usr.sbin/postinstall/postinstall: revision 1.30
/etc/postfix/post-install needs to be 555 not 444.
 1.2.2.10 12-Jul-2006  tron branches: 1.2.2.10.2;
Apply patch (requested by ghen in ticket #1398):
Update Postfix to version 2.2.10.
 1.2.2.9 04-Oct-2005  tron branches: 1.2.2.9.2;
Pull up following revision(s) (requested by lukem in ticket #858):
usr.sbin/postinstall/postinstall: revision 1.8
Fix do_defaults() so that it errors when there's a mismatch.
Noted by Matthias Scheler.
 1.2.2.8 15-Sep-2005  tron Pull up following revision(s) (requested by lukem in ticket #788):
usr.sbin/postinstall/postinstall: revision 1.7
Add "named" item to move /etc/namedb/named.conf to /etc/named.conf.
Per discussion with Matthias Scheler.
 1.2.2.7 15-Sep-2005  tron Pull up following revision(s) (requested by lukem in ticket #787):
usr.sbin/postinstall/postinstall: revision 1.6
Reorganize items so that they're in alphabetical order except that
"obsolete" is moved to the end.
Clean up some comments.
 1.2.2.6 04-Sep-2005  tron Pull up following revision(s) (requested by lukem in ticket #745):
usr.sbin/postinstall/postinstall: revision 1.5
Fix the installation of /etc/defaults/pf.boot.conf so that it works
with -s etc.tgz.
 1.2.2.5 02-Sep-2005  tron Pull up following revision(s) (requested by peter in ticket #717):
usr.sbin/pf/man/man5/pf.boot.conf.5: revision 1.1
usr.sbin/postinstall/postinstall: revision 1.4
etc/rc.d/pf: revision 1.6
etc/rc.d/pf_boot: revision 1.1
usr.sbin/pf/etc/defaults/pf.boot.conf: revision 1.1
usr.sbin/pf/Makefile: revision 1.7
etc/rc.d/Makefile: revision 1.52
etc/mtree/special: revision 1.89
usr.sbin/pf/man/man5/Makefile: revision 1.5
usr.sbin/pf/etc/defaults/Makefile: revision 1.1
pf needs to be started after the network is up, because some pf rules
derive IP address(es) from the interface (e.g "... from any to fxp0").
This however, creates window for possible attacks from the network.
Implement the solution proposed by YAMAMOTO Takashi:
Add /etc/defaults/pf.boot.conf and load it with the /etc/rc.d/pf_boot
script before starting the network. People who don't like the default
rules can override it with their own /etc/pf.boot.conf.
The default rules have been obtained from OpenBSD.
No objections on: tech-security
 1.2.2.4 28-Apr-2005  tron Pull up revision 1.3 (requested by lukem in ticket #205):
If /etc/ssh/sshd_config contains the following deprecated options,
comment them out:
rhostsauthentication
verifyreversemapping
reversemappingcheck
 1.2.2.3 20-Apr-2005  tron Pull up revision 1.2 (requested by lukem in ticket #167):
do_postinstall() is now unnecessary; remove it.
If extracting -s etc.tgz to a temporary directory, don't run the
embedded etc/postinstall since it doesn't exist anymore.
Remember the original SRC_DIR passed in (e.g, "-s etc.tgz") and
display that in the suggested "fix" message, rather than a temporary
path to the extracted etc.tgz which won't be correct for the next run.
 1.2.2.2 20-Apr-2005  tron Pull up revision 1.1 (requested by lukem in ticket #164):
Move /etc/postinstall (and the etc.tgz set) to /usr/sbin/postinstall
(and the base.tgz set).
 1.2.2.1 17-Apr-2005  tron file postinstall was added on branch netbsd-3 on 2005-04-20 11:20:13 +0000
 1.2.2.10.2.1 14-Nov-2006  bouyer Pull up following revision(s) (requested by lukem in ticket #1585):
usr.sbin/postinstall/postinstall: revision 1.30
/etc/postfix/post-install needs to be 555 not 444.
 1.2.2.9.2.1 14-Nov-2006  bouyer Pull up following revision(s) (requested by lukem in ticket #1585):
usr.sbin/postinstall/postinstall: revision 1.30
/etc/postfix/post-install needs to be 555 not 444.
 1.22.2.3 14-Sep-2006  riz Pull up following revision(s) (requested by plunky in ticket #161):
sys/dev/bluetooth/btdev.h: revision 1.4
distrib/sets/lists/comp/mi: revision 1.922
usr.sbin/postinstall/postinstall: revision 1.25
sys/netbt/hci_unit.c: revision 1.3
sys/netbt/hci_ioctl.c: revision 1.4
usr.sbin/sdpd/profile.c: revision 1.2
usr.sbin/btdevctl/btdevctl.c: revision 1.2
share/man/man4/Makefile: revision 1.405
distrib/sets/lists/man/mi: revision 1.930
distrib/sets/lists/etc/mi: revision 1.176
usr.sbin/sdpd/profile.c: revision 1.3
usr.sbin/btdevctl/btdevctl.c: revision 1.3
etc/MAKEDEV.tmpl: revision 1.62
distrib/sets/lists/base/mi: revision 1.650
usr.sbin/btdevctl/btdevctl.h: revision 1.2
usr.bin/sdpquery/sdpquery.1: revision 1.4
sys/netbt/rfcomm_session.c: revision 1.2
usr.sbin/btdevctl/btdevctl.8: revision 1.3
usr.bin/sdpquery/search.c: revision 1.2
usr.sbin/sdpd/Makefile: revision 1.2
sys/dev/bluetooth/Makefile: revision 1.3
usr.sbin/btdevctl/cfg.c: file removal
sys/netbt/files.netbt: revision 1.4
usr.sbin/btdevctl/sdp.c: revision 1.1
sys/dev/bluetooth/bthidev.c: revision 1.3
etc/bluetooth/Makefile: revision 1.3
sys/dev/pcmcia/files.pcmcia: revision 1.51
sys/dev/bluetooth/bthidev.c: revision 1.4
sys/dev/bluetooth/bthidev.h: revision 1.3
usr.sbin/btdevctl/dev.c: file removal
sys/dev/bluetooth/files.bluetooth: revision 1.10
sys/arch/i386/conf/GENERIC: revision 1.777
share/man/man4/ubt.4: revision 1.6
share/man/man4/bthub.4: revision 1.3
sys/netbt/hci.h: revision 1.5
sys/arch/i386/conf/GENERIC_LAPTOP: revision 1.202
lib/libsdp/sdp.h: revision 1.2
usr.sbin/btdevctl/print.c: revision 1.1
share/man/man4/bthidev.4: revision 1.5
share/man/man4/btdev.4: file removal
usr.sbin/btdevctl/print.c: revision 1.2
sys/arch/i386/conf/GENERIC_LAPTOP: revision 1.205
usr.sbin/btdevctl/Makefile: revision 1.2
sys/dev/usb/files.usb: revision 1.70
sys/netbt/l2cap_signal.c: revision 1.2
sys/netbt/hci_link.c: revision 1.4
sys/dev/bluetooth/bthub.c: revision 1.3
share/man/man4/btsco.4: revision 1.5
sys/netbt/hci_link.c: revision 1.5
share/man/man4/btdev.4: revision 1.4
sys/dev/bluetooth/btkbd.c: revision 1.3
sys/dev/bluetooth/btdev.c: file removal
sys/netbt/hci_event.c: revision 1.2
sys/dev/bluetooth/btsco.h: revision 1.2
etc/mtree/special: revision 1.101
sys/dev/bluetooth/btsco.c: revision 1.3
sys/conf/majors: revision 1.27
usr.sbin/sdpd/hf.c: revision 1.1
sys/dev/bluetooth/btsco.c: revision 1.4
share/man/man5/rc.conf.5: revision 1.107
sys/dev/bluetooth/btdev.c: revision 1.2
etc/rc.d/btdevctl: revision 1.2
usr.sbin/btdevctl/db.c: revision 1.1
etc/rc.d/btdevctl: revision 1.3
etc/bluetooth/btdevctl.conf: revision 1.1
usr.sbin/btdevctl/hid.c: file removal
sys/arch/i386/conf/GENERIC: revision 1.781
sys/dev/bluetooth/btdev.h: revision 1.3
Make btdev default count explicit
Fix typo in variable name
update to bluetooth device attachment:
remove pseudo-device btdev(4) and inherent limitations
add bthub(4) which autoconfigures at bluetooth controllers as they
are enabled. bluetooth devices now attach here.
btdevctl(8) and its cache is updated to handle new semantics
etc/rc.d/btdevctl is updated to configure devices from a list
in /etc/bluetooth/btdevctl.conf
also include service name in dictionary being sent to kernel.
(this is not used just yet, but it might be in the future and it will
be easier if we dont have to provide code to handle its absence)
clarify the CAVEAT section somewhat
Add service discovery support for the Handsfree profile
Replace static 'FreeBSD' string with operating system name gleaned
from uname(3)
Halt the callout on detach
btsco.c:
- sco_getopt(..., SO_SCO_MTU, ...) expects the address of a uint16_t,
not an int. So change sc_mtu's type to uint16_t.
- Try a little harder to ensure btsco_round_blocksize() does not
return zero. Prevents a subsequent panic in audio_init_ringbuffer().
from scw@
Endian issues:
hci_event.c:
- Convert memo->response.clock_offset to host-endian.
hci_ioctl.c:
- printf format tweak (size_t)
hci_link.c:
- Convert memo->response.clock_offset from host-endian.
- Tweak a DIAGNOSTIC message.
l2cap_signal.c:
- In l2cap_recv_config_req(), rp->scid is little-endian so make sure
we convert from host-endian.
from scw@
hci_link.c:
- In hci_link_free(), do not unlink items from a LIST queue within
a LIST_FOREACH() iterator.
rfcomm_session.c:
- In rfcomm_session_recv_mcc_nsc(), do not unlink items from a LIST
queue within a LIST_FOREACH() iterator.
from scw@
guard against a possible situation where the list of l2cap channels is changed
when the bluetooth code is not expecting it to be. During a disconnect, we can
detach the channel that is being disconnected, but its not really safe to detach
any others.
Print explicit 64-bit types using the format macros from int_fmtio.h.
Unbreaks the build for our LP64 ports, where "long long" typically is
not 64 bits.
 1.22.2.2 07-Sep-2006  tron Pull up following revision(s) (requested by plunky in ticket #81):
usr.sbin/postinstall/postinstall: revision 1.23
distrib/sets/lists/man/mi: revision 1.919
distrib/sets/lists/etc/mi: revision 1.174
usr.sbin/btdevctl/btdevctl.c: revision 1.1
usr.sbin/btdevctl/hid.c: revision 1.1
usr.sbin/Makefile: revision 1.217
usr.sbin/btdevctl/btdevctl.h: revision 1.1
usr.sbin/btdevctl/btdevctl.8: revision 1.1
etc/rc.d/btcontrol: file removal
distrib/sets/lists/comp/mi: revision 1.910
etc/rc.d/Makefile: revision 1.61
usr.sbin/btdevctl/cfg.c: revision 1.1
usr.sbin/btdevctl/dev.c: revision 1.1
share/man/man4/btkbd.4: revision 1.2
share/man/man4/bthidev.4: revision 1.4
usr.sbin/btcontrol/hid.c: file removal
usr.sbin/btdevctl/Makefile: revision 1.1
share/man/man4/btsco.4: revision 1.3
distrib/sets/lists/base/mi: revision 1.644
share/man/man4/btdev.4: revision 1.3
share/man/man4/btms.4: revision 1.2
etc/mtree/special: revision 1.100
share/man/man5/rc.conf.5: revision 1.105
usr.sbin/btcontrol/cfg.c: file removal
etc/rc.d/btdevctl: revision 1.1
etc/defaults/rc.conf: revision 1.80
usr.sbin/btcontrol/btcontrol.h: file removal
usr.sbin/btcontrol/btcontrol.8: file removal
usr.sbin/btcontrol/dev.c: file removal
usr.sbin/btcontrol/btcontrol.c: file removal
usr.sbin/btcontrol/Makefile: file removal
rename btcontrol(8) as btdevctl(8) to make it fit with the NetBSD naming
scheme for control programs. This fixes pr 34051.
 1.22.2.1 02-Sep-2006  tron Pull up following revision(s) (requested by hubertf in ticket #100):
usr.sbin/postinstall/postinstall: revision 1.24
give a hint on how to fix the 'NOT FIXED' checks -> fix manually
OK'd by lukem@
 1.31.2.11 20-Aug-2008  bouyer Pull up following revision(s) (requested by matt in ticket #1170):
usr.sbin/postinstall/postinstall: revision 1.65
Make sure to update root.cache too.
 1.31.2.10 22-Feb-2008  bouyer Pull up following revision(s) (requested by tron in ticket #1073):
usr.sbin/postinstall/postinstall: revision 1.57, 1.58
Don't fail the X11 check if "/usr/X11R6/lib" doesn't exist. This is
perfectly valid setup (e.g. no X11 or modular X11 from "pkgsrc").
Avoid error message in "obsolete" check if "/usr/X11R6/lib" doesn't exist.
 1.31.2.9 02-Feb-2008  riz Pull up following revision(s) (requested by jnemeth in ticket #1022):
usr.sbin/postinstall/postinstall: revision 1.56
Update URLs after website reorganization in the motd check; per pavel@'s
request. Closes PR misc/37070.
 1.31.2.8 26-Nov-2007  xtraeme Pull up following revision(s) (requested by jnemeth in ticket #995):
usr.sbin/postinstall/postinstall: revision 1.55 (patch)
PR/35238 - tls@ -- add _proxy to uid and gid checks
 1.31.2.7 26-Oct-2007  xtraeme Pull up following revision(s) (requested by pavel in ticket #952):
usr.sbin/postinstall/postinstall: revision 1.54
now when trap 0 is not used, we need to remove the temporary directiry
at the end. PR bin/37223.
 1.31.2.6 26-Oct-2007  liamjfoy Pull up following revision(s) (requested by pavel in ticket #947):
Makefile: revision 1.250
usr.sbin/postinstall/postinstall: revision 1.51
usr.sbin/postinstall/postinstall: revision 1.52
Return exit status 1 for failed chacks/fixes, 2 for errors. Suggested
by hubertf. Use exit status 3 for internal errors (misuse of internal
functions).
Add a check for obsolete sendmail in /etc/mailer.conf, installs a
fresh copy of the file if invoked as "fix". Not enabled by default.
Do not abort on exit code 1 from postinstall check, this is expected.
Reported, fix suggested and tested by David Holland.
(Why does "make build" invoke postinstall check on destdir is another
question, it does not seem to have much sense.)
 1.31.2.5 24-Oct-2007  xtraeme Pull up following revision(s) (requested by pavel in ticket #943):
usr.sbin/postinstall/postinstall: revision 1.50
do not use trap 0, it clobbers the exit status. Instead remove the
scratch directory in err(). Use err() instead of exit in one place to
ensure that the temporary directory is removed.
 1.31.2.4 14-Oct-2007  riz Pull up following revision(s) (requested by xtraeme in ticket #930):
etc/group: revision 1.22
etc/defaults/rc.conf: revision 1.85
etc/master.passwd: revision 1.38
usr.sbin/sdpd/sdpd.8: revision 1.2
usr.sbin/sdpd/sdpd.8: revision 1.3
share/man/man5/rc.conf.5: revision 1.113
etc/rc.d/sdpd: revision 1.2
usr.sbin/sdpd/server.c: revision 1.3
usr.sbin/postinstall/postinstall: revision 1.38
usr.sbin/sdpd/server.h: revision 1.2
usr.sbin/sdpd/main.c: revision 1.2
usr.sbin/sdpd/main.c: revision 1.3
Add an option to permit members of a specific group to register services, in
order to lower the barrier for users of bluetooth devices which may need to
query services on the local host.
change default user/group from nobody/nobody to _sdpd/_sdpd
 1.31.2.3 01-Jul-2007  bouyer Pull up following revision(s) (requested by pavel in ticket #752):
distrib/sets/lists/etc/mi: revision 1.190
distrib/sets/lists/misc/mi: revision 1.145
usr.sbin/postinstall/postinstall: revisions 1.41, 1.42
usr.sbin/postinstall/postinstall.8: revision 1.7

Separate postinstall checks in two groups: enabled and disabled by
default. Only the former checks/fixes are done if no items are given
on the command line. The latter must be requested explicitely.
Intended for "fixes" that are dangerous in some way, because they might
remove files that are still in use, for example.

Make the "sendmail" item disabled by default, it removes sendmail
configuration. Partly addresses PR install/36180.
Proposed on tech-userlevel, review and spelling fixes from lukem@.

Remove the remaining sendmail config files (including everything in
/usr/share/sendmail) from the obsolete list. Instead, remove them in the
"sendmail" postinstall item, which is disabled by default, to prevent
losing sendmail configuration on upgrade. Fixes the rest of
PR install/36180.
 1.31.2.2 16-Apr-2007  bouyer branches: 1.31.2.2.2;
Pull up following revision(s) (requested by apb in ticket #571):
usr.sbin/postinstall/postinstall.8: revision 1.6
usr.sbin/postinstall/postinstall: revision 1.39
usr.sbin/etcupdate/etcupdate.8: revision 1.13
usr.sbin/etcupdate/etcupdate: revision 1.34
Allow both etcupdate and postinstall to accept multiple
.tgz files (e.g. etc.tgz and xetc.tgz). Make etcupdate
invoke postinstall.
 1.31.2.1 30-Jan-2007  tron Pull up following revision(s) (requested by lukem in ticket #393):
usr.sbin/postinstall/postinstall: revision 1.32
Fix method to find pf.os so it works with '-s etc.tgz'.
PR 35185 by Valeriy E. Ushakov.
Don't bother to find pf.conf first; the code was a noisy no-op.
 1.31.2.2.2.5 04-Sep-2008  skrll Sync with netbsd-4.
 1.31.2.2.2.4 03-Jun-2008  skrll Sync with netbsd-4.
 1.31.2.2.2.3 06-Jan-2008  wrstuden Catch up to netbsd-4.0 release.
 1.31.2.2.2.2 29-Oct-2007  wrstuden Catch up with 4.0 RC3
 1.31.2.2.2.1 03-Sep-2007  wrstuden Sync w/ NetBSD-4-RC_1
 1.49.6.2 29-Jul-2007  plunky add mention of rc.d/btuartd
 1.49.6.1 29-Jul-2007  plunky file postinstall was added on branch matt-mips64 on 2007-07-29 13:17:39 +0000
 1.49.4.3 23-Mar-2008  matt sync with HEAD
 1.49.4.2 09-Jan-2008  matt sync with HEAD
 1.49.4.1 06-Nov-2007  matt sync with HEAD
 1.59.2.2 14-Jun-2008  peter add ftp proxy rc.d script.
 1.59.2.1 18-May-2008  yamt sync with head.
 1.61.2.3 24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.61.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.61.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.76.2.24 11-Jan-2010  snj Pull up following revision(s) (requested by christos in ticket #1232):
usr.sbin/postinstall/postinstall: revision 1.107
running postinstall fix should also say why fontconfig did not work, like
all other postinstall methods.
 1.76.2.23 08-Nov-2009  snj Pull up following revision(s) (requested by apb in ticket #1126):
usr.sbin/postinstall/postinstall: revision 1.106
/usr/X11R7/lib/X11/xkb/symbols/pc used to be a directory, but changed
to a file on 2009-06-12. Fixing this requires removing the directory
(which we can do) and re-extracting the xbase set (which we can't do),
or at least adding that one file (which we may be able to do if X11SRCDIR
is available).
Reviewed by mrg, snj
 1.76.2.22 08-Oct-2009  sborrill Pull up the following revisions(s) (requested by taca in ticket #1077):
usr.sbin/postinstall/postinstall: revision 1.98

Make the makedev step fail if either MAKEDEV or MAKEDEV.local need to
be updated.
 1.76.2.21 17-Sep-2009  snj Apply patch (requested by mrg in ticket #958):
Sync X.Org reachover build framework and setlists with the new X.Org.
 1.76.2.20 15-Sep-2009  snj Apply patch (requested by tron in ticket #944):
Update Postfix to 2.6.5.
 1.76.2.19 14-May-2009  snj Pull up following revision(s) (requested by jnemeth in ticket #756):
usr.sbin/postinstall/postinstall: revision 1.97
fetch /etc/dhcpcd.conf from the correct place when building the system
 1.76.2.18 13-May-2009  snj Pull up following revision(s) (requested by jnemeth in ticket #753):
usr.sbin/postinstall/postinstall: revision 1.96
install /etc/rc.d/dhcpcd as well
 1.76.2.17 13-May-2009  snj Pull up following revision(s) (requested by jnemeth in ticket #752):
usr.sbin/postinstall/postinstall: revision 1.95
install /etc/dhcpcd.conf
 1.76.2.16 07-Apr-2009  snj branches: 1.76.2.16.2;
Pull up following revision(s) (requested by martin in ticket #672):
usr.sbin/postinstall/postinstall: revision 1.93 via patch
Now that we use ?= to optionally assing to ddb.onpanic, match that when
testint existing configurations too.

For 5.0, do the same with kern.no_sa_support.
 1.76.2.15 03-Apr-2009  snj Pull up following revision(s) (requested by dyoung in ticket #649):
usr.sbin/postinstall/postinstall: revision 1.86
Look for MAKEDEV.local in both ${SRC_DIR}/dev/ and ${SRC_DIR}/etc/,
so that 'postinstall check makedev' works whether the sources told
by the -s argument are a NetBSD source tree, etc.tgz, or a DESTDIR.
 1.76.2.14 03-Apr-2009  snj Pull up following revision(s) (requested by dyoung in ticket #649):
usr.sbin/postinstall/postinstall: revision 1.85
do_makedev: look at a correct directory for MAKEDEV.local
 1.76.2.13 03-Apr-2009  snj Pull up following revision(s) (requested by dyoung in ticket #649):
usr.sbin/postinstall/postinstall: revision 1.84
Added MAKEDEV.local to postinstall's makedev check. Upgraded systems were
not getting an updated MAKEDEV.local file.
 1.76.2.12 01-Apr-2009  snj Apply patch (requested by martin in ticket #642):
Make ddb.onpanic and kern.no_sa_support acceptable even if commented out.
 1.76.2.11 28-Mar-2009  snj Correct ticket #536 to include two changes (grep -> ${GREP}) from tickets
#563 and #564 that should have been pulled up at the same time.
 1.76.2.10 27-Mar-2009  msaitoh Pull up following revision(s) (requested by sketch in ticket #536):
etc/Makefile: revision 1.364
Makefile: revision 1.267
usr.sbin/postinstall/postinstall: revision 1.90
usr.bin/hexdump/parse.c: revision 1.25
sys/arch/x86/acpi/genwakecode.sh: revision 1.3
usr.sbin/postinstall/postinstall: revision 1.87
usr.sbin/postinstall/postinstall: revision 1.88
usr.sbin/postinstall/postinstall: revision 1.89
sys/arch/x86/acpi/Makefile.wakecode.inc: revision 1.4
sys/conf/Makefile.kern.inc: revision 1.120
Use ll instead of non-standard q as length modifier in format strings. Makes
this work on Solaris. OK by apb.
Not every grep knows -q. Ok by apb.
Use sed, awk and hexdump from tools to make this work on Solaris. Ok by apb.
Use awk and grep host tools where required. 'build.sh release' now
works on Solaris (but only with HOST_CC=/usr/sfw/bin/gcc for now).
"grep -q" is not portable; use "grep >/dev/null" instead. Also add a
comment saying that postinstal is invoked during a cross build.
In file_exists_exact(), fix an incorrect test of "1" instead of "$1",
and improve the comment explaining what this function does.
As long as we don't yet have a working TOOL_GREP, fgrep is more portablethan grep -F.
 1.76.2.9 14-Mar-2009  snj Apply patch (forgotten by me in ticket #564):
s/${GREP}/grep/
 1.76.2.8 12-Mar-2009  snj Pull up following revision(s) (requested by martin in ticket #564):
etc/sysctl.conf: revision 1.6
sys/ddb/db_variables.c: revision 1.42
usr.sbin/postinstall/postinstall: revision 1.91
Switch the default value (if no options DDB_ONPANIC is defined) for
ddb.onpanic to 1, change it back to 0 in sysctl.conf and make sure
postinstall installs this setting.
This avoids us trying to dump while booting from install CD, but keeps
the default the same once we are far enough through /etc/rc.d. Failing
earlier is unlikely to be recovered by an automatic reboot.
OK: core.
 1.76.2.7 12-Mar-2009  snj Apply patch (requested by martin in ticket #563):
Disable SA via sysctl.conf, not in the kernel. This improves
binary compatibility for incomplete (kernel only) updates while
keeping the overall effect of having SA disabled after a full update.
 1.76.2.6 09-Feb-2009  snj Back out ticket 328 for now. See PR 40568.
 1.76.2.5 06-Feb-2009  snj Pull up following revision(s) (requested by apb in ticket #406):
usr.sbin/postinstall/postinstall: revision 1.82
Add rndctl to do_rc().
Thanks to Geoff Wing on current-users.
 1.76.2.4 02-Feb-2009  snj Pull up following revision(s) (requested by jklos in ticket #328):
usr.sbin/postinstall/postinstall: revision 1.84
Added MAKEDEV.local to postinstall's makedev check. Upgraded systems were
not getting an updated MAKEDEV.local file.
 1.76.2.3 22-Jan-2009  snj Pull up following revision(s) (requested by rafal in ticket #297):
distrib/sets/lists/etc/mi: revision 1.203
doc/CHANGES: revision 1.1151 via patch
etc/defaults/rc.conf: revision 1.97
etc/mtree/special: revision 1.123
etc/rc.d/Makefile: revision 1.71
etc/rc.d/httpd: revision 1.1
share/man/man5/rc.conf.5: revision 1.123
usr.sbin/postinstall/postinstall: revision 1.80
Import rc.d/httpd script for httpd(8) daemon control.
See rc.conf(5) for options explanation.
 1.76.2.2 06-Dec-2008  snj Pull up following revision(s) (requested by cube in ticket #168):
usr.sbin/postinstall/postinstall: revision 1.79
- Introduce a function get_makevar that will retrieve the values of a
specific set of user-derived variables, to be used in SOURCEMODE.
- In SOURCEMODE, generate the rc.d scripts xdm and xfs.
- Auto-detect if X11 sets are used (either through the value of MKX11 in
SOURCEMODE, or by finding an xetc-xpecific file in sets mode).
- Ignore X11-specific rc.d scripts if X11 is not used.
 1.76.2.1 27-Nov-2008  snj Pull up following revision(s) (requested by nakayama in ticket #130):
usr.sbin/postinstall/postinstall: revision 1.78
Add scan obsolete minor shared libraries in /usr/X11R7/lib.
Also scan in /usr/lib/i386 for amd64, /usr/lib/sparc for sparc64.
 1.76.2.16.2.2 14-May-2009  snj branches: 1.76.2.16.2.2.2;
Pull up following revision(s) (requested by jnemeth in ticket #756):
usr.sbin/postinstall/postinstall: revision 1.97
fetch /etc/dhcpcd.conf from the correct place when building the system
 1.76.2.16.2.1 13-May-2009  snj Pull up following revision(s) (requested by jnemeth in ticket #752):
usr.sbin/postinstall/postinstall: revision 1.95
install /etc/dhcpcd.conf
 1.76.2.16.2.2.2.1 21-Apr-2010  matt sync to netbsd-5
 1.84.2.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.112.2.1 17-Feb-2011  bouyer Sync with HEAD
 1.126.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.126.2.2 30-Oct-2012  yamt sync with head
 1.126.2.1 17-Apr-2012  yamt sync with head
 1.129.2.12 15-Nov-2015  bouyer Pull up following revision(s) (requested by dholland in ticket #1312):
usr.sbin/postinstall/postinstall: revision 1.196 via patch
PR install/50020: postinstall does not check for mandoc in /etc/man.conf.
Add a check, but ask the user to fix manually (the file could have local
modifications).
 1.129.2.11 21-May-2014  bouyer Pull up following revision(s) (requested by mrg in ticket #1052):
usr.sbin/postinstall/postinstall: revision 1.166
don't apply "ptyfsoldnodes" if /dev/pts does not exist, even if ptyfs
is listed in /etc/fstab. without this, postinstall happily removes
all your ptys leaving you with none at all. return an error if we
have ptyfs in /etc/fstab, but no /dev/pts.
 1.129.2.10 30-Sep-2012  bouyer branches: 1.129.2.10.2; 1.129.2.10.4;
Pull up following revision(s) (requested by ast in ticket #568):
usr.sbin/postinstall/postinstall: revision 1.147
Make sure that the "to fix, run: ..." instructions actually work cut-and-paste
By default postinstall has mode 644 so /bin/sh or similar needs to be prepended
 1.129.2.9 15-Aug-2012  sborrill branches: 1.129.2.9.2;
Pull up the following revisions(s) (requested by martin in ticket #503):
usr.sbin/postinstall/postinstall: revision 1.142-1.145
Makefile: revision 1.295-1.298

Make test for and removal of old pty device nodes more portable.
 1.129.2.8 13-Aug-2012  riz Pull up following revision(s) (requested by martin in ticket #492):
usr.sbin/postinstall/postinstall: revision 1.139
usr.sbin/postinstall/postinstall: revision 1.140
usr.sbin/postinstall/postinstall: revision 1.141
Add a ptyfsoldnodes item that checks/removes old /dev/{p,t}ty* nodes
if ptyfs is used.
Make "fix ptyfsoldnodes" more verbose
Cleanup temporary file
 1.129.2.7 16-Jul-2012  riz Pull up following revision(s) (requested by jmmv in ticket #419):
usr.sbin/postinstall/postinstall: revision 1.136
Properly find atf configuration files in the source tree. My previous
change dealt properly with etc.tgz only. Addresses PR bin/45870.
 1.129.2.6 11-Jun-2012  riz Pull up following revision(s) (requested by jnemeth in ticket #302):
usr.sbin/postinstall/postinstall: revision 1.137
add _tss to uid and gid checks
 1.129.2.5 27-Feb-2012  riz Pull up following revision(s) (requested by jmmv in ticket #59):
usr.sbin/postinstall/postinstall: revision 1.135
Populate /etc/atf with any missing files. Fixes PR bin/45870.
 1.129.2.4 24-Feb-2012  riz Pull up following revision(s) (requested by nakayama in ticket #44):
usr.sbin/postinstall/postinstall: revision 1.133
Fix a call to pwd_mkdb in the case that DEST_DIR is the empty string.
 1.129.2.3 23-Feb-2012  riz Pull up following revision(s) (requested by nakayama in ticket #26):
usr.sbin/postinstall/postinstall: revision 1.132
Pass -d option to pwd_mkdb(8) in order to make databases at proper location.
 1.129.2.2 19-Feb-2012  riz Pull up following revision(s) (requested by apb in ticket #10):
usr.sbin/postinstall/postinstall: revision 1.131
Use msg for indentation.
 1.129.2.1 19-Feb-2012  riz Pull up following revision(s) (requested by apb in ticket #9):
usr.sbin/postinstall/postinstall: revision 1.130
Add "pwd_mkdb" item, which checks whether /etc/pwd.db is in the
new format, and runs "pwd_mkdb -V 1 /etc/master.passwd" to fix it.
 1.129.2.10.4.1 21-May-2014  bouyer Pull up following revision(s) (requested by mrg in ticket #1052):
usr.sbin/postinstall/postinstall: revision 1.166
don't apply "ptyfsoldnodes" if /dev/pts does not exist, even if ptyfs
is listed in /etc/fstab. without this, postinstall happily removes
all your ptys leaving you with none at all. return an error if we
have ptyfs in /etc/fstab, but no /dev/pts.
 1.129.2.10.2.1 21-May-2014  bouyer Pull up following revision(s) (requested by mrg in ticket #1052):
usr.sbin/postinstall/postinstall: revision 1.166
don't apply "ptyfsoldnodes" if /dev/pts does not exist, even if ptyfs
is listed in /etc/fstab. without this, postinstall happily removes
all your ptys leaving you with none at all. return an error if we
have ptyfs in /etc/fstab, but no /dev/pts.
 1.129.2.9.2.1 01-Nov-2012  matt sync with netbsd-6-0-RELEASE.
 1.146.2.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.146.2.2 23-Jun-2013  tls resync from head
 1.146.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.165.2.1 10-Aug-2014  tls Rebase.
 1.175.2.11 27-Jul-2018  martin Pull up following revision(s) (requested by roy in ticket #1621):

external/bsd/dhcpcd/dist/compat/crypt/sha256.c up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/crypt/md5.c up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/crypt/md5.h up to 1.1.1.2
external/bsd/dhcpcd/dist/compat/crypt/sha256.h up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/crypt/hmac.c up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/crypt/hmac.h up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/_strtoi.h up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/arc4random.c up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/arc4random.h up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/arc4random_uniform.c up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/arc4random_uniform.h up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/bitops.h up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/dprintf.c up to 1.1.1.2
external/bsd/dhcpcd/dist/compat/dprintf.h up to 1.1.1.2
external/bsd/dhcpcd/dist/compat/endian.h up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/pidfile.c up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/pidfile.h up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/queue.h up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/reallocarray.c up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/reallocarray.h up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/strtoi.c up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/strtoi.h up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/strtou.c up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/strlcpy.c up to 1.1.1.1
external/bsd/dhcpcd/dist/compat/strlcpy.h up to 1.1.1.1
external/bsd/dhcpcd/dist/config-null.mk up to 1.1.1.1
external/bsd/dhcpcd/dist/configure up to 1.1.1.8
external/bsd/dhcpcd/dist/iconfig.mk up to 1.1.1.1
external/bsd/dhcpcd/dist/hooks/01-test up to 1.1.1.2
external/bsd/dhcpcd/dist/hooks/02-dump up to 1.1.1.1
external/bsd/dhcpcd/dist/hooks/10-wpa_supplicant up to 1.1.1.2
external/bsd/dhcpcd/dist/hooks/15-timezone up to 1.1.1.2
external/bsd/dhcpcd/dist/hooks/20-resolv.conf up to 1.1.1.2
external/bsd/dhcpcd/dist/hooks/29-lookup-hostname up to 1.1.1.2
external/bsd/dhcpcd/dist/hooks/30-hostname up to 1.1.1.2
external/bsd/dhcpcd/dist/hooks/50-dhcpcd-compat up to 1.1.1.1
external/bsd/dhcpcd/dist/hooks/50-ntp.conf up to 1.1.1.2
external/bsd/dhcpcd/dist/hooks/50-yp.conf up to 1.1.1.2
external/bsd/dhcpcd/dist/hooks/50-ypbind.in up to 1.1.1.2
external/bsd/dhcpcd/dist/hooks/Makefile up to 1.1.1.1
external/bsd/dhcpcd/dist/hooks/dhcpcd-run-hooks.8.in up to 1.1.1.4
external/bsd/dhcpcd/dist/hooks/dhcpcd-run-hooks.in up to 1.1.1.4
external/bsd/dhcpcd/dist/src/GNUmakefile up to 1.1.1.1
external/bsd/dhcpcd/dist/src/Makefile up to 1.1.1.4
external/bsd/dhcpcd/dist/src/arp.c up to 1.1.1.7
external/bsd/dhcpcd/dist/src/arp.h up to 1.1.1.4
external/bsd/dhcpcd/dist/src/auth.c up to 1.1.1.5
external/bsd/dhcpcd/dist/src/auth.h up to 1.1.1.3
external/bsd/dhcpcd/dist/src/bpf.c up to 1.7
external/bsd/dhcpcd/dist/src/bpf.h up to 1.1.1.4
external/bsd/dhcpcd/dist/src/common.c up to 1.1.1.5
external/bsd/dhcpcd/dist/src/common.h up to 1.1.1.4
external/bsd/dhcpcd/dist/src/control.c up to 1.1.1.3
external/bsd/dhcpcd/dist/src/control.h up to 1.1.1.2
external/bsd/dhcpcd/dist/src/defs.h up to 1.1.1.15
external/bsd/dhcpcd/dist/src/dev.c up to 1.1.1.3
external/bsd/dhcpcd/dist/src/dev.h up to 1.1.1.2
external/bsd/dhcpcd/dist/src/dhcp-common.c up to 1.1.1.4
external/bsd/dhcpcd/dist/src/dhcp-common.h up to 1.1.1.2
external/bsd/dhcpcd/dist/src/dhcp.c up to 1.11
external/bsd/dhcpcd/dist/src/dhcp.h up to 1.1.1.6
external/bsd/dhcpcd/dist/src/dhcp6.c up to 1.1.1.12
external/bsd/dhcpcd/dist/src/dhcp6.h up to 1.1.1.6
external/bsd/dhcpcd/dist/src/dhcpcd-definitions-small.conf up to 1.1.1.2
external/bsd/dhcpcd/dist/src/dhcpcd-definitions.conf up to 1.1.1.2
external/bsd/dhcpcd/dist/src/dhcpcd-embedded.c.in up to 1.1.1.2
external/bsd/dhcpcd/dist/src/dhcpcd-embedded.h.in up to 1.1.1.2
external/bsd/dhcpcd/dist/src/dhcpcd.8.in up to 1.1.1.10
external/bsd/dhcpcd/dist/src/dhcpcd.c up to 1.13
external/bsd/dhcpcd/dist/src/dhcpcd.conf up to 1.1.1.2
external/bsd/dhcpcd/dist/src/dhcpcd.conf.5.in up to 1.1.1.10
external/bsd/dhcpcd/dist/src/dhcpcd.h up to 1.1.1.5
external/bsd/dhcpcd/dist/src/duid.c up to 1.1.1.3
external/bsd/dhcpcd/dist/src/duid.h up to 1.1.1.1
external/bsd/dhcpcd/dist/src/eloop.c up to 1.1.1.5
external/bsd/dhcpcd/dist/src/eloop.h up to 1.1.1.3
external/bsd/dhcpcd/dist/src/genembedc up to 1.1.1.1
external/bsd/dhcpcd/dist/src/genembedh up to 1.1.1.1
external/bsd/dhcpcd/dist/src/if-bsd.c up to 1.1.1.8
external/bsd/dhcpcd/dist/src/if-linux-wext.c up to 1.1.1.2
external/bsd/dhcpcd/dist/src/if-linux.c up to 1.1.1.10
external/bsd/dhcpcd/dist/src/if-options.c up to 1.10
external/bsd/dhcpcd/dist/src/if-options.h up to 1.1.1.7
external/bsd/dhcpcd/dist/src/if-sun.c up to 1.1.1.4
external/bsd/dhcpcd/dist/src/if.c up to 1.1.1.8
external/bsd/dhcpcd/dist/src/if.h up to 1.1.1.5
external/bsd/dhcpcd/dist/src/ipv4.c up to 1.1.1.9
external/bsd/dhcpcd/dist/src/ipv4.h up to 1.1.1.4
external/bsd/dhcpcd/dist/src/ipv4ll.c up to 1.1.1.4
external/bsd/dhcpcd/dist/src/ipv4ll.h up to 1.1.1.4
external/bsd/dhcpcd/dist/src/ipv6.c up to 1.1.1.11
external/bsd/dhcpcd/dist/src/ipv6.h up to 1.1.1.7
external/bsd/dhcpcd/dist/src/ipv6nd.c up to 1.1.1.8
external/bsd/dhcpcd/dist/src/ipv6nd.h up to 1.1.1.6
external/bsd/dhcpcd/dist/src/logerr.c up to 1.1.1.2
external/bsd/dhcpcd/dist/src/logerr.h up to 1.1.1.3
external/bsd/dhcpcd/dist/src/route.c up to 1.1.1.8
external/bsd/dhcpcd/dist/src/route.h up to 1.1.1.4
external/bsd/dhcpcd/dist/src/sa.c up to 1.1.1.3
external/bsd/dhcpcd/dist/src/sa.h up to 1.1.1.2
external/bsd/dhcpcd/dist/src/script.c up to 1.1.1.4
external/bsd/dhcpcd/dist/src/script.h up to 1.1.1.2
external/bsd/dhcpcd/dist/src/dev/Makefile up to 1.1.1.1
external/bsd/dhcpcd/dist/src/dev/udev.c up to 1.1.1.2
external/bsd/dhcpcd/dist/tests/crypt/.gitignore up to 1.1.1.1
external/bsd/dhcpcd/dist/tests/crypt/GNUmakefile up to 1.1.1.1
external/bsd/dhcpcd/dist/tests/crypt/Makefile up to 1.1.1.2
external/bsd/dhcpcd/dist/tests/crypt/README.md up to 1.1.1.1
external/bsd/dhcpcd/dist/tests/crypt/run-test.c up to 1.1.1.2
external/bsd/dhcpcd/dist/tests/crypt/test.h up to 1.1.1.2
external/bsd/dhcpcd/dist/tests/crypt/test_hmac_md5.c up to 1.1.1.3
external/bsd/dhcpcd/dist/tests/Makefile up to 1.1.1.1
external/bsd/dhcpcd/dist/tests/eloop-bench/.gitignore up to 1.1.1.1
external/bsd/dhcpcd/dist/tests/eloop-bench/Makefile up to 1.1.1.2
external/bsd/dhcpcd/dist/tests/eloop-bench/README.md up to 1.1.1.1
external/bsd/dhcpcd/dist/tests/eloop-bench/eloop-bench.c up to 1.1.1.3
external/bsd/dhcpcd/dist/.arcconfig up to 1.1.1.1
external/bsd/dhcpcd/dist/.gitignore up to 1.4
external/bsd/dhcpcd/dist/BUILDING.md up to 1.1.1.2
external/bsd/dhcpcd/dist/LICENSE up to 1.1.1.2
external/bsd/dhcpcd/dist/Makefile up to 1.1.1.5
external/bsd/dhcpcd/dist/Makefile.inc up to 1.1.1.2
external/bsd/dhcpcd/dist/README.md up to 1.1.1.3
external/bsd/dhcpcd/dist/bpf-filter.h delete
external/bsd/dhcpcd/dist/common.c delete
external/bsd/dhcpcd/dist/arp.c delete
external/bsd/dhcpcd/dist/arp.h delete
external/bsd/dhcpcd/dist/auth.c delete
external/bsd/dhcpcd/dist/auth.h delete
external/bsd/dhcpcd/dist/dhcpcd.c delete
external/bsd/dhcpcd/dist/control.c delete
external/bsd/dhcpcd/dist/common.h delete
external/bsd/dhcpcd/dist/config.h delete
external/bsd/dhcpcd/dist/dhcp-common.c delete
external/bsd/dhcpcd/dist/control.h delete
external/bsd/dhcpcd/dist/defs.h delete
external/bsd/dhcpcd/dist/dev.h delete
external/bsd/dhcpcd/dist/dhcpcd-definitions.conf delete
external/bsd/dhcpcd/dist/dhcp-common.h delete
external/bsd/dhcpcd/dist/dhcp.c delete
external/bsd/dhcpcd/dist/dhcp.h delete
external/bsd/dhcpcd/dist/dhcp6.c delete
external/bsd/dhcpcd/dist/dhcp6.h delete
external/bsd/dhcpcd/dist/dhcpcd-run-hooks.8.in delete
external/bsd/dhcpcd/dist/dhcpcd-embedded.c delete
external/bsd/dhcpcd/dist/dhcpcd.8.in delete
external/bsd/dhcpcd/dist/dhcpcd-embedded.c.in delete
external/bsd/dhcpcd/dist/dhcpcd-embedded.h delete
external/bsd/dhcpcd/dist/dhcpcd-embedded.h.in delete
external/bsd/dhcpcd/dist/ipv4.c delete
external/bsd/dhcpcd/dist/if.c delete
external/bsd/dhcpcd/dist/dhcpcd-run-hooks.in delete
external/bsd/dhcpcd/dist/dhcpcd.h delete
external/bsd/dhcpcd/dist/dhcpcd.conf delete
external/bsd/dhcpcd/dist/dhcpcd.conf.5.in delete
external/bsd/dhcpcd/dist/duid.c delete
external/bsd/dhcpcd/dist/duid.h delete
external/bsd/dhcpcd/dist/eloop.c delete
external/bsd/dhcpcd/dist/eloop.h delete
external/bsd/dhcpcd/dist/if-bsd.c delete
external/bsd/dhcpcd/dist/if-options.c delete
external/bsd/dhcpcd/dist/if-options.h delete
external/bsd/dhcpcd/dist/if.h delete
external/bsd/dhcpcd/dist/crypt/hmac_md5.c delete
external/bsd/dhcpcd/dist/crypt/crypt.h delete
external/bsd/dhcpcd/dist/ipv4.h delete
external/bsd/dhcpcd/dist/ipv4ll.c delete
external/bsd/dhcpcd/dist/ipv6.c delete
external/bsd/dhcpcd/dist/ipv4ll.h delete
external/bsd/dhcpcd/dist/ipv6.h delete
external/bsd/dhcpcd/dist/ipv6nd.c delete
external/bsd/dhcpcd/dist/ipv6nd.h delete
external/bsd/dhcpcd/dist/script.c delete
external/bsd/dhcpcd/dist/script.h delete
external/bsd/dhcpcd/dist/dhcpcd-hooks/15-timezone delete
external/bsd/dhcpcd/dist/dhcpcd-hooks/01-test delete
external/bsd/dhcpcd/dist/dhcpcd-hooks/02-dump delete
external/bsd/dhcpcd/dist/dhcpcd-hooks/10-mtu delete
external/bsd/dhcpcd/dist/dhcpcd-hooks/10-wpa_supplicant delete
external/bsd/dhcpcd/dist/dhcpcd-hooks/20-resolv.conf delete
external/bsd/dhcpcd/dist/dhcpcd-hooks/29-lookup-hostname delete
external/bsd/dhcpcd/dist/dhcpcd-hooks/30-hostname delete
external/bsd/dhcpcd/dist/dhcpcd-hooks/50-ntp.conf delete
external/bsd/dhcpcd/dist/dhcpcd-hooks/50-ypbind delete
usr.sbin/postinstall/postinstall: revision 1.211-1.213
etc/rc.d/dhcpcd upto 1.5
doc/3RDPARTY manual edit

Import dhcpcd-7.0.7.
Adjust postinstal and rc file.
 1.175.2.10 03-Sep-2015  riz Pull up following revision(s) (requested by snj in ticket #968):
usr.sbin/postinstall/postinstall: revision 1.201
handle blacklistd properly.
 1.175.2.9 21-Aug-2015  snj Pull up following revision(s) (requested by jnemeth in ticket #957):
usr.sbin/postinstall/postinstall: revision 1.200 via patch
PR/50158 - Simon Burge -- postinstall does not know about blacklistd
 1.175.2.8 07-Aug-2015  msaitoh Pull up following revision(s) (requested by snj in ticket #937):
usr.sbin/postinstall/postinstall: revision 1.191 via patch
Add resize_root
 1.175.2.7 17-Jul-2015  snj Pull up following revision(s) (requested by jnemeth in ticket #874):
usr.sbin/postinstall/postinstall: revision 1.197
Check for an out of date /etc/fonts/fonts.conf and if so, forcibly
update it (it is not intended to be user editable). This is
primarily intended so that pkgsrc fonts installed in the new location
can be found.
 1.175.2.6 05-Jul-2015  snj Pull up following revision(s) (requested by martin in ticket #864):
usr.sbin/postinstall/postinstall: revision 1.196 via patch
PR install/50020: postinstall does not check for mandoc in /etc/man.conf.
Add a check, but ask the user to fix manually (the file could have local
modifications).
 1.175.2.5 16-May-2015  snj Pull up following revision(s) (requested by jnemeth in ticket #773):
usr.sbin/postinstall/postinstall: revisions 1.184, 1.187
Handle obsolete xen/pae-xen kernel modules; reported by John D. Baker.
--
add powerpc variants to the list of potentially obsolete modules to check
 1.175.2.4 18-Apr-2015  martin Apply patch to fix fallout from ticket #635, requested by tron in ticket
#707.
 1.175.2.3 14-Nov-2014  snj Pull up following revision(s) (requested by martin in ticket #220):
usr.sbin/postinstall/postinstall: revision 1.181-1.183
Make check_ids take an additional argument (the corresponding source
file) and grep that on error for the missing information, so the user
gets all the info needed how to "FIX MANUALLY".
--
Change the order of arguments to check_ids, placing the two file names
adjacent to each other. Also add a comment explaining the "start"
argument and the "SKIP" special value.
--
Fix tab/space inconsistency in comment.
 1.175.2.2 12-Aug-2014  martin Pull up following revision(s) (requested by apb in ticket #9):
usr.sbin/postinstall/postinstall: revision 1.176
FONTCONFIG_DIR not existing does not need to be fixed.
 1.175.2.1 12-Aug-2014  martin Pull up following revision(s) (requested by apb in ticket #8):
usr.sbin/postinstall/postinstall: revision 1.177
usr.sbin/postinstall/postinstall: revision 1.178
usr.sbin/postinstall/postinstall: revision 1.179
Check for and delete ${DEST_DIR}/@RUNDIR@, not /@RUNDIR@.
Also remove an unnecessary eval in do_dhcpcdrundir and
fix a typo in the description.
Quoting fixes in several eval commands.
In get_makevar, ask make to recursively expand the variable,
not just print the unexpanded value. This is done by
using make -V '${VAR}' instead of make -V 'VAR'.
 1.202.2.4 26-Apr-2017  pgoyette Sync with HEAD
 1.202.2.3 20-Mar-2017  pgoyette Sync with HEAD
 1.202.2.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.202.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.209.2.1 21-Apr-2017  bouyer Sync with HEAD
 1.214.4.2 14-May-2019  martin Pull up following revision(s) (requested by maxv in ticket #1265):
etc/rc.d/smtoff: revision 1.1
etc/rc.d/smtoff: revision 1.2
distrib/sets/lists/etc/mi: revision 1.258
etc/rc.d/smtoff: revision 1.3
etc/rc.d/smtoff: revision 1.4
etc/defaults/rc.conf: revision 1.148
etc/rc.d/Makefile: revision 1.103
usr.sbin/postinstall/postinstall: revision 1.226
etc/rc.d/Makefile: revision 1.104
etc/mtree/special: revision 1.167
share/man/man5/rc.conf.5: revision 1.180

Add smtoff, an rc.d script that disables Simultaneous Multi-Threading. It
parses the output of cpuctl, and executes "cpuctl offline" for each CPU
that has SmtID!=0.

The default is "smtoff=NO", which means that SMT remains enabled.
Restructure code a little.

Use quoting everywhere possibly useful (always the right way, except
in the few cases where it is wrong...)

Avoid using cut & grep (from /usr/bin) so script could run before /usr
is mounted (pity cpuctl is in /usr/sbin ...).

Use sysctl -n rather than attempting to parse its output.
install rc.d

No change... Previous log message should have said:
Install rc.d/smtoff

I should know better! Don't rely upon the way the shell implements
pipes. Skip the "error" printf from GetSmtId() as there is no easy
portable way to avoid it occurring (there are complicated ways) - but
we don't need it, there is no logical difference between "error" and ""
so just use the latter (if we get an ID, good, if there is nothing, then
there is none - saying 'error' does not mean anything.)

Remove comment, since there is no parsing anymore.
 1.214.4.1 10-Jul-2017  martin Pull up following revision(s) (requested by simonb in ticket #117):
usr.sbin/postinstall/postinstall: revision 1.216
Add npfd to the list of rc.d scripts to check.
--
 1.216.6.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.216.6.1 10-Jun-2019  christos Sync with HEAD
 1.216.4.4 26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.216.4.3 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.216.4.2 30-Sep-2018  pgoyette Ssync with HEAD
 1.216.4.1 28-Jul-2018  pgoyette Sync with HEAD
 1.21 08-Jan-2022  lukem postinstall(8); add -?. expand operation usage
 1.20 21-Nov-2018  martin Sprinkle a few references to .tar.xz files (as alternative to .tgz files)
 1.19 03-Jul-2017  wiz branches: 1.19.4; 1.19.6;
Remove workaround for ancient HTML generation code.
 1.18 21-Dec-2014  wiz Use Nx.
 1.17 21-Dec-2014  christos PR/49428: Travis Paul: Document x option.
 1.16 15-Aug-2012  apb branches: 1.16.10;
Remove the ability to specify multiple colon-separated fiel names with
a single "-s" option. Multiple "-s" options must now be used instead.
We have been printing a warning about this since 2008-09-14.
 1.15 22-Nov-2009  mbalmer branches: 1.15.6;
s/the the/the/
 1.14 15-Oct-2009  joerg Explicitly request literal mode after .Xr.
 1.13 04-Oct-2008  apb In both postinstall and etcupdate, in modes where the -s argument
refers to tgz files or to a directory in which tgz files have already
been extracted, make it an error for the files that should have come
from etc.tgz to be missing. This is intended to prevent users from
accidentally deleting necessary files when they run "postinstall -s
xetc.tgz fix".

Use the absence of .../etc/mtree/set.etc in the extracted directory
as a test for the error case.
 1.12 14-Sep-2008  apb Document that "ss tgz1:tgz2" was merely deprecated, not removed.
 1.11 07-Sep-2008  apb Document the change in meaning of "-s foo:bar". It now means a single
file or directory named "foo:bar". If you want the old meaning,
use "-s foo -s bar" instead.
 1.10 03-May-2008  apb branches: 1.10.2;
Try to make it clear that local changes will be overwritten
by "postinstall fix".
 1.9 30-Apr-2008  martin Convert TNF licenses to new 2 clause variant
 1.8 01-Dec-2007  wiz branches: 1.8.6;
Typo fix.
 1.7 02-Jun-2007  pavel branches: 1.7.4;
Separate postinstall checks in two groups: enabled and disabled by
default. Only the former checks/fixes are done if no items are given
on the command line. The latter must be requested explicitely.

Intended for "fixes" that are dangerous in some way, because they might
remove files that are still in use, for example.

Make the "sendmail" item disabled by default, it removes sendmail
configuration. Partly addresses PR install/36180.

Proposed on tech-userlevel, review and spelling fixes from lukem@.
 1.6 26-Mar-2007  apb * Make postinstall's -s option accept several tgz files, either by
repeating the -s option, or by using a colon-separated list.
* Update postinstall(8) man page with some of the text used in
etcupdate(8)'s description of the -s option.
* Remove an outdated comment about invoking etc/postinstall from
the directory in which the tgz is extracted.
* Rename orig_SRC_DIR to SRC_ARG and make related changes.

Reviewed by lukem and martti.
 1.5 18-Aug-2006  hubertf branches: 1.5.2;
Explain that etcupdate(8) may do the job that postinstall(8) can't
do. (Example: fix master.passwd to include _rwhod and whatnot)

OK'd by lukem@
 1.4 11-Aug-2006  hubertf Xref etcupdate from postinstall, and vice versa.
 1.3 12-Sep-2005  lukem branches: 1.3.2;
not all items can be fixed automatically
 1.2 17-Apr-2005  lukem branches: 1.2.2;
Update for move to /usr/sbin.
Add a HISTORY.
 1.1 17-Apr-2005  lukem Move /etc/postinstall (and the etc.tgz set) to /usr/sbin/postinstall
(and the base.tgz set).
 1.2.2.4 15-Sep-2005  tron Pull up following revision(s) (requested by lukem in ticket #787):
usr.sbin/postinstall/postinstall.8: revision 1.3
not all items can be fixed automatically
 1.2.2.3 20-Apr-2005  tron Pull up revision 1.2 (requested by lukem in ticket #166):
Update for move to /usr/sbin.
Add a HISTORY.
 1.2.2.2 20-Apr-2005  tron Pull up revision 1.1 (requested by lukem in ticket #164):
Move /etc/postinstall (and the etc.tgz set) to /usr/sbin/postinstall
(and the base.tgz set).
 1.2.2.1 17-Apr-2005  tron file postinstall.8 was added on branch netbsd-3 on 2005-04-20 11:20:13 +0000
 1.3.2.2 02-Sep-2006  riz Pull up following revision(s) (requested by hubertf in ticket #101):
usr.sbin/postinstall/postinstall.8: revision 1.5
Explain that etcupdate(8) may do the job that postinstall(8) can't
do. (Example: fix master.passwd to include _rwhod and whatnot)
OK'd by lukem@
 1.3.2.1 02-Sep-2006  tron Pull up following revision(s) (requested by hubertf in ticket #98):
usr.sbin/postinstall/postinstall.8: revision 1.4
usr.sbin/etcupdate/etcupdate.8: revision 1.12
Xref etcupdate from postinstall, and vice versa.
 1.5.2.2 01-Jul-2007  bouyer Pull up following revision(s) (requested by pavel in ticket #752):
distrib/sets/lists/etc/mi: revision 1.190
distrib/sets/lists/misc/mi: revision 1.145
usr.sbin/postinstall/postinstall: revisions 1.41, 1.42
usr.sbin/postinstall/postinstall.8: revision 1.7

Separate postinstall checks in two groups: enabled and disabled by
default. Only the former checks/fixes are done if no items are given
on the command line. The latter must be requested explicitely.
Intended for "fixes" that are dangerous in some way, because they might
remove files that are still in use, for example.

Make the "sendmail" item disabled by default, it removes sendmail
configuration. Partly addresses PR install/36180.
Proposed on tech-userlevel, review and spelling fixes from lukem@.

Remove the remaining sendmail config files (including everything in
/usr/share/sendmail) from the obsolete list. Instead, remove them in the
"sendmail" postinstall item, which is disabled by default, to prevent
losing sendmail configuration on upgrade. Fixes the rest of
PR install/36180.
 1.5.2.1 16-Apr-2007  bouyer branches: 1.5.2.1.2;
Pull up following revision(s) (requested by apb in ticket #571):
usr.sbin/postinstall/postinstall.8: revision 1.6
usr.sbin/postinstall/postinstall: revision 1.39
usr.sbin/etcupdate/etcupdate.8: revision 1.13
usr.sbin/etcupdate/etcupdate: revision 1.34
Allow both etcupdate and postinstall to accept multiple
.tgz files (e.g. etc.tgz and xetc.tgz). Make etcupdate
invoke postinstall.
 1.5.2.1.2.1 03-Sep-2007  wrstuden Sync w/ NetBSD-4-RC_1
 1.7.4.1 09-Jan-2008  matt sync with HEAD
 1.8.6.1 18-May-2008  yamt sync with head.
 1.10.2.2 24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.10.2.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.15.6.1 30-Oct-2012  yamt sync with head
 1.16.10.1 25-Jan-2015  martin Pull up following revision(s) (requested by snj in ticket #449):
usr.sbin/postinstall/postinstall.8: revision 1.17, 1.18

PR/49428: Travis Paul: Document x option.
Use Nx.
 1.19.6.1 10-Jun-2019  christos Sync with HEAD
 1.19.4.1 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.72 04-Jun-2025  rillig all: fix some "internal option -J" warnings from make
 1.71 27-Oct-2024  spz PR bin/58476: second half: be more selective with the strings to update
for blacklistd -> blocklistd
issue pointed out and patch supplied by Timo Buhrmester
 1.70 23-Oct-2024  rin postinstall: Do not obsolete 10-sub-pixel-rgb.conf

This file revived for fontconfig 2.14.1, and has been recognized
both as valid and obsoleted file at the same time.

Fix PR misc/57547 and PR bin/58406.

No release branches are affected.
 1.69 12-Oct-2024  uwe postinstall: obsolete_libs - update comment

... that mentions a variable name in an AWK script far, far away.
 1.68 12-Oct-2024  spz (typo) it used to be /var/db/blacklistd.db not /var/db/blacklist.db
 1.67 10-Oct-2024  uwe postinstall: get rid of exclude -t

exclude_libs() no longer uses it, so revert exclude() to what it was
before the -t was introduced.

It can probably be further improved, but I'm not sure why it needs
eval and why it wants to anchor at the beginning of the line only
(something to do with e.g. blocklist vs. blocklistd), and I don't have
time to investigate this properly at the moment.
 1.66 10-Oct-2024  uwe postinstall: simplify exclude_libs

Don't compose a baroque ERE to filter the list of libraries. grep can
match whole lines with -x so that takes care of the anchoring. And
grep can also take multiple patterns, one per line, as a single
argument - which the man page of our rather out of date version
doesn't adequately document.

While here describe the downgrade scenario that it is intended to
handle.
 1.65 10-Oct-2024  uwe postinstall: exclude_libs - use find/readlink instead of ls/awk

This doesn't only feels right, but also gets rid of a bogus empty line
in the list of targets (for all the files that are not symlinks).
 1.64 10-Oct-2024  uwe postinstall: clarify/simplify awk script in _obsolete_libs

Add comments and rename variables to better reflect their purpose.
Emit plain filenames, not absolute paths, b/c that's what exclude_libs
expects. While here explain what might trigger the exclude_libs
scenario (downgrades).

PR bin/58697: postinstall(8) removes non-obsolete compat libs
 1.63 05-Apr-2024  christos branches: 1.63.2;
remove dup named dir
 1.62 10-Mar-2024  rillig postinstall: fix parameter order in usage message
 1.61 09-Mar-2024  rillig postinstall: fix endless loop (since 2024-03-07)
 1.60 07-Mar-2024  christos no local in loops, simplify eval (thanks kre)
 1.59 07-Mar-2024  christos - fix named.conf (remove dnssec-enable option)
- use proper local variables instead of adding _ or other prefixes.
- centralize rm use
- use grep -q instead of > /dev/null
- reduce constant duplication
 1.58 29-Jan-2024  riastradh postinstall(8): Don't say /etc/openssl/certs.conf already exists.

It's confusing when all the other `postinstall fix' actions are
silent in the event they don't have anything to do.

PR install/57885
 1.57 18-Oct-2023  riastradh postinstall(8): Use /usr/sbin/certctl.

Obviates need to have /usr/sbin in PATH when running this.

XXX pullup-10
 1.56 06-Sep-2023  riastradh postinstall(8): Modify default certs.conf.

When manually configured /etc/openssl/certs is detected, just
uncomment the `#manual' line in the default certs.conf rather than
writing a new one. That way, you can switch to certctl-managed and
still get the default path by just deleting /etc/openssl/certs and
re-commenting the `manual' line.
 1.55 03-Sep-2023  riastradh postinstall(8): Handle various certs.conf scenarios gracefully.

Tested the following scenarios:

1. fresh install
empty /etc/openssl/certs
default /etc/openssl/certs.conf
- opensslcertsconf
[x] check: pass
[x] fix: pass -- nothing
- opensslcertsrehash
[x] check: fail -- needs rehash
[x] fix: pass -- quietly rehash successfully (go to 4)

2. fresh upgrade
empty /etc/openssl/certs
no /etc/openssl/certs.conf
- opensslcertsconf
[x] check: fail -- complain missing /etc/openssl/certs.conf
[x] fix: pass -- install default /etc/openssl/certs.conf (go to 1)
- opensslcertsrehash
[x] check: fail -- complain missing /etc/openssl/certs.conf
- [x] fix: fail -- complain missing /etc/openssl/certs.conf

3. upgrade from certctl, changes to certs
certctl-managed /etc/openssl/certs
default /etc/openssl/certs.conf
- opensslcertsconf
[x] check: pass
[x] fix: pass -- nothing
- opensslcertsrehash
[x] check: fail -- needs rehash
[x] fix: pass -- quietly rehash successfully (go to 4)

4. upgrade from certctl, no changes to certs
certctl-managed /etc/openssl/certs
default /etc/openssl/certs.conf
- opensslcertsconf
[x] check: pass
[x] fix: pass -- nothing
- opensslcertsrehash
[x] check: pass
[x] fix: pass -- quietly rehash successfully (go to 4)

5. upgrade from mozilla-rootcerts
populated /etc/openssl/certs
no /etc/openssl/certs.conf
- opensslcertsconf:
[x] check: fail -- complain missing /etc/openssl/certs.conf
[x] fix: pass -- install manual /etc/openssl/certs.conf (go to 7)
- opensslcertsrehash:
[x] check: fail -- complain missing /etc/openssl/certs.conf
[x] fix: fail -- complain missing /etc/openssl/certs.conf

6. upgrade from mozilla-rootcerts with etcupdate naively
populated /etc/openssl/certs
default /etc/openssl/certs.conf
- opensslcertsconf:
[x] check: pass
[x] fix: pass -- nothing
- opensslcertsrehash:
[x] check: fail -- complain mismatched certs/ and certs.conf
[x] fix: fail -- complain mismatched certs/ and certs.conf

7. upgrade from mozilla-rootcerts with etcupdate manually
populated /etc/openssl/certs
manual /etc/openssl/certs.conf
- opensslcertsconf:
[x] check: pass
[x] fix: pass -- nothing
- opensslcertsrehash:
[x] check: pass
[x] fix: pass -- skip rehash because manual (go to 7)

XXX Someone should draft automatic tests for postinstall. It has a
very good track record, but it sure would be nice to automate this
testing rather than redo it each time I make a tiny change.
 1.54 28-Aug-2023  riastradh postinstall(8): Fail if `certctl rehash' fails.

Not using `set -e' here, evidently (maybe we should), so the separate
return 0 suppressed the error.
 1.53 26-Aug-2023  riastradh postinstall(8): Add opensslcerts item to regen /etc/openssl/certs.

Works only with destdir /, since it relies on running openssl(1),
which is not available as a tool or required in the cross-build
environment.
 1.52 21-Jun-2023  mrg adjust for new fontconfig files.
 1.51 29-May-2022  andvar branches: 1.51.2;
fix various typos in comments and log messages.
 1.50 08-Jan-2022  lukem postinstall: improve -s usage

Reword -s SRC_ARG to be a bit clearer as to the variations, and sync
more with postinstall(8).
 1.49 08-Jan-2022  lukem postinstall: tweak -a and -m usage
 1.48 08-Jan-2022  lukem postinstall: add -? to usage
 1.47 08-Jan-2022  lukem postinstall: add -?. improve option errors

Support -? to show help.
Implemented using getopts "leading colon optstring" feature.
Improve error messages for unknown options and missing arguments.
 1.46 08-Jan-2022  lukem postinstall: usage improvements

Show options alphabetically.
Use UPPER_CASE instead of lowercase as the convention for argument names.
Provide per-OPERATION argument usage.
Implement options alphabetically.
 1.45 08-Jan-2022  lukem postinstall: improve validation and help

Validate the operation and items before extracting any etc.tgz,
so that help or errors are displayed quicker, for a better user
experience.

Style:
- Rename todo to ITEMS.
- Order processing of list after check.
- Ensure DIFF_OPT is initialised, for consistency.
 1.44 08-Jan-2022  lukem postinstall: style tweaks

Fix ... in comments and internal errors.
Sort variables declared at top of main(), for easier review.
 1.43 08-Jan-2022  lukem postinstall: help to stdout. usage tweaks

When invoked as "help" or "usage", send the usage to stdout
instead of stderr, so that it's easier to pipe to a pager.

Explicitly warn that the operation is missing.

Tweak the usage; "operation" instead of "op", no need for [] around ...
 1.42 07-Jan-2022  lukem postinstall: fix x11 migration of /usr/X11R6/lib/X11

Fix the x11 check if /usr/X11R6/lib/X11/* needs to migrate to /etc/X11/*
by ensuring that the former actually is detected.

Avoids false migration errors for paths such as /fs if /usr/X11R6
doesn't exist, such as:
x11 check:
Migrate /fs to /etc/X11/fs

The original implemention handled this correctly, but the bug
crept in postinstall 1.110 on 2010/11/21.
 1.41 21-Aug-2021  andvar s/accidentaly/accidentally/
 1.40 21-Aug-2021  andvar s/helt/held+s/eroneously/erroneously/+s/splitted/split/+s/recommented/recommended/
 1.39 07-Jun-2021  mlelstv Don't overwrite changed autofs config files.
 1.38 25-Apr-2021  lukem postinstall: re-align list output
 1.37 25-Apr-2021  lukem postinstall: sort the items. keep obsolete* last

Consistency and quality of life improvements to postinstall:

Order all of the items (including disabled) alphabetically.
Consistent comment style before each item block.
Move other functions used by do_*() before rather than after do_*().
 1.36 25-Apr-2021  lukem postinstall: comment and usage style

Use NOTE: for comments to be aware of.
Remove double space before "fix|check" in some items.
 1.35 25-Apr-2021  lukem postinstall: ensure SRC_DIR and DEST_DIR are quoted
 1.34 25-Apr-2021  lukem postinstall: use correct DEST_DIR in obsolete_stand
 1.33 28-Aug-2020  christos missing quote
 1.32 28-Aug-2020  christos Restrict npf.conf fixes to "blacklistd" -> "blocklistd"
 1.31 07-Jul-2020  simonb Sort missing IDs (users and groups) by the numeric ID.
 1.30 29-Jun-2020  riastradh Nix trailing whitespace.
 1.29 22-Jun-2020  rin Fix do_blocklist:
- Respect destination directory specified by -d option.
- Accept check and fix options. For the former, do not modify anything as
users normally expect.
 1.28 20-Jun-2020  riastradh Nix trailing whitespace.
 1.27 15-Jun-2020  christos handle /etc/blacklistd.conf
 1.26 15-Jun-2020  christos correct blocklist script
- removal of rc file is handled by obsolete
- use grep to find if we need more changes
- fix rc population
 1.25 15-Jun-2020  christos fix reversed mv, pointed out by wiz@
 1.24 15-Jun-2020  christos deal with blacklist -> blocklist
 1.23 03-Jun-2020  roy Ensure the dhcpcd log socket is removed.
 1.22 31-May-2020  roy postinstall: Move files out of dhcpcd chroot
 1.21 15-May-2020  christos Add a function to remove the debug bits of the stand files.
 1.20 19-Apr-2020  roy postinstall: ensure contents_owner fix fails on find errors

The issue is that find won't pass anything to xargs and that returns 0.
So replace the usage of xargs with -exec.
 1.19 09-Apr-2020  roy branches: 1.19.2;
Fix dhcpcd $DEST_DIR support
 1.18 06-Apr-2020  roy postinstall: fix contents_owner to return an error on error

find returning nothing via stdout but does return an error is an error.
Fixes the case where dhcpcd chroot db directory isn't owned by _dhcpcd.
 1.17 02-Apr-2020  roy postinstall: add checks for _dhcpcd to do_uid and do_gid

Thanks to jmcneill@
 1.16 02-Apr-2020  roy postinstall: move dhcpcd files to the chroot
 1.15 25-Feb-2020  nakayama Fix the fixup script to follow the URL change in /etc/motd (http->https).

PR install/54990, pullup-9
 1.14 30-Jan-2020  christos change the autofs file to be user writable.
 1.13 30-Jan-2020  christos populate autofs files
 1.12 29-Dec-2019  tsutsui Make sure rc, rc.subr, and rc.shutdown are properly updated.

Currently there is no info which rc* files should be updated
or not on upgrade (at least rc.conf and rc.local shouldn't),
so put back an explicit list in the postinstall script.
"Go for it" by christos@ in PR/54741.

Should be pulled up to netbsd-9.
 1.11 22-Dec-2019  christos PR/54730: Izumi Tsutsui: obsolete etc files are not being cleaned up on
an upgrade build.
 1.10 04-Dec-2019  christos PR/54730: Izumi Tsutsui: Use /var/db/obsolete/<set> to remove obsolete rc.d
files when not in $SOURCEMODE.
 1.9 12-Nov-2019  christos remove debugging.
 1.8 30-Oct-2019  prlw1 Add nvmm group.
 1.7 24-Sep-2019  nakayama Add ${DEST_DIR} prefix to check target directory not host directory.
 1.6 12-Sep-2019  uwe exclude_libs - redirect ls 2> /dev/null so that the user is not
spammed with errors for directories without any libraries; the most
common case in the wild would be empty /usr/libdata/debug. Add -d to
ls for good measure while here.
 1.5 15-Jun-2019  christos branches: 1.5.2;
exclude shared libraries that are currently in use from removal.
 1.4 14-Jun-2019  christos cleanup obsolete file selection from sets and refactor font synchronization.
The font config files are not in sets, so they are still hard-coded.
 1.3 14-Jun-2019  christos select the powerd scripts from the sets
 1.2 14-Jun-2019  christos make the script MI again (same across all archs)
 1.1 14-Jun-2019  christos build dynamically the list of compat archsubdirs.
 1.5.2.6 11-Mar-2024  martin Pull up following revision(s) (requested by christos in ticket #1813):

etc/named.conf: revision 1.11
usr.sbin/postinstall/postinstall.in: revision 1.59
external/mpl/bind/dist/lib/isc/netmgr/netmgr-int.h: revision 1.11

Make sure that the extra field is maximally aligned since it is used for
other struct storage.
- fix named.conf (remove dnssec-enable option)
- use proper local variables instead of adding _ or other prefixes.
- centralize rm use
- use grep -q instead of > /dev/null
- reduce constant duplication

remove obsolete option "dnssec-enable"
 1.5.2.5 07-Jul-2020  martin Pull up following revision(s) (requested by simonb in ticket #989):

usr.sbin/postinstall/postinstall.in: revision 1.31

Sort missing IDs (users and groups) by the numeric ID.
 1.5.2.4 27-Feb-2020  martin Pull up following revision(s) (requested by nakayama in ticket #738):

usr.sbin/postinstall/postinstall.in: revision 1.15

Fix the fixup script to follow the URL change in /etc/motd (http->https).
PR install/54990, pullup-9
 1.5.2.3 02-Jan-2020  martin Pull up following revision(s) (requested by tsutsui in ticket #592):

usr.sbin/postinstall/postinstall.in: revision 1.9
usr.sbin/postinstall/postinstall.in: revision 1.10
usr.sbin/postinstall/postinstall.in: revision 1.11
usr.sbin/postinstall/postinstall.in: revision 1.12

remove debugging.

PR/54730: Izumi Tsutsui: Use /var/db/obsolete/<set> to remove obsolete rc.d
files when not in $SOURCEMODE.


PR/54730: Izumi Tsutsui: obsolete etc files are not being cleaned up on
an upgrade build.

Make sure rc, rc.subr, and rc.shutdown are properly updated.

Currently there is no info which rc* files should be updated
or not on upgrade (at least rc.conf and rc.local shouldn't),
so put back an explicit list in the postinstall script.
"Go for it" by christos@ in PR/54741.

Should be pulled up to netbsd-9.
 1.5.2.2 10-Nov-2019  martin Pull up following revision(s) (requested by maxv in ticket #405):

usr.sbin/nvmmctl/nvmmctl.8: revision 1.2
lib/libnvmm/libnvmm.3: revision 1.24
sys/dev/nvmm/nvmm.h: revision 1.11
lib/libnvmm/libnvmm.3: revision 1.25
sys/dev/nvmm/x86/nvmm_x86.h: revision 1.16
sys/dev/nvmm/nvmm.h: revision 1.12
sys/dev/nvmm/x86/nvmm_x86.h: revision 1.17
tests/lib/libnvmm/h_mem_assist.c: revision 1.12
sys/dev/nvmm/x86/nvmm_x86.h: revision 1.18
share/mk/bsd.hostprog.mk: revision 1.82
lib/libnvmm/libnvmm.c: revision 1.15
distrib/sets/lists/base/md.amd64: revision 1.281
tests/lib/libnvmm/h_mem_assist.c: revision 1.13
lib/libnvmm/libnvmm.c: revision 1.16
tests/lib/libnvmm/h_mem_assist.c: revision 1.14
lib/libnvmm/libnvmm_x86.c: revision 1.32
lib/libnvmm/libnvmm.c: revision 1.17
tests/lib/libnvmm/h_mem_assist.c: revision 1.15
lib/libnvmm/libnvmm_x86.c: revision 1.33
lib/libnvmm/libnvmm.c: revision 1.18
usr.sbin/nvmmctl/Makefile: revision 1.1
tests/lib/libnvmm/h_mem_assist_asm.S: revision 1.7
tests/lib/libnvmm/h_mem_assist.c: revision 1.16
lib/libnvmm/libnvmm_x86.c: revision 1.34
usr.sbin/nvmmctl/Makefile: revision 1.2
tests/lib/libnvmm/h_mem_assist_asm.S: revision 1.8
tests/lib/libnvmm/h_mem_assist.c: revision 1.17
sys/dev/nvmm/nvmm_internal.h: revision 1.13
lib/libnvmm/libnvmm_x86.c: revision 1.35
lib/libnvmm/libnvmm_x86.c: revision 1.36
usr.sbin/postinstall/postinstall.in: revision 1.8
lib/libnvmm/libnvmm_x86.c: revision 1.37
lib/libnvmm/libnvmm_x86.c: revision 1.38
lib/libnvmm/libnvmm_x86.c: revision 1.39
usr.sbin/Makefile: revision 1.282
lib/libnvmm/nvmm.h: revision 1.13
lib/libnvmm/nvmm.h: revision 1.14
lib/libnvmm/nvmm.h: revision 1.15
sys/dev/nvmm/nvmm.c: revision 1.23
lib/libnvmm/nvmm.h: revision 1.16
sys/dev/nvmm/nvmm.c: revision 1.24
lib/libnvmm/nvmm.h: revision 1.17
sys/dev/nvmm/nvmm.c: revision 1.25
tests/lib/libnvmm/h_io_assist.c: revision 1.9
etc/MAKEDEV.tmpl: revision 1.209
tests/lib/libnvmm/h_io_assist.c: revision 1.10
tests/lib/libnvmm/h_io_assist.c: revision 1.11
etc/group: revision 1.35
distrib/sets/lists/man/mi: revision 1.1660
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.40
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.41
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.42
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.43
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.44
sys/dev/nvmm/x86/nvmm_x86_svm.c: revision 1.51
sys/dev/nvmm/nvmm_ioctl.h: revision 1.8
sys/dev/nvmm/x86/nvmm_x86_svm.c: revision 1.52
sys/dev/nvmm/nvmm_ioctl.h: revision 1.9
sys/dev/nvmm/x86/nvmm_x86_svm.c: revision 1.53
usr.sbin/nvmmctl/nvmmctl.c: revision 1.1
lib/libnvmm/libnvmm.3: revision 1.20
distrib/sets/lists/debug/md.amd64: revision 1.106
lib/libnvmm/libnvmm.3: revision 1.21
lib/libnvmm/libnvmm.3: revision 1.22
usr.sbin/nvmmctl/nvmmctl.8: revision 1.1
lib/libnvmm/libnvmm.3: revision 1.23

Fix incorrect parsing: the R/M field uses a special GPR map when the
address size is 16 bits, regardless of the actual operating mode. With
this special map there can be two registers referenced at once, and
also disp16-only.
Implement this special behavior, and add associated tests. While here
simplify a few things.
With this in place, the Windows 95 installer initializes correctly.
Part of PR/54611.
add missing initializer
Implement XCHG, add associated tests, and add comments to explain. With
this in place the Windows 95 installer completes successfuly.
Part of PR/54611.
Improve nvmm_vcpu_dump().
Put back 'default', because llvm apparently doesn't realize that all cases
are covered in the switch.
Miscellaneous changes in NVMM, to address several inconsistencies and
issues in the libnvmm API.
- Rename NVMM_CAPABILITY_VERSION to NVMM_KERN_VERSION, and check it in
libnvmm. Introduce NVMM_USER_VERSION, for future use.
- In libnvmm, open "/dev/nvmm" as read-only and with O_CLOEXEC. This is to
avoid sharing the VMs with the children if the process forks. In the
NVMM driver, force O_CLOEXEC on open().
- Rename the following things for consistency:
nvmm_exit* -> nvmm_vcpu_exit*
nvmm_event* -> nvmm_vcpu_event*
NVMM_EXIT_* -> NVMM_VCPU_EXIT_*
NVMM_EVENT_INTERRUPT_HW -> NVMM_VCPU_EVENT_INTR
NVMM_EVENT_EXCEPTION -> NVMM_VCPU_EVENT_EXCP
Delete NVMM_EVENT_INTERRUPT_SW, unused already.
- Slightly reorganize the MI/MD definitions, for internal clarity.
- Split NVMM_VCPU_EXIT_MSR in two: NVMM_VCPU_EXIT_{RD,WR}MSR. Also provide
separate u.rdmsr and u.wrmsr fields. This is more consistent with the
other exit reasons.
- Change the types of several variables:
event.type enum -> u_int
event.vector uint64_t -> uint8_t
exit.u.*msr.msr: uint64_t -> uint32_t
exit.u.io.type: enum -> bool
exit.u.io.seg: int -> int8_t
cap.arch.mxcsr_mask: uint64_t -> uint32_t
cap.arch.conf_cpuid_maxops: uint64_t -> uint32_t
- Delete NVMM_VCPU_EXIT_MWAIT_COND, it is AMD-only and confusing, and we
already intercept 'monitor' so it is never armed.
- Introduce vmx_exit_insn() for NVMM-Intel, similar to svm_exit_insn().
The 'npc' field wasn't getting filled properly during certain VMEXITs.
- Introduce nvmm_vcpu_configure(). Similar to nvmm_machine_configure(),
but as its name indicates, the configuration is per-VCPU and not per-VM.
Migrate and rename NVMM_MACH_CONF_X86_CPUID to NVMM_VCPU_CONF_CPUID.
This becomes per-VCPU, which makes more sense than per-VM.
- Extend the NVMM_VCPU_CONF_CPUID conf to allow triggering VMEXITs on
specific leaves. Until now we could only mask the leaves. An uint32_t
is added in the structure:
uint32_t mask:1;
uint32_t exit:1;
uint32_t rsvd:30;
The two first bits select the desired behavior on the leaf. Specifying
zero on both resets the leaf to the default behavior. The new
NVMM_VCPU_EXIT_CPUID exit reason is added.
Three changes in libnvmm:
- Add 'mach' and 'vcpu' backpointers in the nvmm_io and nvmm_mem
structures.
- Rename 'nvmm_callbacks' to 'nvmm_assist_callbacks'.
- Rename and migrate NVMM_MACH_CONF_CALLBACKS to NVMM_VCPU_CONF_CALLBACKS,
it now becomes per-VCPU.
Update the libnvmm man page:
- Sync the naming with reality.
- Replace "relevant" by "desired" and "virtualizer" by "emulator", closer
to what I meant.
- Add a "VCPU Configuration" section.
- Add a "Machine Ownership" section.
Add the "nvmm" group, and make nvmm_init() public. Sent to tech-kern@ a few
days ago.
Use the new PTE naming, and define CR3_FRAME_* separately. No functional
change.
Add a new VCPU conf option, that allows userland to request VMEXITs after a
TPR change. This is supported on all Intel CPUs, and not-too-old AMD CPUs.
The reason for wanting this option is that certain OSes (like Win10 64bit)
manage interrupt priority in hardware via CR8 directly, and for these OSes,
the emulator may want to sync its internal TPR state on each change.
Add two new fields in cap.arch, to report the conf capabilities. Report TPR
only on Intel for now, not AMD, because I don't have a recent AMD CPU on
which to test.
Mask CPUID leaf 0x0A on Intel, because we don't want the guest to try (and
fail) to probe the PMC MSRs. This avoids "Unexpected WRMSR" warnings in
qemu-nvmm.
Add PCID support in the guests. This speeds up most 64bit guests, because
since Meltdown, everybody uses PCID (including NetBSD).
Change the way root_owner works: consider the calling process as root_owner
not if it has root privileges, but if the /dev/nvmm device was opened with
write permissions. Introduce the undocumented nvmm_root_init() function to
achieve that.
The goal is to simplify the logic and have more granularity, eg if we want
a monitoring agent to access VMs but don't want to give this agent real
root access on the system.
A few changes:
- Use smaller types in struct nvmm_capability.
- Use smaller type for nvmm_io.port.
- Switch exitstate to a compacted structure.
Add nram in struct nvmm_ctl_mach_info.
Add nvmmctl, with two commands for now.
Macro tidyness.
Sort SEE ALSO.
should be fork(2), noticed by wiz
Add debug entry for newly introduced nvmmctl utility.
Annotate a covering switch as such to avoid warnings about missing
returns.
Forgot to put nvmmctl in the "nvmm" group.
Add nvmm group.
 1.5.2.1 25-Sep-2019  martin Pull up following revision(s) (requested by nakayama in ticket #240):

usr.sbin/postinstall/postinstall.in: revision 1.6
usr.sbin/postinstall/postinstall.in: revision 1.7

exclude_libs - redirect ls 2> /dev/null so that the user is not
spammed with errors for directories without any libraries; the most
common case in the wild would be empty /usr/libdata/debug. Add -d to
ls for good measure while here.

-

Add ${DEST_DIR} prefix to check target directory not host directory.
 1.19.2.3 21-Apr-2020  martin Sync with HEAD
 1.19.2.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.19.2.1 09-Apr-2020  martin file postinstall.in was added on branch phil-wifi on 2020-04-13 08:05:56 +0000
 1.51.2.4 31-Oct-2024  martin Pull up following revision(s) (requested by spz in ticket #992):

usr.sbin/postinstall/postinstall.in: revision 1.68
usr.sbin/postinstall/postinstall.in: revision 1.71

(typo) it used to be /var/db/blacklistd.db not /var/db/blacklist.db

PR bin/58476: second half: be more selective with the strings to update
for blacklistd -> blocklistd
issue pointed out and patch supplied by Timo Buhrmester
 1.51.2.3 11-Mar-2024  martin Pull up following revision(s) (requested by christos in ticket #622):

etc/named.conf: revision 1.11
usr.sbin/postinstall/postinstall.in: revision 1.59
external/mpl/bind/dist/lib/isc/netmgr/netmgr-int.h: revision 1.11
usr.sbin/postinstall/postinstall.in: revision 1.60
usr.sbin/postinstall/postinstall.in: revision 1.61

Make sure that the extra field is maximally aligned since it is used for
other struct storage.
- fix named.conf (remove dnssec-enable option)
- use proper local variables instead of adding _ or other prefixes.
- centralize rm use
- use grep -q instead of > /dev/null
- reduce constant duplication

no local in loops, simplify eval (thanks kre)

postinstall: fix endless loop (since 2024-03-07)

remove obsolete option "dnssec-enable"
 1.51.2.2 03-Feb-2024  martin Pull up following revision(s) (requested by riastradh in ticket #573):

usr.sbin/postinstall/postinstall.in: revision 1.58

postinstall(8): Don't say /etc/openssl/certs.conf already exists.

It's confusing when all the other `postinstall fix' actions are
silent in the event they don't have anything to do.

PR install/57885
 1.51.2.1 04-Sep-2023  martin Pull up following revision(s) (requested by riastradh in ticket #343):

external/mpl/mozilla-certdata/dist/certdata.txt: revision 1.1.1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_Assured_ID_Root_G3.pem: revision 1.1
distrib/sets/lists/man/mi: revision 1.1764
external/mpl/mozilla-certdata/share/certs/ACCVRAIZ1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem: revision 1.1
tests/usr.sbin/certctl/certs4/DigiCert_Global_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Sectigo_Public_Server_Authentication_Root_R46.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GlobalSign_Secure_Mail_Root_E45.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/SSL.com_Root_Certification_Authority_ECC.pem: revision 1.1
tests/usr.sbin/certctl/certs3/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.1.pem: revision 1.1
tests/usr.sbin/certctl/certs2/GTS_Root_R1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/BJCA_Global_Root_CA1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Izenpe.com.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Amazon_Root_CA_2.pem: revision 1.1
tests/usr.sbin/certctl/certs4/Makefile: revision 1.1
external/mpl/mozilla-certdata/share/certs/Global_Chambersign_Root_-_2008.pem: revision 1.1
distrib/sets/lists/etc/mi: revision 1.272
external/mpl/mozilla-certdata/share/certs/ISRG_Root_X1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/TunTrust_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/D-TRUST_BR_Root_CA_1_2020.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/SSL.com_Root_Certification_Authority_RSA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Certum_EC-384_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Security_Communication_RootCA3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/IdenTrust_Public_Sector_Root_CA_1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Entrust_Root_Certification_Authority_-_EC1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_Global_Root_G2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GlobalSign_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/SZAFIR_ROOT_CA2.pem: revision 1.1
tests/usr.sbin/certctl/t_certctl.sh: revision 1.1
external/mpl/mozilla-certdata/share/certs/UCA_Global_G2_Root.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/HARICA_Client_ECC_Root_CA_2021.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/COMODO_ECC_Certification_Authority.pem: revision 1.1
tests/usr.sbin/certctl/t_certctl.sh: revision 1.2
tests/usr.sbin/certctl/certs1/DigiCert_Global_Root_CA.pem: revision 1.1
tests/usr.sbin/certctl/t_certctl.sh: revision 1.3
external/mpl/mozilla-certdata/Makefile: revision 1.1
external/mpl/mozilla-certdata/share/certs/DIGITALSIGN_GLOBAL_ROOT_RSA_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GTS_Root_R2.pem: revision 1.1
usr.sbin/certctl/certctl.sh: revision 1.1
tests/usr.sbin/certctl/t_certctl.sh: revision 1.4
external/mpl/mozilla-certdata/share/certs/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/SwissSign_Silver_CA_-_G2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Starfield_Class_2_CA.pem: revision 1.1
usr.sbin/certctl/certctl.sh: revision 1.2
tests/usr.sbin/certctl/t_certctl.sh: revision 1.5
usr.sbin/certctl/certctl.sh: revision 1.3
tests/usr.sbin/certctl/t_certctl.sh: revision 1.6
usr.sbin/certctl/certctl.sh: revision 1.4
tests/usr.sbin/certctl/t_certctl.sh: revision 1.7
external/mpl/mozilla-certdata/share/certs/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem: revision 1.1
tests/usr.sbin/certctl/t_certctl.sh: revision 1.8
external/mpl/mozilla-certdata/share/certs/Sectigo_Public_Server_Authentication_Root_E46.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Hongkong_Post_Root_CA_3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Entrust_Root_Certification_Authority_-_G4.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Security_Communication_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Go_Daddy_Root_Certificate_Authority_-_G2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/ANF_Secure_Server_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Chambers_of_Commerce_Root_-_2008.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Go_Daddy_Class_2_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/USERTrust_RSA_Certification_Authority.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Trustwave_Global_ECC_P384_Certification_Authority.pem: revision 1.1
external/mpl/mozilla-certdata/share/certdata.awk: revision 1.1
external/mpl/mozilla-certdata/share/certs/HARICA_TLS_ECC_Root_CA_2021.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Atos_TrustedRoot_Root_CA_ECC_G2_2020.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Sectigo_Public_Email_Protection_Root_R46.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/TrustCor_ECA-1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GlobalSign_ECC_Root_CA_-_R5.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/SSL.com_TLS_ECC_Root_CA_2022.pem: revision 1.1
usr.sbin/Makefile: revision 1.292
external/mpl/mozilla-certdata/share/certs/AffirmTrust_Premium.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/CA_Disig_Root_R2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/emSign_Root_CA_-_C1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GlobalSign_Root_CA_-_R6.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_Trusted_Root_G4.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Atos_TrustedRoot_Root_CA_RSA_G2_2020.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/vTrus_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/T-TeleSec_GlobalRoot_Class_2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GlobalSign_Root_R46.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/TrustCor_RootCert_CA-2.pem: revision 1.1
etc/mtree/special: revision 1.176
external/mpl/mozilla-certdata/share/certs/USERTrust_ECC_Certification_Authority.pem: revision 1.1
etc/mtree/special: revision 1.177
etc/mtree/special: revision 1.178
external/mpl/mozilla-certdata/share/certs/AffirmTrust_Premium_ECC.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/vTrus_ECC_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_TLS_ECC_P384_Root_G5.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/NAVER_Global_Root_Certification_Authority.pem: revision 1.1
external/mpl/mozilla-certdata/share/server.trust: revision 1.1
external/mpl/mozilla-certdata/share/certs/SecureTrust_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/code.trust: revision 1.1
external/mpl/mozilla-certdata/share/certs/SSL.com_TLS_RSA_Root_CA_2022.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Amazon_Root_CA_4.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_TLS_RSA4096_Root_G5.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_Assured_ID_Root_G2.pem: revision 1.1
tests/usr.sbin/certctl/certs1/Makefile: revision 1.1
external/mpl/mozilla-certdata/share/certs/Sectigo_Public_Email_Protection_Root_E46.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/TWCA_Global_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_SMIME_RSA4096_Root_G5.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/SSL.com_Client_ECC_Root_CA_2022.pem: revision 1.1
share/man/man7/hier.7: revision 1.141
external/mpl/mozilla-certdata/share/certs/Certigna.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/certSIGN_Root_CA_G2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Certigna_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Amazon_Root_CA_1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Entrust.net_Premium_2048_Secure_Server_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GTS_Root_R4.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/T-TeleSec_GlobalRoot_Class_3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Telia_Root_CA_v2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/QuoVadis_Root_CA_3_G3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/emSign_ECC_Root_CA_-_G3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Security_Communication_RootCA2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/TWCA_Root_Certification_Authority.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Buypass_Class_2_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/emSign_ECC_Root_CA_-_C3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/SSL.com_EV_Root_Certification_Authority_RSA_R2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GTS_Root_R1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/SSL.com_Client_RSA_Root_CA_2022.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_Assured_ID_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/HiPKI_Root_CA_-_G1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Starfield_Root_Certificate_Authority_-_G2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/SwissSign_Gold_CA_-_G2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/OISTE_WISeKey_Global_Root_GB_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/AffirmTrust_Networking.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.1.pem: revision 1.1
tests/usr.sbin/certctl/Makefile.inc: revision 1.1
external/mpl/mozilla-certdata/share/certs/COMODO_RSA_Certification_Authority.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Certum_Trusted_Network_CA_2.pem: revision 1.1
tests/usr.sbin/certctl/certs2/GlobalSign_Root_CA_-_R3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/OISTE_WISeKey_Global_Root_GC_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/D-TRUST_Root_Class_3_CA_2_EV_2009.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/AffirmTrust_Commercial.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Buypass_Class_3_Root_CA.pem: revision 1.1
distrib/sets/lists/tests/mi: revision 1.1292
external/mpl/mozilla-certdata/share/certs/UCA_Extended_Validation_Root.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Trustwave_Global_ECC_P256_Certification_Authority.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Certum_Trusted_Network_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/QuoVadis_Root_CA_2.pem: revision 1.1
external/mpl/mozilla-certdata/share/email.trust: revision 1.1
external/mpl/mozilla-certdata/share/certs/Atos_TrustedRoot_2011.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Certum_Trusted_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/D-TRUST_EV_Root_CA_1_2020.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/ePKI_Root_Certification_Authority.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DIGITALSIGN_GLOBAL_ROOT_ECDSA_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GlobalSign_ECC_Root_CA_-_R4.pem: revision 1.1
tests/usr.sbin/certctl/certs2/Makefile: revision 1.1
tests/usr.sbin/Makefile: revision 1.8
external/mpl/mozilla-certdata/share/certs/Trustwave_Global_Certification_Authority.pem: revision 1.1
tests/usr.sbin/certctl/Makefile: revision 1.1
external/mpl/mozilla-certdata/share/certs/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/IdenTrust_Commercial_Root_CA_1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_SMIME_ECC_P384_Root_G5.pem: revision 1.1
tests/usr.sbin/certctl/certs1/Explicitly_Distrust_DigiNotar_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/TrustCor_RootCert_CA-1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Staat_der_Nederlanden_Root_CA_-_G3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/QuoVadis_Root_CA_3.pem: revision 1.1
external/mpl/mozilla-certdata/share/Makefile: revision 1.1
external/mpl/mozilla-certdata/share/Makefile: revision 1.2
external/mpl/mozilla-certdata/share/certs/Microsec_e-Szigno_Root_CA_2009.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/BJCA_Global_Root_CA2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/HARICA_Client_RSA_Root_CA_2021.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GDCA_TrustAUTH_R5_ROOT.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Amazon_Root_CA_3.pem: revision 1.1
tests/usr.sbin/certctl/certs4/AC_RAIZ_FNMT-RCM.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/ISRG_Root_X2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_Global_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/D-TRUST_Root_CA_3_2013.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Microsoft_RSA_Root_Certificate_Authority_2017.pem: revision 1.1
etc/mtree/NetBSD.dist.base: revision 1.252
external/mpl/mozilla-certdata/share/certs/CFCA_EV_ROOT.pem: revision 1.1
etc/mtree/NetBSD.dist.base: revision 1.253
external/mpl/mozilla-certdata/share/certs/Starfield_Services_Root_Certificate_Authority_-_G2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_Global_Root_G3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/emSign_Root_CA_-_G1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Microsoft_ECC_Root_Certificate_Authority_2017.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Explicitly_Distrust_DigiNotar_Root_CA.pem: revision 1.1
usr.sbin/certctl/Makefile: revision 1.1
external/mpl/mozilla-certdata/share/certs/Security_Communication_ECC_RootCA1.pem: revision 1.1
usr.sbin/certctl/Makefile: revision 1.2
usr.sbin/certctl/Makefile: revision 1.3
external/mpl/mozilla-certdata/share/certs/GTS_Root_R3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/e-Szigno_Root_CA_2017.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/certSIGN_ROOT_CA.pem: revision 1.1
doc/3RDPARTY: revision 1.1949
external/mpl/mozilla-certdata/share/certs/Certainly_Root_R1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/TeliaSonera_Root_CA_v1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/HARICA_TLS_RSA_Root_CA_2021.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Entrust_Root_Certification_Authority.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/NetLock_Arany_Class_Gold.pem: revision 1.1
usr.sbin/postinstall/postinstall.in: revision 1.53
usr.sbin/postinstall/postinstall.in: revision 1.54
tests/usr.sbin/certctl/certs3/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem: revision 1.1
etc/Makefile: revision 1.467
usr.sbin/postinstall/postinstall.in: revision 1.55
tests/usr.sbin/certctl/certs3/Makefile: revision 1.1
external/mpl/mozilla-certdata/share/certs/GLOBALTRUST_2020.pem: revision 1.1
etc/mtree/NetBSD.dist.tests: revision 1.200
external/mpl/mozilla-certdata/share/certs/QuoVadis_Root_CA_1_G3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GlobalSign_Root_CA_-_R3.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Actalis_Authentication_Root_CA.pem: revision 1.1
distrib/sets/lists/base/mi: revision 1.1326
distrib/sets/lists/base/mi: revision 1.1327
external/mpl/mozilla-certdata/share/certs/SecureSign_RootCA11.pem: revision 1.1
distrib/sets/lists/base/mi: revision 1.1328
external/mpl/mozilla-certdata/share/certs/Comodo_AAA_Services_root.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Entrust_Root_Certification_Authority_-_G2.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/QuoVadis_Root_CA_2_G3.pem: revision 1.1
distrib/sets/lists/base/mi: revision 1.1329
external/mpl/mozilla-certdata/share/certs/COMODO_Certification_Authority.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Certum_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/DigiCert_High_Assurance_EV_Root_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GlobalSign_Secure_Mail_Root_R45.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Secure_Global_CA.pem: revision 1.1
usr.sbin/certctl/certctl.8: revision 1.1
external/mpl/mozilla-certdata/share/certs/XRamp_Global_CA_Root.pem: revision 1.1
external/mpl/Makefile: revision 1.5
usr.sbin/certctl/certctl.8: revision 1.2
external/mpl/mozilla-certdata/share/certs/D-TRUST_Root_Class_3_CA_2_2009.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Baltimore_CyberTrust_Root.pem: revision 1.1
usr.sbin/certctl/certs.conf: revision 1.1
external/mpl/mozilla-certdata/share/certs/LAWtrust_Root_CA2_4096.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/AC_RAIZ_FNMT-RCM.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Atos_TrustedRoot_Root_CA_ECC_TLS_2021.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/OISTE_WISeKey_Global_Root_GA_CA.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Certainly_Root_E1.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/GlobalSign_Root_E46.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/Atos_TrustedRoot_Root_CA_RSA_TLS_2021.pem: revision 1.1
external/mpl/mozilla-certdata/share/certs/SSL.com_EV_Root_Certification_Authority_ECC.pem: revision 1.1

certctl(8): New tool for managing OpenSSL CA certificates.
Same command-line syntax as FreeBSD, clearer semantics about which
parts are config and which parts are cache.

mozilla-certdata: Record in doc/3RDPARTY.

mozilla-certdata: Makefile infrastructure.

mozilla-certdata: regen
(actually, just `gen', this first time)

mozilla-certdata: Connect it up to the build.

postinstall(8): Add opensslcerts item to regen /etc/openssl/certs.

Works only with destdir /, since it relies on running openssl(1),
which is not available as a tool or required in the cross-build
environment.

certctl(8): Add xfail test for missing certs.conf.

Command should fail, i.e., exit with nonzero status, but it exits
with zero instead.
certctl(8): Exit nonzero on missing certs.conf.
certctl(8): Test prepopulated /etc/openssl/certs.

This is the scenario when you have previously populated
/etc/openssl/certs manually, or with a package like mozilla-rootcerts
or mozilla-rootcerts-openssl, and you update to a version of NetBSD
with certctl(8). In this case, certctl(8) should avoid destroying
your work.

While here, also test some related but less likely edge cases:
- nonexistent
- symlink
- regular file

certctl(8): Avoid clobbering prepopulated /etc/openssl/certs.

Also avoid clobbering some other edge cases like symlinks or
non-directories there.

This way, we have the following transitions on system updates:
- If /etc/openssl/certs is empty (as in default NetBSD<10 installs):
quietly populated on rehash.
- If /etc/openssl/certs is nonempty (you've added things to it,
e.g. by hand or with mozilla-rootcerts) and has never been managed
by certctl(8): left alone on rehash, with an error message to
explain what you need to do.
- If /etc/openssl/certs has been managed by certctl(8): quietly
updated on rehash.

Note: This means current installations made since certctl(8) was
added will be treated like /etc/openssl/certs is nonempty and has
never been managed by certctl(8). To work around this, you can just
delete /etc/openssl/certs and rerun `certctl rehash'.
postinstall(8): Fail if `certctl rehash' fails.

Not using `set -e' here, evidently (maybe we should), so the separate
return 0 suppressed the error.
distrib/sets/lists: certs.conf belongs in etc, not in base.
Oops.

certctl(8): Set certs.conf 644 and add it to etc/mtree/special.
Now that we have /etc/openssl/certs.conf mentioned here, also
list /etc/openssl.

hier(7): Document /etc/openssl.

certctl(8): Minor man page clarifications.
- Specify exactly what /etc/openssl/certs gets populated with.
- Change HTTPS to TLS.
- Specify the permitted character class in certs.conf.
(Maybe more conservative than strictly needed; but let's stay on
the safe side.)

certctl(8): Fix some bugs with evil pathnames.

certctl(8): Fix quoting and whitespace style in evilpath test.

No functional change intended.

etc/mtree/special: Fix spaces/tabs.
No functional change intended.

mozilla-certdata: Install relative symlinks.
Slightly more compact this way, and you can examine them in a destdir
without chrooting. Not terribly important, but a minor convenience.

certctl(8): Test more evil pathnames.

certctl(8): Install certs.conf in /usr/share/examples too.
This way postinstall(8) can refer to the default one when you've done
an upgrade without etcupdate or similar to pull in new config files
from etc.tgz.

Not great -- we should do this systematically for all config files in
/etc, but this one-off hack is less risky for 10.
postinstall(8): Handle various certs.conf scenarios gracefully.

Tested the following scenarios:
1. fresh install
empty /etc/openssl/certs
default /etc/openssl/certs.conf
- opensslcertsconf
[x] check: pass
[x] fix: pass -- nothing
- opensslcertsrehash
[x] check: fail -- needs rehash
[x] fix: pass -- quietly rehash successfully (go to 4)
2. fresh upgrade
empty /etc/openssl/certs
no /etc/openssl/certs.conf
- opensslcertsconf
[x] check: fail -- complain missing /etc/openssl/certs.conf
[x] fix: pass -- install default /etc/openssl/certs.conf (go to 1)
- opensslcertsrehash
[x] check: fail -- complain missing /etc/openssl/certs.conf
- [x] fix: fail -- complain missing /etc/openssl/certs.conf
3. upgrade from certctl, changes to certs
certctl-managed /etc/openssl/certs
default /etc/openssl/certs.conf
- opensslcertsconf
[x] check: pass
[x] fix: pass -- nothing
- opensslcertsrehash
[x] check: fail -- needs rehash
[x] fix: pass -- quietly rehash successfully (go to 4)
4. upgrade from certctl, no changes to certs
certctl-managed /etc/openssl/certs
default /etc/openssl/certs.conf
- opensslcertsconf
[x] check: pass
[x] fix: pass -- nothing
- opensslcertsrehash
[x] check: pass
[x] fix: pass -- quietly rehash successfully (go to 4)
5. upgrade from mozilla-rootcerts
populated /etc/openssl/certs
no /etc/openssl/certs.conf
- opensslcertsconf:
[x] check: fail -- complain missing /etc/openssl/certs.conf
[x] fix: pass -- install manual /etc/openssl/certs.conf (go to 7)
- opensslcertsrehash:
[x] check: fail -- complain missing /etc/openssl/certs.conf
[x] fix: fail -- complain missing /etc/openssl/certs.conf
6. upgrade from mozilla-rootcerts with etcupdate naively
populated /etc/openssl/certs
default /etc/openssl/certs.conf
- opensslcertsconf:
[x] check: pass
[x] fix: pass -- nothing
- opensslcertsrehash:
[x] check: fail -- complain mismatched certs/ and certs.conf
[x] fix: fail -- complain mismatched certs/ and certs.conf
7. upgrade from mozilla-rootcerts with etcupdate manually
populated /etc/openssl/certs
manual /etc/openssl/certs.conf
- opensslcertsconf:
[x] check: pass
[x] fix: pass -- nothing
- opensslcertsrehash:
[x] check: pass
[x] fix: pass -- skip rehash because manual (go to 7)

XXX Someone should draft automatic tests for postinstall. It has a
very good track record, but it sure would be nice to automate this
testing rather than redo it each time I make a tiny change.
 1.63.2.1 02-Aug-2025  perseant Sync with HEAD

RSS XML Feed