FreeBSD/src c2346c3sbin/pfctl parse.y, share/man/man5 pf.conf.5

pf: support source-hash and random with tables and dynifs, not just pools

This finally allows to use source-hash for dynamic loadbalancing, eg.
"rdr-to <hosts> source-hash", instead of just round-robin and least-states.

An older pre-siphash version of this diff was tested by many people.

OK tedu@ benno@

Obtained from:  OpenBSD, reyk <reyk at openbsd.org>, 252a05523f
Sponsored by:   Rubicon Communications, LLC ("Netgate")
DeltaFile
+58-18tests/sys/netpfil/pf/nat64.sh
+62-12sys/netpfil/pf/pf_lb.c
+18-25sbin/pfctl/parse.y
+5-5share/man/man5/pf.conf.5
+5-0sys/netpfil/pf/pf.h
+148-605 files

FreeBSD/src bc830a1sys/netpfil/pf pf_lb.c

pf: use siphash for pf_lb

for ipv6, we stretch it out a bit, but good enough.
ok reyk

Obtained from:  OpenBSD, tedu <tedu at openbsd.org>, a558d13e2f
Sponsored by:   Rubicon Communications, LLC ("Netgate")
DeltaFile
+23-37sys/netpfil/pf/pf_lb.c
+23-371 files

FreeBSD/src 050691fsys/netpfil/pf pf_lb.c

pf: Comment is no longer true, remove it.

Obtained from:  OpenBSD, mcbride <mcbride at openbsd.org>, 6263ddcd7c
Sponsored by:   Rubicon Communications, LLC ("Netgate")
DeltaFile
+0-3sys/netpfil/pf/pf_lb.c
+0-31 files

FreeBSD/src dcb4ae5secure/usr.sbin/sshd Makefile

openssh: Add GSSAPI and Kerberos support to sshd Makefile

Reported by:    cy
Reviewed by:    emaste
Approved by:    emaste (mentor)
Fixes:  0fdf8fae8b56 ("openssh: Update to 9.8p1")
DeltaFile
+6-0secure/usr.sbin/sshd/Makefile
+6-01 files

FreeBSD/src fb4102busr.bin/vtfontcvt vtfontcvt.c

vtfontcvt: Improve error message for unsupported DWIDTH

vtfontcvt requires that all glyphs are 1x or 2x a common width,
reporting for example "bitmap with unsupported DWIDTH 27 0 on line xxx"
if the font is expected to be 32 pixels wide.

Add the expected / permitted values to the error message to make the
issue more clear - for the same example,
"bitmap with unsupported DWIDTH 27 0 (not 32 or 64)".

Reviewed by:    ziaee
Sponsored by:   The FreeBSD Foundation

(cherry picked from commit 3433daae0d20d55503084c4d17b8a3e685657ad2)
(cherry picked from commit 036ce9b76e0ac5bb3a611a4b259a39e3158c25d4)
DeltaFile
+2-2usr.bin/vtfontcvt/vtfontcvt.c
+2-21 files

FreeBSD/src 9197c04usr.bin/chkey chkey.1, usr.bin/keylogin keylogin.1 keylogin.c

Deprecate publickey(5) stuff

This uses DES and it's likely that nobody uses that in 2025.
If somebody uses this we help them by deprecating and removing this.

Reviewed by:    bapt, emaste
Differential Revision:  https://reviews.freebsd.org/D30682

(cherry picked from commit 723425f837270dd3b22098168ae9464a1ebe38c6)
DeltaFile
+5-0usr.bin/keylogout/keylogout.1
+5-0usr.bin/newkey/newkey.8
+5-0usr.sbin/keyserv/keyserv.8
+5-0usr.bin/chkey/chkey.1
+5-0usr.bin/keylogin/keylogin.1
+1-0usr.bin/keylogin/keylogin.c
+26-04 files not shown
+30-010 files

FreeBSD/src 8a02eb2secure/lib/libssh Makefile

libssh: Remove progressmeter

It is used only by scp and sftp, and already included directly in their
Makefiles.  It does not belong in libssh.

Fixes: d8b043c8d497 ("Update for 3.6.1p1; also remove Kerberos IV shims.")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48871

(cherry picked from commit c0af32952564099fe30a34aeb335f95a6dc811ba)
DeltaFile
+1-1secure/lib/libssh/Makefile
+1-11 files

FreeBSD/src 56c8c19sys/fs/nfsclient nfs_clstate.c

nfscl: Return appropriate reply status for NFSv4.1 callbacks

