aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/rm/rm.c4
-rw-r--r--bin/sh/parser.c126
-rw-r--r--bin/sh/tests/builtins/read11.04
-rw-r--r--bin/sh/tests/parser/Makefile6
-rw-r--r--bin/sh/tests/parser/ps1-expand1.07
-rw-r--r--bin/sh/tests/parser/ps1-expand2.07
-rw-r--r--bin/sh/tests/parser/ps1-expand3.08
-rw-r--r--bin/sh/tests/parser/ps1-expand4.08
-rw-r--r--bin/sh/tests/parser/ps1-expand5.08
-rw-r--r--bin/sh/tests/parser/ps2-expand1.012
-rw-r--r--cddl/contrib/opensolaris/cmd/dtrace/dtrace.110
-rw-r--r--release/Makefile2
-rw-r--r--share/man/man4/Makefile2
-rw-r--r--share/man/man4/geom_zero.4174
-rw-r--r--share/man/man4/mpr.42
-rw-r--r--share/man/man4/safe.416
-rw-r--r--share/man/man4/zero.43
-rw-r--r--share/misc/bsd-family-tree688
-rw-r--r--sys/dev/random/fenestrasX/fx_pool.c14
-rw-r--r--sys/dev/random/random_harvestq.c6
-rw-r--r--sys/dev/safe/safe.c2
-rw-r--r--sys/netinet/tcp_syncache.c13
-rw-r--r--sys/netlink/netlink_generic.c4
-rw-r--r--sys/sys/random.h6
-rw-r--r--tests/sys/netinet/Makefile2
-rw-r--r--usr.sbin/bsdinstall/partedit/gpart_ops.c14
-rw-r--r--usr.sbin/jail/jail.820
-rw-r--r--usr.sbin/utx/utx.82
28 files changed, 789 insertions, 381 deletions
diff --git a/bin/rm/rm.c b/bin/rm/rm.c
index 16bbf7403fd4..2c41d7380cea 100644
--- a/bin/rm/rm.c
+++ b/bin/rm/rm.c
@@ -184,7 +184,7 @@ rm_tree(char **argv)
flags = FTS_PHYSICAL;
if (!needstat)
flags |= FTS_NOSTAT;
- if (Wflag)
+ if (Wflag || fflag)
flags |= FTS_WHITEOUT;
if (xflag)
flags |= FTS_XDEV;
@@ -273,7 +273,7 @@ rm_tree(char **argv)
case FTS_W:
rval = undelete(p->fts_accpath);
- if (rval == 0 && (fflag && errno == ENOENT)) {
+ if (rval == 0 || (fflag && errno == ENOENT)) {
if (vflag)
(void)printf("%s\n",
p->fts_path);
diff --git a/bin/sh/parser.c b/bin/sh/parser.c
index 0c1b7a91c257..3e42d41caec4 100644
--- a/bin/sh/parser.c
+++ b/bin/sh/parser.c
@@ -55,6 +55,8 @@
#include "show.h"
#include "eval.h"
#include "exec.h" /* to check for special builtins */
+#include "main.h"
+#include "jobs.h"
#ifndef NO_HISTORY
#include "myhistedit.h"
#endif
@@ -2050,7 +2052,129 @@ getprompt(void *unused __unused)
* Format prompt string.
*/
for (i = 0; (i < PROMPTLEN - 1) && (*fmt != '\0'); i++, fmt++) {
- if (*fmt != '\\') {
+ if (*fmt == '$') {
+ const char *varname_start, *varname_end, *value;
+ char varname[256];
+ int namelen, braced = 0;
+
+ fmt++; /* Skip the '$' */
+
+ /* Check for ${VAR} syntax */
+ if (*fmt == '{') {
+ braced = 1;
+ fmt++;
+ }
+
+ varname_start = fmt;
+
+ /* Extract variable name */
+ if (is_digit(*fmt)) {
+ /* Positional parameter: $0, $1, etc. */
+ fmt++;
+ varname_end = fmt;
+ } else if (is_special(*fmt)) {
+ /* Special parameter: $?, $!, $$, etc. */
+ fmt++;
+ varname_end = fmt;
+ } else if (is_name(*fmt)) {
+ /* Regular variable name */
+ do
+ fmt++;
+ while (is_in_name(*fmt));
+ varname_end = fmt;
+ } else {
+ /*
+ * Not a valid variable reference.
+ * Output literal '$'.
+ */
+ ps[i] = '$';
+ if (braced && i < PROMPTLEN - 2)
+ ps[++i] = '{';
+ fmt = varname_start - 1;
+ continue;
+ }
+
+ namelen = varname_end - varname_start;
+ if (namelen == 0 || namelen >= (int)sizeof(varname)) {
+ /* Invalid or too long, output literal */
+ ps[i] = '$';
+ fmt = varname_start - 1;
+ continue;
+ }
+
+ /* Copy variable name */
+ memcpy(varname, varname_start, namelen);
+ varname[namelen] = '\0';
+
+ /* Handle closing brace for ${VAR} */
+ if (braced) {
+ if (*fmt == '}') {
+ fmt++;
+ } else {
+ /* Missing closing brace, treat as literal */
+ ps[i] = '$';
+ if (i < PROMPTLEN - 2)
+ ps[++i] = '{';
+ fmt = varname_start - 1;
+ continue;
+ }
+ }
+
+ /* Look up the variable */
+ if (namelen == 1 && is_digit(*varname)) {
+ /* Positional parameters - check digits FIRST */
+ int num = *varname - '0';
+ if (num == 0)
+ value = arg0 ? arg0 : "";
+ else if (num > 0 && num <= shellparam.nparam)
+ value = shellparam.p[num - 1];
+ else
+ value = "";
+ } else if (namelen == 1 && is_special(*varname)) {
+ /* Special parameters */
+ char valbuf[20];
+ int num;
+
+ switch (*varname) {
+ case '$':
+ num = rootpid;
+ break;
+ case '?':
+ num = exitstatus;
+ break;
+ case '#':
+ num = shellparam.nparam;
+ break;
+ case '!':
+ num = backgndpidval();
+ break;
+ default:
+ num = 0;
+ break;
+ }
+ snprintf(valbuf, sizeof(valbuf), "%d", num);
+ value = valbuf;
+ } else {
+ /* Regular variables */
+ value = lookupvar(varname);
+ if (value == NULL)
+ value = "";
+ }
+
+ /* Copy value to output, respecting buffer size */
+ while (*value != '\0' && i < PROMPTLEN - 1) {
+ ps[i++] = *value++;
+ }
+
+ /*
+ * Adjust fmt and i for the loop increment.
+ * fmt will be incremented by the for loop,
+ * so position it one before where we want.
+ */
+ fmt--;
+ i--;
+ continue;
+ } else if (*fmt != '\\') {
ps[i] = *fmt;
continue;
}
diff --git a/bin/sh/tests/builtins/read11.0 b/bin/sh/tests/builtins/read11.0
index c75ed9c92a83..5bae80318b15 100644
--- a/bin/sh/tests/builtins/read11.0
+++ b/bin/sh/tests/builtins/read11.0
@@ -5,8 +5,8 @@ T=$(mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXX)
trap 'rm -rf "$T"' 0
cd $T
mkfifo fifo1
-# Open fifo1 for writing and then read block on a dummy fifo
-{ mkfifo fifo2; read dummy <fifo2; } >fifo1 &
+# Open fifo1 for writing
+{ sleep 10; } >fifo1 &
# Wait for the child to open fifo1 for writing
exec 3<fifo1
v=original_value
diff --git a/bin/sh/tests/parser/Makefile b/bin/sh/tests/parser/Makefile
index afeb604710e4..c22af5414526 100644
--- a/bin/sh/tests/parser/Makefile
+++ b/bin/sh/tests/parser/Makefile
@@ -86,6 +86,12 @@ ${PACKAGE}FILES+= only-redir2.0
${PACKAGE}FILES+= only-redir3.0
${PACKAGE}FILES+= only-redir4.0
${PACKAGE}FILES+= pipe-not1.0
+${PACKAGE}FILES+= ps1-expand1.0
+${PACKAGE}FILES+= ps1-expand2.0
+${PACKAGE}FILES+= ps1-expand3.0
+${PACKAGE}FILES+= ps1-expand4.0
+${PACKAGE}FILES+= ps1-expand5.0
+${PACKAGE}FILES+= ps2-expand1.0
${PACKAGE}FILES+= set-v1.0 set-v1.0.stderr
${PACKAGE}FILES+= var-assign1.0
diff --git a/bin/sh/tests/parser/ps1-expand1.0 b/bin/sh/tests/parser/ps1-expand1.0
new file mode 100644
index 000000000000..351e6437a023
--- /dev/null
+++ b/bin/sh/tests/parser/ps1-expand1.0
@@ -0,0 +1,7 @@
+# Test simple variable expansion in PS1
+testvar=abcdef
+output=$(testvar=abcdef PS1='$testvar:' ENV=/dev/null ${SH} +m -i </dev/null 2>&1)
+case $output in
+*abcdef*) exit 0 ;;
+*) echo "Expected 'abcdef' in prompt output"; exit 1 ;;
+esac
diff --git a/bin/sh/tests/parser/ps1-expand2.0 b/bin/sh/tests/parser/ps1-expand2.0
new file mode 100644
index 000000000000..ed31a7c17136
--- /dev/null
+++ b/bin/sh/tests/parser/ps1-expand2.0
@@ -0,0 +1,7 @@
+# Test braced variable expansion in PS1
+testvar=xyz123
+output=$(testvar=xyz123 PS1='prefix-${testvar}-suffix:' ENV=/dev/null ${SH} +m -i </dev/null 2>&1)
+case $output in
+*xyz123*) exit 0 ;;
+*) echo "Expected 'xyz123' in prompt output"; exit 1 ;;
+esac
diff --git a/bin/sh/tests/parser/ps1-expand3.0 b/bin/sh/tests/parser/ps1-expand3.0
new file mode 100644
index 000000000000..0b6270c300ff
--- /dev/null
+++ b/bin/sh/tests/parser/ps1-expand3.0
@@ -0,0 +1,8 @@
+# Test special parameter $$ (PID) in PS1
+output=$(PS1='pid:$$:' ENV=/dev/null ${SH} +m -i </dev/null 2>&1)
+# Check that output contains "pid:" followed by a number (not literal $$)
+case $output in
+*pid:\$\$:*) echo "PID not expanded, got literal \$\$"; exit 1 ;;
+*pid:[0-9]*) exit 0 ;;
+*) echo "Expected PID after 'pid:' in output"; exit 1 ;;
+esac
diff --git a/bin/sh/tests/parser/ps1-expand4.0 b/bin/sh/tests/parser/ps1-expand4.0
new file mode 100644
index 000000000000..623c52707eec
--- /dev/null
+++ b/bin/sh/tests/parser/ps1-expand4.0
@@ -0,0 +1,8 @@
+# Test special parameter $? (exit status) in PS1
+output=$(PS1='status:$?:' ENV=/dev/null ${SH} +m -i </dev/null 2>&1)
+# Should start with exit status 0
+case $output in
+*status:\$?:*) echo "Exit status not expanded, got literal \$?"; exit 1 ;;
+*status:0:*) exit 0 ;;
+*) echo "Expected 'status:0:' in initial prompt"; exit 1 ;;
+esac
diff --git a/bin/sh/tests/parser/ps1-expand5.0 b/bin/sh/tests/parser/ps1-expand5.0
new file mode 100644
index 000000000000..73fe3ba5a3d5
--- /dev/null
+++ b/bin/sh/tests/parser/ps1-expand5.0
@@ -0,0 +1,8 @@
+# Test positional parameter $0 in PS1
+output=$(PS1='shell:$0:' ENV=/dev/null ${SH} +m -i </dev/null 2>&1)
+# $0 should contain the shell name/path
+case $output in
+*shell:\$0:*) echo "Positional parameter not expanded, got literal \$0"; exit 1 ;;
+*shell:*sh*:*) exit 0 ;;
+*) echo "Expected shell name after 'shell:' in output"; exit 1 ;;
+esac
diff --git a/bin/sh/tests/parser/ps2-expand1.0 b/bin/sh/tests/parser/ps2-expand1.0
new file mode 100644
index 000000000000..f0a3a77ded1c
--- /dev/null
+++ b/bin/sh/tests/parser/ps2-expand1.0
@@ -0,0 +1,12 @@
+# Test variable expansion in PS2 (continuation prompt)
+testvar=continue
+# Send incomplete command (backslash at end) to trigger PS2
+output=$(testvar=continue PS2='$testvar>' ENV=/dev/null ${SH} +m -i <<EOF 2>&1
+echo \\
+done
+EOF
+)
+case $output in
+*continue\>*) exit 0 ;;
+*) echo "Expected 'continue>' in PS2 output"; exit 1 ;;
+esac
diff --git a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1
index 1a9f8029e6de..5115d16a1286 100644
--- a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1
+++ b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1
@@ -20,7 +20,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 6, 2025
+.Dd November 8, 2025
.Dt DTRACE 1
.Os
.Sh NAME
@@ -1252,6 +1252,14 @@ command line to define a set of macro variables and so forth).
The additional arguments can be used in D programs specified using the
.Fl s
option or on the command line.
+.Sh ENVIRONMENT
+.Bl -tag -width 'DTRACE_DEBUG'
+.It Ev DTRACE_DEBUG
+When defined,
+.Nm
+will output debug log messages to
+.Xr stderr 4 .
+.El
.Sh FILES
.Bl -tag -width /boot/dtrace.dof -compact
.It Pa /boot/dtrace.dof
diff --git a/release/Makefile b/release/Makefile
index a777ded3c429..fc91b31df579 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -56,7 +56,7 @@ TARGET_ARCH= ${TARGET}
.endif
.endif
IMAKE= ${MAKE} TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET} \
- -DNO_ROOT -DDB_FROM_SRC
+ -DNO_ROOT -DWITHOUT_QEMU -DDB_FROM_SRC
DISTDIR= dist
# Define OSRELEASE by using newvers.sh
diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index fe1d285aec96..752ae9f165ca 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -189,6 +189,7 @@ MAN= aac.4 \
geom.4 \
geom_linux_lvm.4 \
geom_uzip.4 \
+ geom_zero.4 \
gif.4 \
${_gve.4} \
gpio.4 \
@@ -1123,6 +1124,7 @@ MAN+= \
veriexec.4 \
zyd.4
+MLINKS+=geom_zero.4 gzero.4
MLINKS+=mtw.4 if_mtw.4
MLINKS+=otus.4 if_otus.4
MLINKS+=rsu.4 if_rsu.4
diff --git a/share/man/man4/geom_zero.4 b/share/man/man4/geom_zero.4
new file mode 100644
index 000000000000..8da09b1473c9
--- /dev/null
+++ b/share/man/man4/geom_zero.4
@@ -0,0 +1,174 @@
+.\"
+.\" Copyright (c) 2019 Greg White <gkwhite@gmail.com>. All rights reserved.
+.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org>
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd November 9, 2025
+.Dt GEOM_ZERO 4
+.Os
+.Sh NAME
+.Nm gzero ,
+.Nm geom_zero
+.Nd GEOM-based zero disk/block device
+.Sh SYNOPSIS
+.Cd "options GEOM_ZERO"
+.Pp
+In
+.Xr loader.conf 5
+or
+.Xr sysctl.conf 5 :
+.Cd kern.geom.zero.byte
+.Cd kern.geom.zero.clear
+.Sh DESCRIPTION
+.Nm
+is a
+.Xr GEOM 4
+device simulating a one-exabyte disk.
+It throws away any data written to it,
+and returns the value of
+.Va kern.geom.zero.byte
+for every byte read from it.
+.Pp
+.Nm
+differs from
+.Xr zero 4 ,
+which is a regular character device and has an infinite length,
+while
+.Pa /dev/gzero
+is a
+.Xr GEOM 4
+provider of large, but limited, size.
+.Pp
+Consult
+.Xr geom 8
+for instructions on how to use the supported commands of the
+.Xr GEOM 4
+.Nm ZERO
+class.
+.Pp
+.Nm
+is useful for benchmarking performance of GEOM and GEOM classes
+where compression of the data does not affect the results
+.Po blocks from
+.Pa /dev/gzero
+compress exceptionally well
+.Pc .
+Examples of such benchmarks include
+comparing the speed of two disk encryption algorithms and
+comparing a hardware versus software implementation
+of a single encryption algorithm.
+.Sh MIB VARIABLES
+The following variables are available as both
+.Xr sysctl 8
+variables and
+.Xr loader 8
+tunables:
+.Bl -tag -width "kern.geom.zero.clear"
+.It Va kern.geom.zero.byte
+This variable sets the fill byte of the
+.Nm
+device.
+Default:
+.Ql 0 .
+.It Va kern.geom.zero.clear
+This variable controls the clearing of the read data buffer.
+If set to
+.Ql 0 ,
+.Nm
+will not copy any data into the read data buffers
+and just return the read data buffers as they are without modifying them.
+In particular, it will not not fill the read buffer with the value of
+.Va kern.geom.zero.byte .
+This is useful for read benchmarking to reduce the measurement noise
+caused by extra memory initialization.
+Default:
+.Ql 1 .
+.El
+.Sh FILES
+.Bl -tag -width /dev/gzero
+.It Pa /dev/gzero
+The
+.Nm
+device.
+.El
+.Sh EXAMPLES
+Create the
+.Pa /dev/gzero
+device by loading the
+.Nm geom_zero
+kernel module:
+.Bd -literal -offset indent
+# geom zero load
+.Ed
+.Pp
+Show information about the
+.Nm
+device:
+.Bd -literal -offset indent
+# geom zero list
+Geom name: gzero
+Providers:
+1. Name: gzero
+ Mediasize: 1152921504606846976 (1.0E)
+ Sectorsize: 512
+ Mode: r0w0egzero0
+.Ed
+.Pp
+Set the fill byte of the
+.Nm
+device to 70
+.Po decimal for letter
+.Dq F
+in
+.Xr ascii 7
+.Pc :
+.Bd -literal -offset indent
+# sysctl kern.geom.zero.byte=70
+kern.geom.zero.byte: 0 -> 70
+# head -c 1 /dev/gzero
+F
+.Ed
+.Pp
+Benchmark read and write throughput of
+.Xr geli 8 Ap s
+default encryption algorithm with a 4-KiB sector size:
+.Bd -literal -offset indent
+# geom zero load
+# geli onetime -s 4096 gzero
+# sysctl kern.geom.zero.clear=0
+# dd if=/dev/gzero.eli of=/dev/zero bs=4k count=$((1024 * 256))
+262144+0 records in
+262144+0 records out
+1073741824 bytes transferred in 1.258195 secs (853398307 bytes/sec)
+# dd if=/dev/zero of=/dev/gzero.eli bs=4k count=$((1024 * 256))
+262144+0 records in
+262144+0 records out
+1073741824 bytes transferred in 1.663118 secs (645619658 bytes/sec)
+.Ed
+.Sh SEE ALSO
+.Xr GEOM 4 ,
+.Xr zero 4 ,
+.Xr geom 8 ,
+.Xr sysctl 8 ,
+.Xr bio 9
+.Sh HISTORY
+A
+.Nm
+device first appeared in
+.Fx 6 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+device was written by
+.An Paweł Jakub Dawidek Aq Mt pjd@FreeBSD.org .
+.Pp
+The
+.Nm
+manual page was originally written by
+.An Greg White Aq Mt gkwhite@gmail.com
+and rewritten by
+.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org
+before landing in
+.Fx .
diff --git a/share/man/man4/mpr.4 b/share/man/man4/mpr.4
index 8de46e4f9272..a88b99ae007b 100644
--- a/share/man/man4/mpr.4
+++ b/share/man/man4/mpr.4
@@ -103,8 +103,6 @@ Broadcom Ltd./Avago Tech (LSI) SAS 3808 (8 Port SAS/PCIe)
.It
Broadcom Ltd./Avago Tech (LSI) SAS 3816 (16 Port SAS/PCIe)
.It
-Broadcom Ltd./Avago Tech (LSI) SAS 3908 (8 Port SAS/PCIe)
-.It
Broadcom Ltd./Avago Tech (LSI) SAS 3916 (16 Port SAS/PCIe)
.El
.Sh CONFIGURATION
diff --git a/share/man/man4/safe.4 b/share/man/man4/safe.4
index 89375d058bf7..914b2dd0dd1c 100644
--- a/share/man/man4/safe.4
+++ b/share/man/man4/safe.4
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd November 22, 2024
+.Dd October 31, 2025
.Dt SAFE 4
.Os
.Sh NAME
@@ -57,6 +57,11 @@ In
.Cd hw.safe.rngbufsize
.Cd hw.safe.rngmaxalarm
.Ed
+.Sh DEPRECATION NOTICE
+The
+.Nm
+driver is deprecated and is scheduled for removal in
+.Fx 16.0 .
.Sh DESCRIPTION
The
.Nm
@@ -128,5 +133,14 @@ packet processing.
.Xr random 4 ,
.Xr crypto 7 ,
.Xr crypto 9
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 5.2 .
+It is deprecated in
+.Fx 15.0
+and removed in
+.Fx 16.0 .
.Sh BUGS
Public key support is not implemented.
diff --git a/share/man/man4/zero.4 b/share/man/man4/zero.4
index f1cd52d455d1..85651d53d342 100644
--- a/share/man/man4/zero.4
+++ b/share/man/man4/zero.4
@@ -29,7 +29,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 7, 1996
+.Dd November 9, 2025
.Dt ZERO 4
.Os
.Sh NAME
@@ -48,6 +48,7 @@ supply of null bytes when read.
.El
.Sh SEE ALSO
.Xr full 4 ,
+.Xr gzero 4 ,
.Xr null 4
.Sh HISTORY
A
diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree
index fd525d59c902..01dfd4cc0cbf 100644
--- a/share/misc/bsd-family-tree
+++ b/share/misc/bsd-family-tree
@@ -83,410 +83,410 @@ FreeBSD 2.0.5 \ | BSD/OS 2.0.1
| | | | OpenBSD 2.3 | |
| | | | BSD/OS 3.0 |
FreeBSD 2.1 | | | |
- | | | | *--NetBSD 1.1 -. BSD/OS 2.1
- | FreeBSD 2.1.5 | | | \ |
- | | | | *--NetBSD 1.2 \ BSD/OS 3.0
+ | | | | *--NetBSD 1.1 ---. BSD/OS 2.1
+ | FreeBSD 2.1.5 | | | \ |
+ | | | | *--NetBSD 1.2 \ BSD/OS 3.0
| FreeBSD 2.1.6 | | | \ OpenBSD 2.0 |
- | | | | | \ | |
- | FreeBSD 2.1.6.1 | | | \ | |
- | | | | | \ | |
- | FreeBSD 2.1.7 | | | | | |
- | | | | | NetBSD 1.2.1 | |
- | FreeBSD 2.1.7.1 | | | | |
- | | | | | |
- | | | | | |
- *-FreeBSD 2.2 | | | | |
- | \ | | | | |
- | FreeBSD 2.2.1 | | | | |
- | | | | | | |
+ | | | | | \ | |
+ | FreeBSD 2.1.6.1 | | | \ | |
+ | | | | | \ | |
+ | FreeBSD 2.1.7 | | | | | |
+ | | | | | NetBSD 1.2.1 | |
+ | FreeBSD 2.1.7.1 | | | | |
+ | | | | | |
+ | | | | | |
+ *-FreeBSD 2.2 | | | | |
+ | \ | | | | |
+ | FreeBSD 2.2.1 | | | | |
+ | | | | | | |
| FreeBSD 2.2.2 | | | OpenBSD 2.1 |
- | | | | | | |
- | FreeBSD 2.2.5 | | | | |
+ | | | | | | |
+ | FreeBSD 2.2.5 | | | | |
| | | | | OpenBSD 2.2 |
- | | | | *--NetBSD 1.3 | |
- | FreeBSD 2.2.6 | | | | | |
- | | | | | NetBSD 1.3.1 | BSD/OS 3.1
+ | | | | *--NetBSD 1.3 | |
+ | FreeBSD 2.2.6 | | | | | |
+ | | | | | NetBSD 1.3.1 | BSD/OS 3.1
| | | | | | OpenBSD 2.3 |
- | | | | | NetBSD 1.3.2 | |
- | FreeBSD 2.2.7 | | | | | |
- | | | | | | | BSD/OS 4.0
- | FreeBSD 2.2.8 | | | | | |
- | | | | | | | |
+ | | | | | NetBSD 1.3.2 | |
+ | FreeBSD 2.2.7 | | | | | |
+ | | | | | | | BSD/OS 4.0
+ | FreeBSD 2.2.8 | | | | | |
+ | | | | | | | |
| v | | | | OpenBSD 2.4 |
- | FreeBSD 2.2.9 | | | | | |
- | | | | | | |
-FreeBSD 3.0 <--------* | | v | |
- | | | NetBSD 1.3.3 | |
- *---FreeBSD 3.1 | | | |
- | | | | | BSD/OS 4.0.1
+ | FreeBSD 2.2.9 | | | | | |
+ | | | | | | |
+FreeBSD 3.0 <--------* | | v | |
+ | | | NetBSD 1.3.3 | |
+ *---FreeBSD 3.1 | | | |
+ | | | | | BSD/OS 4.0.1
| FreeBSD 3.2----* | .--*--NetBSD 1.4 OpenBSD 2.5 |
- | | | | | | | | |
- | | | | | | | | |
- | | | | | | | | |
- | FreeBSD 3.3 | | | | NetBSD 1.4.1 | |
+ | | | | | | | | |
+ | | | | | | | | |
+ | | | | | | | | |
+ | FreeBSD 3.3 | | | | NetBSD 1.4.1 | |
| | | | | | | OpenBSD 2.6 |
- | FreeBSD 3.4 | | | | | | |
- | | | | | | | | BSD/OS 4.1
-FreeBSD 4.0 | | | | | NetBSD 1.4.2 | |
- | | | | | | | | |
- | | | | | | | | |
+ | FreeBSD 3.4 | | | | | | |
+ | | | | | | | | BSD/OS 4.1
+FreeBSD 4.0 | | | | | NetBSD 1.4.2 | |
+ | | | | | | | | |
+ | | | | | | | | |
| FreeBSD 3.5 | | | | | OpenBSD 2.7 |
- | | | | | | | | |
- | FreeBSD 3.5.1 | | | | | | |
- | | | | | | | |
- *---FreeBSD 4.1 | | | | | | |
- | | | | | | | | |
- | FreeBSD 4.1.1 | | / | | | |
- | | | | / | | | |
- | FreeBSD 4.2 Darwin/ | NetBSD 1.4.3 | |
+ | | | | | | | | |
+ | FreeBSD 3.5.1 | | | | | | |
+ | | | | | | | |
+ *---FreeBSD 4.1 | | | | | | |
+ | | | | | | | | |
+ | FreeBSD 4.1.1 | | / | | | |
+ | | | | / | | | |
+ | FreeBSD 4.2 Darwin/ | NetBSD 1.4.3 | |
| | Mac OS X | OpenBSD 2.8 BSD/OS 4.2
- | | | | | |
- | | | | | |
- | | 10.0 *--NetBSD 1.5 | |
- | FreeBSD 4.3 | | | | |
+ | | | | | |
+ | | | | | |
+ | | 10.0 *--NetBSD 1.5 | |
+ | FreeBSD 4.3 | | | | |
| | | | | OpenBSD 2.9 |
- | | | | NetBSD 1.5.1 | |
- | | | | | | |
- | FreeBSD 4.4-. | | NetBSD 1.5.2 | |
- | | | Mac OS X | | | |
+ | | | | NetBSD 1.5.1 | |
+ | | | | | | |
+ | FreeBSD 4.4-. | | NetBSD 1.5.2 | |
+ | | | Mac OS X | | | |
| | | 10.1 | | OpenBSD 3.0 |
- | FreeBSD 4.5 | | | | | |
- | | \ | | | | BSD/OS 4.3
+ | FreeBSD 4.5 | | | | | |
+ | | \ | | | | BSD/OS 4.3
| FreeBSD 4.6 \ | | | OpenBSD 3.1 |
- | | \ | | NetBSD 1.5.3 | |
- | FreeBSD 4.6.2 Mac OS X | | |
- | | 10.2 | | |
- | FreeBSD 4.7 | | | |
+ | | \ | | NetBSD 1.5.3 | |
+ | FreeBSD 4.6.2 Mac OS X | | |
+ | | 10.2 | | |
+ | FreeBSD 4.7 | | | |
| | | *--NetBSD 1.6 OpenBSD 3.2 |
- | FreeBSD 4.8 | | | | |
- | | | | NetBSD 1.6.1 | |
+ | FreeBSD 4.8 | | | | |
+ | | | | NetBSD 1.6.1 | |
| |--------. | | | OpenBSD 3.3 BSD/OS 5.0
- | | \ | | | | |
+ | | \ | | | | |
| FreeBSD 4.9 | | | | OpenBSD 3.4 BSD/OS 5.1 ISE
- | | | | | | |
- | | | | | NetBSD 1.6.2 |
- | | | | | | |
+ | | | | | | |
+ | | | | | NetBSD 1.6.2 |
+ | | | | | | |
| | | | | | OpenBSD 3.5
- | | | | | v |
- | FreeBSD 4.10 | | | |
- | | | | | |
- | FreeBSD 4.11 | | | |
- | | | | |
- | `-|------|-----------------|---------------------.
- | | | | \
-FreeBSD 5.0 | | | |
- | | | | |
-FreeBSD 5.1 | | | DragonFly 1.0
- | \ | | | |
- | ----- Mac OS X | | |
- | 10.3 | | |
-FreeBSD 5.2 | | | |
- | | | | | |
- | FreeBSD 5.2.1 | | | |
- | | | | |
- *-------FreeBSD 5.3 | | | |
+ | | | | | v |
+ | FreeBSD 4.10 | | | |
+ | | | | | |
+ | FreeBSD 4.11 | | | |
+ | | | | |
+ | `-|------|-------------------|-------------------.
+ | | | | \
+FreeBSD 5.0 | | | |
+ | | | | |
+FreeBSD 5.1 | | | DragonFly 1.0
+ | \ | | | |
+ | ----- Mac OS X | | |
+ | 10.3 | | |
+FreeBSD 5.2 | | | |
+ | | | | | |
+ | FreeBSD 5.2.1 | | | |
+ | | | | |
+ *-------FreeBSD 5.3 | | | |
| | | | OpenBSD 3.6 |
- | | | *--NetBSD 2.0 | |
- | | | | | | | DragonFly 1.2.0
- | | Mac OS X | | NetBSD 2.0.2 | |
- | | 10.4 | | | | |
- | FreeBSD 5.4 | | | | | |
+ | | | *--NetBSD 2.0 | |
+ | | | | | | | DragonFly 1.2.0
+ | | Mac OS X | | NetBSD 2.0.2 | |
+ | | 10.4 | | | | |
+ | FreeBSD 5.4 | | | | | |
| | | | | | OpenBSD 3.7 |
- | | | | | NetBSD 2.0.3 | |
- | | | | | | | |
+ | | | | | NetBSD 2.0.3 | |
+ | | | | | | | |
*--FreeBSD | | | | v OpenBSD 3.8 |
- | 6.0 | | | | | |
- | | | | | \ | |
- | | | | | NetBSD 2.1 | |
- | | | | | | |
- | | | | *--NetBSD 3.0 | |
- | | | | | | | | DragonFly 1.4.0
+ | 6.0 | | | | | |
+ | | | | | \ | |
+ | | | | | NetBSD 2.1 | |
+ | | | | | | |
+ | | | | *--NetBSD 3.0 | |
+ | | | | | | | | DragonFly 1.4.0
| | | | | | | OpenBSD 3.9 |
- | FreeBSD | | | | | | |
- | 6.1 | | | | | | |
- | | FreeBSD 5.5 | | | | | |
- | | | | | NetBSD 3.0.1 | DragonFly 1.6.0
- | | | | | | | |
+ | FreeBSD | | | | | | |
+ | 6.1 | | | | | | |
+ | | FreeBSD 5.5 | | | | | |
+ | | | | | NetBSD 3.0.1 | DragonFly 1.6.0
+ | | | | | | | |
| | | | | | OpenBSD 4.0 |
- | | | | | NetBSD 3.0.2 | |
- | | | | NetBSD 3.1 | |
- | FreeBSD 6.2 | | | |
- | | | | | DragonFly 1.8.0
+ | | | | | NetBSD 3.0.2 | |
+ | | | | NetBSD 3.1 | |
+ | FreeBSD 6.2 | | | |
+ | | | | | DragonFly 1.8.0
| | | | OpenBSD 4.1 |
- | | | | | DragonFly 1.10.0
- | | Mac OS X | | |
- | | 10.5 | | |
+ | | | | | DragonFly 1.10.0
+ | | Mac OS X | | |
+ | | 10.5 | | |
| | | | OpenBSD 4.2 |
- | | | *--NetBSD 4.0 | |
- | FreeBSD 6.3 | | | | |
- | \ | | | | |
- *--FreeBSD | | | | | DragonFly 1.12.0
- | 7.0 | | | | | |
+ | | | *--NetBSD 4.0 | |
+ | FreeBSD 6.3 | | | | |
+ | \ | | | | |
+ *--FreeBSD | | | | | DragonFly 1.12.0
+ | 7.0 | | | | | |
| | | | | | OpenBSD 4.3 |
- | | | | | NetBSD | DragonFly 2.0.0
+ | | | | | NetBSD | DragonFly 2.0.0
| | FreeBSD | | 4.0.1 OpenBSD 4.4 |
- | | 6.4 | | | |
- | | | | | |
- | FreeBSD 7.1 | | | |
- | | | | | DragonFly 2.2.0
+ | | 6.4 | | | |
+ | | | | | |
+ | FreeBSD 7.1 | | | |
+ | | | | | DragonFly 2.2.0
| FreeBSD 7.2 | *--NetBSD OpenBSD 4.5 |
- | \ | | 5.0 | |
- | \ | | / | \ | |
- | | Mac OS X | | | \ | |
- | | 10.6 | | | \ | |
- | | | | | | NetBSD | DragonFly 2.4.0
+ | \ | | 5.0 | |
+ | \ | | / | \ | |
+ | | Mac OS X | | | \ | |
+ | | 10.6 | | | \ | |
+ | | | | | | NetBSD | DragonFly 2.4.0
| | | | | | 5.0.1 OpenBSD 4.6 |
- | | | | | | | | |
- *--FreeBSD | | | | | | | |
- | 8.0 | | | | | | | |
- | | FreeBSD | | | | NetBSD | |
- | | 7.3 | | | | 5.0.2 | DragonFly 2.6.0
+ | | | | | | | | |
+ *--FreeBSD | | | | | | | |
+ | 8.0 | | | | | | | |
+ | | FreeBSD | | | | NetBSD | |
+ | | 7.3 | | | | 5.0.2 | DragonFly 2.6.0
| | | | | | | OpenBSD 4.7 |
- | FreeBSD | | | | | | |
- | 8.1 | | | | | | |
- | | | | | | | | DragonFly 2.8.2
+ | FreeBSD | | | | | | |
+ | 8.1 | | | | | | |
+ | | | | | | | | DragonFly 2.8.2
| | | | | | | OpenBSD 4.8 |
- | | | | | | *--NetBSD | |
- | FreeBSD FreeBSD | | | 5.1 | |
- | 8.2 7.4 | | | | | DragonFly 2.10.1
+ | | | | | | *--NetBSD | |
+ | FreeBSD FreeBSD | | | 5.1 | |
+ | 8.2 7.4 | | | | | DragonFly 2.10.1
| | | | | | OpenBSD 4.9 |
- | `-----. Mac OS X | | | | |
- | \ 10.7 | | | | |
+ | `-----. Mac OS X | | | | |
+ | \ 10.7 | | | | |
| | | | | | OpenBSD 5.0 |
- *--FreeBSD | | | | | | |
- | 9.0 | | | | NetBSD | DragonFly 3.0.1
- | | FreeBSD | | | 5.1.2 | |
- | | 8.3 | | | | | |
- | | | | | | NetBSD | |
- | | | | | | 5.1.3 | |
- | | | | | | | | |
- | | | | | | NetBSD | |
- | | | | | | 5.1.4 | |
+ *--FreeBSD | | | | | | |
+ | 9.0 | | | | NetBSD | DragonFly 3.0.1
+ | | FreeBSD | | | 5.1.2 | |
+ | | 8.3 | | | | | |
+ | | | | | | NetBSD | |
+ | | | | | | 5.1.3 | |
+ | | | | | | | | |
+ | | | | | | NetBSD | |
+ | | | | | | 5.1.4 | |
| | | | | | OpenBSD 5.1 |
- | | | Mac OS X | `--------. | |
- | | | 10.8 | | | |
- | | | | *--NetBSD | | |
- | | | | | 6.0 | | |
+ | | | Mac OS X | `--------. | |
+ | | | 10.8 | | | |
+ | | | | *--NetBSD | | |
+ | | | | | 6.0 | | |
| | | | | | | | OpenBSD 5.2 DragonFly 3.2.1
- | FreeBSD | | | | | NetBSD | |
- | 9.1 | | | | | 5.2 | |
- | | | | | | | | | |
- | | | | | | | NetBSD | |
- | | | | | | | 5.2.1 | |
- | | | | | | | | | |
- | | | | | | | NetBSD | |
- | | | | | | | 5.2.2 | |
- | | | | | | | | |
- | | | | | | \ | |
- | | | | | | NetBSD | |
- | | | | | | 6.0.1 | |
+ | FreeBSD | | | | | NetBSD | |
+ | 9.1 | | | | | 5.2 | |
+ | | | | | | | | | |
+ | | | | | | | NetBSD | |
+ | | | | | | | 5.2.1 | |
+ | | | | | | | | | |
+ | | | | | | | NetBSD | |
+ | | | | | | | 5.2.2 | |
+ | | | | | | | | |
+ | | | | | | \ | |
+ | | | | | | NetBSD | |
+ | | | | | | 6.0.1 | |
| | | | | | | OpenBSD 5.3 DragonFly 3.4.1
- | | | | | | NetBSD | |
- | | | | | | 6.0.2 | |
- | | | | | | | | |
- | | | | | | NetBSD | |
- | | | | | | 6.0.3 | |
- | | | | | | | | |
- | | | | | | NetBSD | |
- | | | | | | 6.0.4 | |
- | | | | | | | | |
- | | | | | | NetBSD | |
- | | | | | | 6.0.5 | |
- | | | | | | | | |
- | | | | | | NetBSD | |
- | | | | | | 6.0.6 | |
- | | | | | | | |
- | | | | | *--NetBSD | |
- | | | | | 6.1 | |
- | | FreeBSD | | | | |
- | | 8.4 | | NetBSD | |
- | | | | | 6.1.1 | |
- | | | | | | |
- | FreeBSD | | NetBSD | |
- | 9.2 | | 6.1.2 | |
- | | Mac OS X | | | |
+ | | | | | | NetBSD | |
+ | | | | | | 6.0.2 | |
+ | | | | | | | | |
+ | | | | | | NetBSD | |
+ | | | | | | 6.0.3 | |
+ | | | | | | | | |
+ | | | | | | NetBSD | |
+ | | | | | | 6.0.4 | |
+ | | | | | | | | |
+ | | | | | | NetBSD | |
+ | | | | | | 6.0.5 | |
+ | | | | | | | | |
+ | | | | | | NetBSD | |
+ | | | | | | 6.0.6 | |
+ | | | | | | | |
+ | | | | | *--NetBSD | |
+ | | | | | 6.1 | |
+ | | FreeBSD | | | | |
+ | | 8.4 | | NetBSD | |
+ | | | | | 6.1.1 | |
+ | | | | | | |
+ | FreeBSD | | NetBSD | |
+ | 9.2 | | 6.1.2 | |
+ | | Mac OS X | | | |
| | 10.9 | | OpenBSD 5.4 |
- | `-----. | | | | DragonFly 3.6.0
- | \ | | | | |
- *--FreeBSD | | | NetBSD | |
- | 10.0 | | | 6.1.3 | |
- | | | | | | | |
- | | | | | | | DragonFly 3.6.1
- | | | | | | | |
- | | | | | | | |
- | | | | | | | DragonFly 3.6.2
- | | | | | NetBSD | |
- | | | | | 6.1.4 | |
- | | | | | | | |
+ | `-----. | | | | DragonFly 3.6.0
+ | \ | | | | |
+ *--FreeBSD | | | NetBSD | |
+ | 10.0 | | | 6.1.3 | |
+ | | | | | | | |
+ | | | | | | | DragonFly 3.6.1
+ | | | | | | | |
+ | | | | | | | |
+ | | | | | | | DragonFly 3.6.2
+ | | | | | NetBSD | |
+ | | | | | 6.1.4 | |
+ | | | | | | | |
| | | | | | OpenBSD 5.5 |
- | | | | | | | |
- | | | | | | | DragonFly 3.8.0
- | | | | | | | |
- | | | | | | | |
- | | | | | | | DragonFly 3.8.1
- | | | | | | | |
- | | | | | | | |
- | | | | | | | DragonFly 3.6.3
- | | | | | | | |
- | | FreeBSD | | | | |
- | | 9.3 | | | | |
- | | | | NetBSD | DragonFly 3.8.2
- | | | | 6.1.5 | |
- | | Mac OS X | | |
- | | 10.10 | | |
+ | | | | | | | |
+ | | | | | | | DragonFly 3.8.0
+ | | | | | | | |
+ | | | | | | | |
+ | | | | | | | DragonFly 3.8.1
+ | | | | | | | |
+ | | | | | | | |
+ | | | | | | | DragonFly 3.6.3
+ | | | | | | | |
+ | | FreeBSD | | | | |
+ | | 9.3 | | | | |
+ | | | | NetBSD | DragonFly 3.8.2
+ | | | | 6.1.5 | |
+ | | Mac OS X | | |
+ | | 10.10 | | |
| | | | OpenBSD 5.6 |
- | FreeBSD | | | |
- | 10.1 | | | DragonFly 4.0.1
- | | | | | |
- | | | | | DragonFly 4.0.2
- | | | | | |
- | | | | | DragonFly 4.0.3
- | | | | | |
- | | | | | DragonFly 4.0.4
- | | | | | |
- | | | | | DragonFly 4.0.5
- | | | | | |
+ | FreeBSD | | | |
+ | 10.1 | | | DragonFly 4.0.1
+ | | | | | |
+ | | | | | DragonFly 4.0.2
+ | | | | | |
+ | | | | | DragonFly 4.0.3
+ | | | | | |
+ | | | | | DragonFly 4.0.4
+ | | | | | |
+ | | | | | DragonFly 4.0.5
+ | | | | | |
| | | | OpenBSD 5.7 |
- | | | | | DragonFly 4.2.0
- | FreeBSD | | | |
- | 10.2 | | | |
- | | macOS *--NetBSD 7.0 | |
+ | | | | | DragonFly 4.2.0
+ | FreeBSD | | | |
+ | 10.2 | | | |
+ | | macOS *--NetBSD 7.0 | |
| | 10.11 | | | OpenBSD 5.8 |
- | | | | | `--. | DragonFly 4.4.1
+ | | | | | `--. | DragonFly 4.4.1
| FreeBSD | | | | OpenBSD 5.9 |
- | 10.3 | | | | | |
- | | | | | NetBSD | |
- | | | | | 7.0.1 | |
- | `------. | | | | | DragonFly 4.6.0
- | | | | | | | |
- | | | | | | | |
+ | 10.3 | | | | | |
+ | | | | | NetBSD | |
+ | | | | | 7.0.1 | |
+ | `------. | | | | | DragonFly 4.6.0
+ | | | | | | | |
+ | | | | | | | |
*--FreeBSD | macOS | | | OpenBSD 6.0 |
- | 11.0 | 10.12 | | NetBSD | |
- | | | | | | 7.0.2 | |
- | | | | | | | |
- | | | | | *--NetBSD | |
- | | | | | | 7.1 | |
- | | | | | | | | |
- | | | | | | | | |
- | | | macOS | | | | DragonFly 4.8.0
+ | 11.0 | 10.12 | | NetBSD | |
+ | | | | | | 7.0.2 | |
+ | | | | | | | |
+ | | | | | *--NetBSD | |
+ | | | | | | 7.1 | |
+ | | | | | | | | |
+ | | | | | | | | |
+ | | | macOS | | | | DragonFly 4.8.0
| | | 10.13 | | | OpenBSD 6.1 |
- | FreeBSD | | | | | | DragonFly 5.0.0
- | 11.1 FreeBSD | | | | | |
+ | FreeBSD | | | | | | DragonFly 5.0.0
+ | 11.1 FreeBSD | | | | | |
| | 10.4 | | | | OpenBSD 6.2 DragonFly 5.0.1
- | | | | | | | |
- | `------. | | | NetBSD | DragonFly 5.0.2
- | | | | | 7.1.1 | |
- | | | | | | | |
- | | | | | NetBSD | |
- | | | | | 7.1.2 `--. |
- | | | | | | |
+ | | | | | | | |
+ | `------. | | | NetBSD | DragonFly 5.0.2
+ | | | | | 7.1.1 | |
+ | | | | | | | |
+ | | | | | NetBSD | |
+ | | | | | 7.1.2 `--. |
+ | | | | | | |
| | | | `-----. OpenBSD 6.3 |
- | | | *--NetBSD | | DragonFly 5.2.0
- | | | | 8.0 | | |
- | | | | | | | DragonFly 5.2.1
- | | | | | | | |
- | | | | | | | DragonFly 5.2.2
- | FreeBSD | | | *--NetBSD | |
- | 11.2 | | | 7.2 | |
- | | macOS | | | |
+ | | | *--NetBSD | | DragonFly 5.2.0
+ | | | | 8.0 | | |
+ | | | | | | | DragonFly 5.2.1
+ | | | | | | | |
+ | | | | | | | DragonFly 5.2.2
+ | FreeBSD | | | *--NetBSD | |
+ | 11.2 | | | 7.2 | |
+ | | macOS | | | |
| | 10.14 | | OpenBSD 6.4 |
- | | | | | | |
- | | | | | | DragonFly 5.4.0
- *--FreeBSD | | | | | |
- | 12.0 | | | | | DragonFly 5.4.1
+ | | | | | | |
+ | | | | | | DragonFly 5.4.0
+ *--FreeBSD | | | | | |
+ | 12.0 | | | | | DragonFly 5.4.1
| | | | | | OpenBSD 6.5 |
- | | | | | | | |
- | | | | | NetBSD | |
- | | | | | 8.1 | DragonFly 5.6
- | | | | | | | |
- | | | | | | | DragonFly 5.6.1
- | | FreeBSD macOS | | | |
- | | 11.3 10.15 | | | |
+ | | | | | | | |
+ | | | | | NetBSD | |
+ | | | | | 8.1 | DragonFly 5.6
+ | | | | | | | |
+ | | | | | | | DragonFly 5.6.1
+ | | FreeBSD macOS | | | |
+ | | 11.3 10.15 | | | |
| FreeBSD | | | | OpenBSD 6.6 |
- | 12.1 | macOS | `-------. | |
- | | | 10.15.1 | | | DragonFly 5.6.2
- | | | | *--NetBSD | | |
- | | | | | 9.0 | | |
- | | | | | | | | |
- | | | | | | | | DragonFly 5.8
- | | | | | | | | |
- | | | | | | | | DragonFly 5.6.3
- | | | | | | NetBSD | |
- | | | | | | 8.2 | |
- | | | | | | | | DragonFly 5.8.1
+ | 12.1 | macOS | `-------. | |
+ | | | 10.15.1 | | | DragonFly 5.6.2
+ | | | | *--NetBSD | | |
+ | | | | | 9.0 | | |
+ | | | | | | | | |
+ | | | | | | | | DragonFly 5.8
+ | | | | | | | | |
+ | | | | | | | | DragonFly 5.6.3
+ | | | | | | NetBSD | |
+ | | | | | | 8.2 | |
+ | | | | | | | | DragonFly 5.8.1
| | | | | | | OpenBSD 6.7 |
- | | FreeBSD | | | | | |
- | | 11.4 | | | | | |
- | | | | | | | DragonFly 5.8.2
- | | | | | | | DragonFly 5.8.3
+ | | FreeBSD | | | | | |
+ | | 11.4 | | | | | |
+ | | | | | | | DragonFly 5.8.2
+ | | | | | | | DragonFly 5.8.3
| | | | NetBSD | OpenBSD 6.8 |
- | FreeBSD macOS | 9.1 | | |
- | 12.2 11 | | | | |
- | | | | | | | |
- | `------. | | | | | |
- | | | | | | | |
- *--FreeBSD | | | | | | |
+ | FreeBSD macOS | 9.1 | | |
+ | 12.2 11 | | | | |
+ | | | | | | | |
+ | `------. | | | | | |
+ | | | | | | | |
+ *--FreeBSD | | | | | | |
| 13.0 | | | NetBSD | OpenBSD 6.9 DragonFly 6.0.0
- | | | | | 9.2 | | |
- | | | | | | | | DragonFly 6.0.1
- | | | | | | | | |
+ | | | | | 9.2 | | |
+ | | | | | | | | DragonFly 6.0.1
+ | | | | | | | | |
| | FreeBSD macOS | | | OpenBSD 7.0 |
- | | 12.3 12 | | | | |
- | | | | | | | | DragonFly 6.2.1
+ | | 12.3 12 | | | | |
+ | | | | | | | | DragonFly 6.2.1
| | | | | | | OpenBSD 7.1 |
- | FreeBSD | | | | | | |
- | 13.1 | | | | | | |
- | | | | | | | | DragonFly 6.2.2
- | | | | | NetBSD | | |
+ | FreeBSD | | | | | | |
+ | 13.1 | | | | | | |
+ | | | | | | | | DragonFly 6.2.2
+ | | | | | NetBSD | | |
| | | macOS | 9.3 | OpenBSD 7.2 |
- | | | 13 | | | | |
- | | FreeBSD | | | | | |
- | | 12.4 | | | | | |
- | | | | | | | DragonFly 6.4.0
+ | | | 13 | | | | |
+ | | FreeBSD | | | | | |
+ | | 12.4 | | | | | |
+ | | | | | | | DragonFly 6.4.0
| | | | | | OpenBSD 7.3 |
- | FreeBSD | | | | | |
- | 13.2 | | | | | |
- | | | | | | | |
- | `------. | | | | | |
- | | macOS | | | | |
- | | 14 | | | | |
+ | FreeBSD | | | | | |
+ | 13.2 | | | | | |
+ | | | | | | | |
+ | `------. | | | | | |
+ | | macOS | | | | |
+ | | 14 | | | | |
| | | | | | OpenBSD 7.4 |
- *--FreeBSD | | | | | | |
- | 14.0 | | | | | | |
- | | | | | | | | |
- | | FreeBSD | | NetBSD | | |
- | | 13.3 | | 9.4 | | |
- | | | | | | | |
- | | | | *--NetBSD | | |
- | | | | | 10.0 | | |
- | | | | | | | | |
+ *--FreeBSD | | | | | | |
+ | 14.0 | | | | | | |
+ | | | | | | | | |
+ | | FreeBSD | | NetBSD | | |
+ | | 13.3 | | 9.4 | | |
+ | | | | | | | |
+ | | | | *--NetBSD | | |
+ | | | | | 10.0 | | |
+ | | | | | | | | |
| | | | | | | OpenBSD 7.5 |
- | | | | | | NetBSD | |
- | | | | | | 8.3 | |
- | FreeBSD | | | | | |
- | 14.1 | | | | | |
- | | | macOS | | | |
- | | | 15 | | | |
- | | FreeBSD | | | | |
+ | | | | | | NetBSD | |
+ | | | | | | 8.3 | |
+ | FreeBSD | | | | | |
+ | 14.1 | | | | | |
+ | | | macOS | | | |
+ | | | 15 | | | |
+ | | FreeBSD | | | | |
| | 13.4 | | | OpenBSD 7.6 |
- | FreeBSD | | | | | |
- | 14.2 | | | | | |
- | | | | | NetBSD | |
- | | | | | 10.1 | |
- | | FreeBSD | | | |
- | | 13.5 | | | |
+ | FreeBSD | | | | | |
+ | 14.2 | | | | | |
+ | | | | | NetBSD | |
+ | | | | | 10.1 | |
+ | | FreeBSD | | | |
+ | | 13.5 | | | |
| | | | OpenBSD 7.7 |
- | | | | | DragonFly 6.4.1
- | | | | | DragonFly 6.4.2
- | FreeBSD | | | |
- | 14.3 | | | |
- | macOS | | |
- | 26 | | |
+ | | | | | DragonFly 6.4.1
+ | | | | | DragonFly 6.4.2
+ | FreeBSD | | | |
+ | 14.3 | | | |
+ | macOS | | |
+ | 26 | | |
| | | OpenBSD 7.8 |
- | | | | |
+ | | | | |
FreeBSD 16 -current | NetBSD -current OpenBSD -current DragonFly -current
- | | | | |
- v v v v v
+ | | | | |
+ v v v v v
Time
----------------
diff --git a/sys/dev/random/fenestrasX/fx_pool.c b/sys/dev/random/fenestrasX/fx_pool.c
index b6ffc202769e..59273a0a3f9d 100644
--- a/sys/dev/random/fenestrasX/fx_pool.c
+++ b/sys/dev/random/fenestrasX/fx_pool.c
@@ -167,10 +167,7 @@ static const struct fxrng_ent_char {
[RANDOM_RANDOMDEV] = {
.entc_cls = &fxrng_lo_push,
},
- [RANDOM_PURE_SAFE] = {
- .entc_cls = &fxrng_hi_push,
- },
- [RANDOM_PURE_GLXSB] = {
+ [RANDOM_PURE_TPM] = {
.entc_cls = &fxrng_hi_push,
},
[RANDOM_PURE_RDRAND] = {
@@ -197,9 +194,6 @@ static const struct fxrng_ent_char {
[RANDOM_PURE_DARN] = {
.entc_cls = &fxrng_hi_pull,
},
- [RANDOM_PURE_TPM] = {
- .entc_cls = &fxrng_hi_push,
- },
[RANDOM_PURE_VMGENID] = {
.entc_cls = &fxrng_hi_push,
},
@@ -212,6 +206,12 @@ static const struct fxrng_ent_char {
[RANDOM_PURE_ARM_TRNG] = {
.entc_cls = &fxrng_hi_pull,
},
+ [RANDOM_PURE_SAFE] = {
+ .entc_cls = &fxrng_hi_push,
+ },
+ [RANDOM_PURE_GLXSB] = {
+ .entc_cls = &fxrng_hi_push,
+ },
};
CTASSERT(nitems(fxrng_ent_char) == ENTROPYSOURCE);
diff --git a/sys/dev/random/random_harvestq.c b/sys/dev/random/random_harvestq.c
index b591ffd3b544..296721d2c4e9 100644
--- a/sys/dev/random/random_harvestq.c
+++ b/sys/dev/random/random_harvestq.c
@@ -662,8 +662,7 @@ static const char *random_source_descr[/*ENTROPYSOURCE*/] = {
[RANDOM_UMA] = "UMA",
[RANDOM_CALLOUT] = "CALLOUT",
[RANDOM_RANDOMDEV] = "RANDOMDEV", /* ENVIRONMENTAL_END */
- [RANDOM_PURE_SAFE] = "PURE_SAFE", /* PURE_START */
- [RANDOM_PURE_GLXSB] = "PURE_GLXSB",
+ [RANDOM_PURE_TPM] = "PURE_TPM", /* PURE_START */
[RANDOM_PURE_RDRAND] = "PURE_RDRAND",
[RANDOM_PURE_RDSEED] = "PURE_RDSEED",
[RANDOM_PURE_NEHEMIAH] = "PURE_NEHEMIAH",
@@ -672,11 +671,12 @@ static const char *random_source_descr[/*ENTROPYSOURCE*/] = {
[RANDOM_PURE_BROADCOM] = "PURE_BROADCOM",
[RANDOM_PURE_CCP] = "PURE_CCP",
[RANDOM_PURE_DARN] = "PURE_DARN",
- [RANDOM_PURE_TPM] = "PURE_TPM",
[RANDOM_PURE_VMGENID] = "PURE_VMGENID",
[RANDOM_PURE_QUALCOMM] = "PURE_QUALCOMM",
[RANDOM_PURE_ARMV8] = "PURE_ARMV8",
[RANDOM_PURE_ARM_TRNG] = "PURE_ARM_TRNG",
+ [RANDOM_PURE_SAFE] = "PURE_SAFE",
+ [RANDOM_PURE_GLXSB] = "PURE_GLXSB",
/* "ENTROPYSOURCE" */
};
CTASSERT(nitems(random_source_descr) == ENTROPYSOURCE);
diff --git a/sys/dev/safe/safe.c b/sys/dev/safe/safe.c
index c512f3fc62c0..21824ba8de8d 100644
--- a/sys/dev/safe/safe.c
+++ b/sys/dev/safe/safe.c
@@ -424,6 +424,8 @@ safe_attach(device_t dev)
#ifdef SAFE_DEBUG
safec = sc; /* for use by hw.safe.dump */
#endif
+ gone_in(16, "%s(4) is deprecated in 15.0 and removed in 16.0\n",
+ safe_driver.name);
return (0);
bad4:
crypto_unregister_all(sc->sc_cid);
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index fa7035771714..6c072e0fec38 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -535,6 +535,10 @@ syncache_timer(void *xsch)
TCPSTAT_INC(tcps_sndtotal);
TCPSTAT_INC(tcps_sc_retransmitted);
} else {
+ /*
+ * Most likely we are memory constrained, so free
+ * resources.
+ */
syncache_drop(sc, sch);
TCPSTAT_INC(tcps_sc_dropped);
}
@@ -734,7 +738,7 @@ syncache_unreach(struct in_conninfo *inc, tcp_seq th_seq, uint16_t port)
goto done;
/*
- * If we've rertransmitted 3 times and this is our second error,
+ * If we've retransmitted 3 times and this is our second error,
* we remove the entry. Otherwise, we allow it to continue on.
* This prevents us from incorrectly nuking an entry during a
* spurious network outage.
@@ -1562,6 +1566,10 @@ syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th,
TCPSTAT_INC(tcps_sndacks);
TCPSTAT_INC(tcps_sndtotal);
} else {
+ /*
+ * Most likely we are memory constrained, so free
+ * resources.
+ */
syncache_drop(sc, sch);
TCPSTAT_INC(tcps_sc_dropped);
}
@@ -1747,6 +1755,9 @@ syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th,
TCPSTAT_INC(tcps_sndacks);
TCPSTAT_INC(tcps_sndtotal);
} else {
+ /*
+ * Most likely we are memory constrained, so free resources.
+ */
if (sc != &scs)
syncache_free(sc);
TCPSTAT_INC(tcps_sc_dropped);
diff --git a/sys/netlink/netlink_generic.c b/sys/netlink/netlink_generic.c
index 00f47e60f013..d20ec4c7545f 100644
--- a/sys/netlink/netlink_generic.c
+++ b/sys/netlink/netlink_generic.c
@@ -366,8 +366,10 @@ genl_register_family(const char *family_name, size_t hdrsize,
GENL_LOCK();
for (u_int i = 0; i < MAX_FAMILIES; i++)
if (families[i].family_name != NULL &&
- strcmp(families[i].family_name, family_name) == 0)
+ strcmp(families[i].family_name, family_name) == 0) {
+ GENL_UNLOCK();
return (0);
+ }
/* Microoptimization: index 0 is reserved for the control family. */
gf = NULL;
diff --git a/sys/sys/random.h b/sys/sys/random.h
index 803c07bbdfba..d801b04e5686 100644
--- a/sys/sys/random.h
+++ b/sys/sys/random.h
@@ -89,8 +89,7 @@ enum random_entropy_source {
RANDOM_ENVIRONMENTAL_END = RANDOM_RANDOMDEV,
/* Fast hardware random-number sources from here on. */
RANDOM_PURE_START,
- RANDOM_PURE_SAFE = RANDOM_PURE_START,
- RANDOM_PURE_GLXSB,
+ RANDOM_PURE_TPM = RANDOM_PURE_START,
RANDOM_PURE_RDRAND,
RANDOM_PURE_RDSEED,
RANDOM_PURE_NEHEMIAH,
@@ -99,11 +98,12 @@ enum random_entropy_source {
RANDOM_PURE_BROADCOM,
RANDOM_PURE_CCP,
RANDOM_PURE_DARN,
- RANDOM_PURE_TPM,
RANDOM_PURE_VMGENID,
RANDOM_PURE_QUALCOMM,
RANDOM_PURE_ARMV8,
RANDOM_PURE_ARM_TRNG,
+ RANDOM_PURE_SAFE,
+ RANDOM_PURE_GLXSB,
ENTROPYSOURCE
};
_Static_assert(ENTROPYSOURCE <= 32,
diff --git a/tests/sys/netinet/Makefile b/tests/sys/netinet/Makefile
index 9739221676ce..b3d76d1da125 100644
--- a/tests/sys/netinet/Makefile
+++ b/tests/sys/netinet/Makefile
@@ -46,6 +46,8 @@ TEST_METADATA.fibs_test+= execenv="jail" \
TEST_METADATA.forward+= required_programs="python" \
execenv="jail" \
execenv_jail_params="vnet allow.raw_sockets"
+TEST_METADATA.multicast+= execenv="jail" \
+ execenv_jail_params="vnet"
TEST_METADATA.output+= required_programs="python"
TEST_METADATA.redirect+= required_programs="python"
diff --git a/usr.sbin/bsdinstall/partedit/gpart_ops.c b/usr.sbin/bsdinstall/partedit/gpart_ops.c
index 0bcd17950daf..8da85a805545 100644
--- a/usr.sbin/bsdinstall/partedit/gpart_ops.c
+++ b/usr.sbin/bsdinstall/partedit/gpart_ops.c
@@ -139,16 +139,16 @@ newfs_command(const char *fstype, int use_default)
} else if (strcmp(fstype, "freebsd-zfs") == 0) {
int i;
struct bsddialog_menuitem items[] = {
- {"", 0, true, "fletcher4", "checksum algorithm: fletcher4",
+ {"", true, 0, "fletcher4", "checksum algorithm: fletcher4",
"Use fletcher4 for data integrity checking. "
"(default)"},
- {"", 0, false, "fletcher2", "checksum algorithm: fletcher2",
+ {"", false, 0, "fletcher2", "checksum algorithm: fletcher2",
"Use fletcher2 for data integrity checking. "
"(not recommended)"},
- {"", 0, false, "sha256", "checksum algorithm: sha256",
+ {"", false, 0, "sha256", "checksum algorithm: sha256",
"Use sha256 for data integrity checking. "
"(not recommended)"},
- {"", 0, false, "atime", "Update atimes for files",
+ {"", false, 0, "atime", "Update atimes for files",
"Disable atime update"},
};
@@ -188,11 +188,11 @@ newfs_command(const char *fstype, int use_default)
strcmp(fstype, "ms-basic-data") == 0) {
int i;
struct bsddialog_menuitem items[] = {
- {"", 0, true, "FAT32", "FAT Type 32",
+ {"", true, 0, "FAT32", "FAT Type 32",
"Create a FAT32 filesystem (default)"},
- {"", 0, false, "FAT16", "FAT Type 16",
+ {"", false, 0, "FAT16", "FAT Type 16",
"Create a FAT16 filesystem"},
- {"", 0, false, "FAT12", "FAT Type 12",
+ {"", false, 0, "FAT12", "FAT Type 12",
"Create a FAT12 filesystem"},
};
diff --git a/usr.sbin/jail/jail.8 b/usr.sbin/jail/jail.8
index 9aed9b671b9e..3a925bda8174 100644
--- a/usr.sbin/jail/jail.8
+++ b/usr.sbin/jail/jail.8
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2000, 2003 Robert N. M. Watson
.\" Copyright (c) 2008-2012 James Gritton
.\" All rights reserved.
@@ -23,7 +26,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 8, 2025
+.Dd November 6, 2025
.Dt JAIL 8
.Os
.Sh NAME
@@ -1120,7 +1123,7 @@ process.
This manual page documents the configuration steps necessary to support
either of these steps, although the configuration steps may need to be
refined based on local requirements.
-.Ss "Setting up a Jail Directory Tree"
+.Ss Setting up a Jail Directory Tree From Source
To set up a jail directory tree containing an entire
.Fx
distribution, the following
@@ -1133,8 +1136,19 @@ mkdir -p $D
make world DESTDIR=$D
make distribution DESTDIR=$D
.Ed
+.Ss Setting up a Jail Directory Tree from Distribution Files
+To set up a jail directory tree containing an entire
+.Fx
+distribution, the following
+.Xr sh 1
+command script can be used:
+.Bd -literal -offset indent
+D=/here/is/the/jail
+mkdir -p $D
+tar -xf /usr/freebsd-dist/base.txz -C $D --unlink
+.Ed
.Pp
-In many cases this example would put far more in the jail than needed.
+In many cases these examples would put far more in the jail than needed.
In the other extreme case a jail might contain only one file:
the executable to be run in the jail.
.Pp
diff --git a/usr.sbin/utx/utx.8 b/usr.sbin/utx/utx.8
index ddcdcc08b2d2..354691e7138f 100644
--- a/usr.sbin/utx/utx.8
+++ b/usr.sbin/utx/utx.8
@@ -92,4 +92,4 @@ utility replaced
in
.Fx 10.0 .
.Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org