Certain NFSv4.1 callbacks are not currently supported/used
by the FreeBSD client.  Without this patch, NFS4ERR_NOTSUPP
is replied for the callbacks.  Since NFSv4.1 does not specify
all of these callbacks as optional, I think it is preferable
to reply NFS_OK or NFS4ERR_REJECT_DELEG instead of NFS4ERR_NOTSUPP.

This patch changes the reply status for these unsupported
callbacks, which the client has no use for.

I am not aware of any NFSv4.1 servers that will perform
any of these callbacks against the FreeBSD client at this time.

MFC after:      2 weeks
DeltaFile
+19-0sys/fs/nfsclient/nfs_clstate.c
+19-01 files

FreeBSD/src 05dfaadsys/compat/linuxkpi/common/include/linux shrinker.h, sys/compat/linuxkpi/common/src linux_shrinker.c

linuxkpi: Add `shrinker_alloc()` and `shrinker_free()`

They are used by the DRM drivers in Linux 6.7.

Bump `FreeBSD_version` because external drivers that use `struct
shrinker` will have to be recompiled.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48747
DeltaFile
+28-0sys/compat/linuxkpi/common/src/linux_shrinker.c
+16-0sys/compat/linuxkpi/common/include/linux/shrinker.h
+1-1sys/sys/param.h
+45-13 files

FreeBSD/src 1396a73sys/compat/linuxkpi/common/include/linux pci.h

linuxkpi: Print "TODO" if a driver call `pci_wake_from_d3()`

This helps developers working with linuxkpi find out a function is
already defined but is just a stub.

Reported by:    bz
Reviewed by:    bz, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48862
DeltaFile
+3-0sys/compat/linuxkpi/common/include/linux/pci.h
+3-01 files

FreeBSD/src dec2806sys/compat/linuxkpi/common/include/linux pci.h

linuxkpi: Define `PCI_IRQ_LEGACY` for Linux < 6.10

Commit 03e39d3d42e70482cd6f65ecaa5cf8ff9674d27c decreased the Linux
version that exposes this constant to be Linux 6.7. It happens that the
constant is older.

However, it is removed in Linux 6.10. Let's change the version condition
to say that it is defined for any version before 6.10.

Reported by:    bz
Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48861
DeltaFile
+1-1sys/compat/linuxkpi/common/include/linux/pci.h
+1-11 files

FreeBSD/src 585cdb7sys/compat/linuxkpi/common/include/linux fs.h, sys/compat/linuxkpi/common/src linux_compat.c

linuxkpi: Defaults to `get_file_rcu()` version from Linux 6.7

To use the old version, one has to explicitly set `LINUXKPI_VERSION` to
the expected version of Linux KPI.

Reported by:    bz
Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48860
DeltaFile
+4-4sys/compat/linuxkpi/common/include/linux/fs.h
+1-1sys/compat/linuxkpi/common/src/linux_compat.c
+5-52 files

FreeBSD/src cdb24fblib/libsys Makefile.sys Symbol.map, libexec/rtld-elf/rtld-libc Makefile.inc

libsys: Don't create or expose __realpathat

Previously, __realpathat was in libc and libsys (as is currently
standard), but not exported from libc which meant the stub in libc was
not filtered and thus libc's copy of the syscall was used.  This broke
an upcoming change to CheriBSD limiting syscalls to libsys.

The realpath(3) implementation now uses __sys___realpathat so there are no
consumers of __realpathat.  Switch it to PSEUDO (only _foo and __sys_foo
symbols) and remove __realpathat from Symbol.map.

This is a corrected version of 58d43a3cd72a4a85ab8489313672c7eab367495e.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D49049
DeltaFile
+1-1libexec/rtld-elf/rtld-libc/Makefile.inc
+1-0lib/libsys/Makefile.sys
+0-1lib/libsys/Symbol.map
+2-23 files

FreeBSD/src 7f8a5c5share/man/man4 upgt.4

upgt: Deprecate ancient 802.11b/g driver

Recently-reported bugs in this driver should be fixed, but also the
hardware it supports is obsolete so mark it for deprecation.

PR:             284876
Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49045
DeltaFile
+6-1share/man/man4/upgt.4
+6-11 files

FreeBSD/src fd3016bcrypto/openssh blacklist.c blacklist_client.h, lib/libc/sys _umtx_op.2 fsync.2

Canonicalize the name of the FreeBSD Foundation

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation

(cherry picked from commit dab59af3bcc7cb7ba01569d3044894b3e860ad56)
(cherry picked from commit ef3ed0726f2230e38df76a32a3b9ff145147af65)
DeltaFile
+1-1crypto/openssh/blacklist.c
+1-1crypto/openssh/blacklist_client.h
+1-1lib/libc/sys/_umtx_op.2
+1-1lib/libc/sys/fsync.2
+1-1lib/libc/sys/sigfastblock.2
+1-1lib/libc/sys/thr_exit.2
+6-622 files not shown
+28-2828 files

FreeBSD/src 0ae642ccrypto/openssh ChangeLog servconf.c

openssh: Update to 9.9p2

This release exists primarily to fix two security bugs.  The fixes have
been independently imported into FreeBSD.  This import serves to update
the ssh and sshd version number.

A few minor bug fixes are also included; see the upstream release notes
for full details of the 9.9p2 release
(https://www.openssh.com/releasenotes.html).

Sponsored by:   The FreeBSD Foundation
DeltaFile
+137-2,049crypto/openssh/ChangeLog
+45-16crypto/openssh/servconf.c
+23-5crypto/openssh/readconf.c
+26-0crypto/openssh/defines.h
+22-1crypto/openssh/misc.c
+12-5crypto/openssh/mlkem768.sh
+265-2,07613 files not shown
+289-2,10019 files

FreeBSD/src e959790crypto/openssh ssh-sk-helper.0

ssh: Remove unused prerendered man page

We use the source mdoc man pages (i.e., ssh-sk-helper.8) not the
rendered ones included in the OpenSSH releases.

Fixes: 0fdf8fae8b56 ("openssh: Update to 9.8p1")
Sponsored by: The FreeBSD Foundation
DeltaFile
+0-34crypto/openssh/ssh-sk-helper.0
+0-341 files

FreeBSD/src 4ddbb79release/scripts pkg-stage.sh

pkg-stage.sh: kde5 -> kde

The "kde5" package no longer exists; KDE goes to 6.

Note: Depending on the size of 13.5-BETA3 DVD images, KDE might end
up being removed from this list in the near future.

With hat:       re@
MFC after:      30 seconds
Sponsored by:   Amazon

(cherry picked from commit 0d7b98c06c5ec9638020844ee460af075cfc6e54)
DeltaFile
+1-1release/scripts/pkg-stage.sh
+1-11 files

FreeBSD/src 0d7b98crelease/scripts pkg-stage.sh

pkg-stage.sh: kde5 -> kde

The "kde5" package no longer exists; KDE goes to 6.

Note: Depending on the size of 13.5-BETA3 DVD images, KDE might end
up being removed from this list in the near future.

With hat:       re@
MFC after:      30 seconds
Sponsored by:   Amazon
DeltaFile
+1-1release/scripts/pkg-stage.sh
+1-11 files

FreeBSD/src 3d9fd9fcrypto/openssh libcrux_mlkem768_sha3.h sntrup761.c

openssh: Update to 9.9p1

Highlights from the release notes are reproduced below.  Bug fixes and
improvements that were previously merged into FreeBSD have been elided.

See the upstream release notes for full details of the 9.9p1 release
(https://www.openssh.com/releasenotes.html).

---

Future deprecation notice
=========================

OpenSSH plans to remove support for the DSA signature algorithm in
early 2025.

Potentially-incompatible changes
--------------------------------


    [55 lines not shown]
DeltaFile
+12,332-0crypto/openssh/libcrux_mlkem768_sha3.h
+1,920-1,034crypto/openssh/sntrup761.c
+1,075-1,065crypto/openssh/ChangeLog
+411-468crypto/openssh/moduli
+133-256crypto/openssh/ssh-rsa.c
+213-83crypto/openssh/sshkey.c
+16,084-2,90686 files not shown
+18,090-3,55392 files

FreeBSD/src 58d43a3lib/libsys Symbol.map Makefile.sys

Revert "libsys: Don't create or expose __realpathat"

This change broke RTLD.  Revert while I test a fix.

This reverts commit fdccf0336197afe59be6f8859177fe2ff8f87fa6.
DeltaFile
+1-0lib/libsys/Symbol.map
+0-1lib/libsys/Makefile.sys
+1-12 files

FreeBSD/src b4bb480secure/libexec/sshd-session Makefile

ssh: Remove unintended XAUTH_PATH setting

This crept in while rebasing the OpenSSH 9.8p1 update across
a63701848fe5 ("ssh: Move XAUTH_PATH setting to ssh.mk").

Fixes: 0fdf8fae8b56 ("openssh: Update to 9.8p1")
Sponsored by:   The FreeBSD Foundation
DeltaFile
+0-4secure/libexec/sshd-session/Makefile
+0-41 files

FreeBSD/src 0fdf8facrypto/openssh ChangeLog sshd.c

openssh: Update to 9.8p1

Highlights from the release notes are reproduced below.  Some security
and bug fixes were previously merged into FreeBSD and have been elided.
See the upstream release notes for full details
(https://www.openssh.com/releasenotes.html).

---

Future deprecation notice
=========================

OpenSSH plans to remove support for the DSA signature algorithm in
early 2025.

Potentially-incompatible changes
--------------------------------

 * sshd(8): the server will now block client addresses that

    [56 lines not shown]
DeltaFile
+1,601-1,235crypto/openssh/ChangeLog
+542-1,223crypto/openssh/sshd.c
+1,505-0crypto/openssh/sshd-session.c
+468-454crypto/openssh/moduli
+373-25crypto/openssh/srclimit.c
+330-0crypto/openssh/kex-names.c
+4,819-2,937114 files not shown
+6,766-4,352120 files

FreeBSD/src fdccf03lib/libsys Makefile.sys Symbol.map

libsys: Don't create or expose __realpathat

Previously, __realpathat was in libc and libsys (as is currently
standard), but not exported from libc which meant the stub in libc was
not filtered and thus libc's copy of the syscall was used.  This broke
an upcoming change to CheriBSD limiting syscalls to libsys.

The realpath(3) implementation now uses __sys___realpathat so there are no
consumers of __realpathat.  Switch it to PSEUDO (only _foo and __sys_foo
symbols) and remove __realpathat from Symbol.map.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D49049
DeltaFile
+1-0lib/libsys/Makefile.sys
+0-1lib/libsys/Symbol.map
+1-12 files

FreeBSD/src ed95567lib/libc/stdlib realpath.c

libc: use __sys___realpathat directly in realpath

We don't need to use an interposable symbol for this purpose and it's
simpler to just call the syscall in libsys.  This resolves a bug where
we were incorrectly using __realpathat in libc not libsys.

While here, drop support for running on a FreeBSD 12 kernel and simplify
includes.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D49048
DeltaFile
+3-9lib/libc/stdlib/realpath.c
+3-91 files

FreeBSD/src 06016adcrypto/openssh ssh_config.5

ssh_config.5: Remove redundant CheckHostIP default text

In 2000 (commit a95c1225217b) we changed the CheckHostIP default to
"no".  We added text to ssh_config(5) documenting FreeBSD's default.

In 2021 OpenSSH made the same change, released with OpenSSH 8.5p1.
When we imported the update the added text remained, resulting in:

    If the option is set to no (the default), the check will not be
    executed.  The default is no.

Remove the now-redundant text.

Fixes: 206be79acbde ("Vendor import of OpenSSH 8.5p1")
Sponsored by:   The FreeBSD Foundation
DeltaFile
+0-2crypto/openssh/ssh_config.5
+0-21 files

FreeBSD/src 9fcb7c6sys/dev/usb/wlan if_uath.c

uath: Avoid a NULL dereference

PR:             284643
Reviewed by:    adrian
Approved by:    emaste (mentor)
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D48948

(cherry picked from commit 4b77a9a80cf8a9cba5607d8d8fa0742334dcf0f4)
DeltaFile
+6-4sys/dev/usb/wlan/if_uath.c
+6-41 files

FreeBSD/src 2dcc11dsys/dev/usb/wlan if_uath.c

uath: Avoid a NULL dereference

PR:             284643
Reviewed by:    adrian
Approved by:    emaste (mentor)
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D48948

(cherry picked from commit 4b77a9a80cf8a9cba5607d8d8fa0742334dcf0f4)
DeltaFile
+6-4sys/dev/usb/wlan/if_uath.c
+6-41 files

FreeBSD/src b267493crypto/openssh FREEBSD-upgrade

ssh: update FREEBSD-upgrade instructions

Make it clear that the 'freebsd-configure.sh' and 'freebsd-namespace.sh'
scripts are run from the crypto/openssh directory.

Sponsored by:   The FreeBSD Foundation

(cherry picked from commit 6834ca8a434b1b934f21bbc068c90ae5c7fec7ef)
DeltaFile
+2-0crypto/openssh/FREEBSD-upgrade
+2-01 files

FreeBSD/src 8c67967crypto/openssh sshconnect2.c ssh-agent.c

ssh: Fix cases where error codes were not correctly set

Obtained from:  OpenSSH 38df39ecf278
Security:       CVE-2025-26465
Approved by:    so
Sponsored by:   The FreeBSD Foundation

(cherry picked from commit 170059d6d33cf4e890067097f3c0beb3061cabbd)
(cherry picked from commit 4ad8c195cf54411e3b3fa0bec227eb83ca078404)
DeltaFile
+4-1crypto/openssh/sshconnect2.c
+5-0crypto/openssh/ssh-agent.c
+3-1crypto/openssh/krl.c
+3-1crypto/openssh/ssh-sk-client.c
+1-0crypto/openssh/sshsig.c
+16-35 files