FreeBSD git weekly: 2025-09-22 to 2025-09-28

Introduction

This is a display of mostly-automatically-classified git commits from 2025-09-22 to 2025-09-28.

In the future, these reports might include summaries or additional information, but for now our focus is figuring out what type of classification would be most useful.

DEBUG: This version of the report is primarily for checking the classifiers, and therefore contains extra information (in this colour).

DEBUG: In addition, debug pages for the latest week are often produced by a daily or hourly cronjob, and thus might not have any human review. Don't worry if you see commits in the wrong section; I'll check and fix them.

Table of contents and commits per category:

(4) Highlighted commits (these are copies, not in stats)
1 0.6% Userland programs
19 12.3% Documentation
26 16.9% Hardware support
19 12.3% Networking
20 13.0% System administration
6 3.9% Libraries
1 0.6% Filesystems
11 7.1% Kernel
31 20.1% Build system
1 0.6% Internal organizational stuff
7 4.5% Testing
2 1.3% Style, typos, and comments
8 5.2% Contrib code
2 1.3% Reverted commits
0 0.0% Unclassified commits
154 100% total
Technical notes about this page

debug: info about the automatic classification

num % num changed stage
2 1.3% 0 00-reverts
2 1.3% 0 01-style
47 30.5% 0 02-filenames_wildcards
6 3.9% 0 02b-filenames_wildcards2
61 39.6% 1 03-filenames_plain1
25 16.2% 0 04-filenames_plain2
7 4.5% 0 05-summary-prefix
4 2.6% 0 Manually-classified commits
0 0.0% 0 Unclassified commits

debug: more stats

num % stage
1 0.6% Misclassified commits
149 96.8% Classified commits, no corrections

debug: groups

0 0.0% num in revert
2 1.3% num in fixes
11 7.1% num in consecutive
13 8.4% Commits in groups

Highlighted commits

For extra visibility, these are copies of commits found in other sections. Most (if not all) come from the commit message containing "Relnotes:", or commits modifying UPDATING.

packages: Move powerd to its own package
Nearly everyone wants powerd to manage CPU frequency scaling on real
hardware, even if -utilities isn't installed.  Conversely, very small
jails might want -utilities but don't need powerd.

Move it to its own package and add it to the minimal set.

MFC after:      1 day
Reviewed by:    manu, imp
Differential Revision:  https://reviews.freebsd.org/D52645
5efd371bba1508ed94faed2afbd11936f5fe4dac Lexi Winter 2025-09-23 21:05:05

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

libpmc: Move libpmc and utils to a new pmc package
Due to the size of libpmc.so.5, this reduces the size of the -utilities
package by 10%.

MFC after:      1 day
Reviewed by:    manu, adrian, emaste
Differential Revision:  https://reviews.freebsd.org/D52662
67c3c3a274468d09925af3cf64da3f9cf878cc80 Lexi Winter 2025-09-23 21:30:49

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

packages: Replace libbz2 package with a bzip2 package
Currently libbz2 is in the libbz2 package, while bzip2 itself is in
-utilities, which is inconsistent.  Move both the library and the
utility to a new -bzip2 package, and use LIB_PACKAGE to create a
separate -bzip2-lib package for runtime dependencies.

Add the bzip2 package to the minimal set, and since newsyslogd uses
bzip2 for logfile compression, add a dependency from there.

MFC after:      1 day
Reviewed by:    manu
Differential Revision:  https://reviews.freebsd.org/D52663
61ca69110f2676b7dd3c7ff8dea899615d341e1e Lexi Winter 2025-09-23 21:37:06

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

RELNOTES: virtual_oss in base
Sponsored by: The FreeBSD Foundation
Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D52583
c457acb4ee821cf015930a94f52c3870786468a7 Christos Margiolis 2025-09-28 09:57:03

debug: classified in 03-filenames_plain1 by 'RELNOTES'

Userland programs

Commits about commands found in man section 1 (other than networking).

pwait: Fix timeout unit parser
The timeout parser would check the first character after the number and
ignore any subsequent ones.

While here, switch to bool for booleans and fix some style nits.

MFC after:      1 week
Reviewed by:    0mp, markj
Differential Revision:  https://reviews.freebsd.org/D52612
3aac05f56620712744cb57d71a0ef42f8d8e3b52 Dag-Erling Smørgrav 2025-09-23 12:56:04

debug: classified in 03-filenames_plain1 by 'bin/'

Documentation

Man pages, release notes, etc.

Commit group #0: blackhole.4: Describe better
blackhole.4: Describe better

Rewrite the document description to fit cleanly on one line and omit
crossreferences, to clean up apropos results.

MFC after:              3 days
Reviewed by:            tuexen, cperciva
Differential Revision:  https://reviews.freebsd.org/D52695
38f6a4467419f5b2344d184baa454c126e2919a9 Alexander Ziaee 2025-09-23 19:05:18

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'


blackhole.4: Describe even better

Rewrite the document description to omit ficticious "UDP connections".

Fixes:                  https://cgit.freebsd.org/src/commit/?id=38f6a4467419 (blackhole.4: Describe better)
MFC after:              3 days
Reviewed by:            tuexen
Reported by:            tuexen, zi
Differential Revision:  https://reviews.freebsd.org/D52696
f9a71840d8ee0cfff4ec983a589be53648e7017d Alexander Ziaee 2025-09-24 12:22:47

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

d.7: Fix synopsis
A predicate cannot be used without an action.

MFC after:      3 days
Event:          EuroBSDCon DevSummit 2025
ba05cddcc634ac235beb252bd505deb83dcd99f1 Mateusz Piotrowski 2025-09-24 05:42:49

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

vnet.9: Remove references to non-existant macros and update how to virtualize sysctls
Approved by:  bcr, ziaee
MFC after:      1 week
MFC to:         stable/14, stable/15
Sponsored by:   Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D52620
22886d3af0657dae3b547b21e612642bb47e0321 Brad Davis 2025-09-19 14:38:20

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

blackhole.4: Describe even better, take two
I meant to change this to tuexen's suggestion upon commit but failed.

MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=9e02de4ad6c3 (blackhole.4: Describe even better)
1a9ec72022ddce0cacb9aedda3d69aa95cd45ed0 Alexander Ziaee 2025-09-24 12:26:14

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

recoverdisk.1: Break lines at sentence stops
While here, remove whitespaces at end of lines.

Event:  EuroBSDcon 2025 Devsummit
2f031534d1347816a7889674b363975d181f8449 Benedict Reuschling 2025-09-24 14:47:56

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

build/development.7: System building examples
Consolidate examples to build the system in the build(7) manual where
the details about the syntax involved is documented. Remove them from
development(7), instead adding examples for patching the trees. They
are left in UPDATING for now, to hopefully be removed eventually.

Reduce documentation proliferation and create consistent, maintainable
doc about building the system, eventually removing the COMMMON ITEMS
section of UPDATING so there is a single source of truth in the cannon
and well-integrated location, the in-band system reference manual.

+ Example 1: Build and upgrade system in place
+ Example 2: Build and upgrade a custom kernel in place
+ Example 3: Build and upgrade a single piece of userspace
+ Example 4: Build and upgrade a loadable kernel module
+ Example 5: Quickly rebuild a kernel in place
+ Example 6: Cross-compiling for different architectures

The examples section of development(7) now contains examples for
applying patches to the trees.

There is certainy much more to do here, but it needs to be chunked.

MFC after:              3 days
Reviewed by:            imp (previous version), ivy (previous version)
Discussed with:         emaste, imp, jhb, ivy
Differential Revision:  https://reviews.freebsd.org/D48693
275f61111f43507a01eef064efc660f1fa72b6a9 Alexander Ziaee 2025-09-24 20:06:56

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

psignal(3): document return values of sig2str() and str2sig
Reviewed by:          bcr
Differential Revision:  https://reviews.freebsd.org/D52698
b0091036f7240ab244e86a087b18459185a260de Gleb Smirnoff 2025-09-25 08:19:46

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

pf.conf.5: Document a "once" filter option used to create one shot rules.
ok henning, mcbride, jmc

Obtained from:  OpenBSD, mikeb <mikeb@openbsd.org>, 355f9a50c1
Sponsored by:   Rubicon Communications, LLC ("Netgate")
b7ff11b380bf6ffaa5181596766e2f21a1eec962 Kristof Provost 2025-08-27 13:58:40

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

pfctl.8/pf.conf.5: Improve "once" bits
- use imperative tense in the pf.conf(5) "once" part
- leave printing implementation details to pfctl(8)'s "-s rules" part
- use more markup
- debug mode also prints expired rules

OK jmc sashan

Obtained from:  OpenBSD, kn <kn@openbsd.org>, 1f1797aba7
Sponsored by:   Rubicon Communications, LLC ("Netgate")
cc97633b4b7a3b670d6223b1cd79a0d807dcebbd Kristof Provost 2025-08-28 09:37:11

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

watchdog: Update man page for new API
Update man page to account for chnage in timeout representation
(sbintime_t vs power-of-2 nanoseconds), and addition of new
WDIOC_CONTROL ioctl.

Reviewed by:    ziaee
MFC after:      3 days
Sponsored by:   Juniper Networks, Inc.
Differential Revision:  https://reviews.freebsd.org/D52479
904ac13eed05fa6153393d692f8ecd45b5dabe11 Justin Hibbits 2025-09-25 13:52:29

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

kerneldocs: Update latex package
MFC after:    3 days
Reviewed by:    ziaee
Signed-off-by:  Minsoo Choo <minsoochoo0122@proton.me>
Closes:         https://github.com/freebsd/freebsd-src/pull/1853
cd813380ad832a0bfa5b99f22012092cc9d373b1 Minsoo Choo 2025-09-25 02:12:37

debug: classified in 03-filenames_plain1 by 'tools/kerneldoc/'

build.7: Improve building pkgbase
The packages target was previously listed under kernel, move it to the
general source make targets listing. Add the update-packages target as
well. Adjust the release building targets with package in their names
to clarify they are unrelated to pkgbase. Add the OBJROOT and REPODIR
variables to ENVIRONMENT.

MFC after:              3 days
Reviewed by:            ivy, markj (both previous versions)
Suggestions by:         des, emaste, ivy, kevans, markj
Fixes:                  https://cgit.freebsd.org/src/commit/?id=1d26746cfd4a (Document the packages target)
Fixes:                  https://cgit.freebsd.org/src/commit/?id=0ac8aa55da1c (Add incremental packages)
Fixes:                  https://cgit.freebsd.org/src/commit/?id=26490d9b74f0 (allow update-packages for first)
Differential Revision:  https://reviews.freebsd.org/D50289
7e8fb7756c3ed89a2141b923e6da1b6fd96f509c Alexander Ziaee 2025-09-25 12:19:52

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

BUF_ISLOCKED.9: drop a reference to lockstatus(9)
It's the same as lockmgr(9), which the man page already refers to.
5c0e5f418d9ff68a21d606d62b5fb748b7de229b Mateusz Guzik 2025-09-26 20:45:42

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

mktemp.1: Document TMPDIR in ENVIRONMENT
While here, use Ev for TMPDIR consistently.

MFC after:      3 days
Event:          EuroBSDCon 2025
6b164f18118d0e8dbf9826d7117e0e757f7eb727 Mateusz Piotrowski 2025-09-27 15:21:13

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

mrsas.4: Cleaning
+ Rewrite SYNOPSIS for consistency
+ Rewrite HARDWARE for HW Relnotes, and add some stragglers
+ Correct mdoc grammar, making sysctls aproposable and linking xrefs
+ Clean up TODO, cannonicalize to CAVEATS, a standard section
+ Editorial pass, tag SPDX

MFC after:              3 days
Reviewed by:            imp
Differential Revision:  https://reviews.freebsd.org/D52125
52eb7e394a7e28e9b08e2096c4a085a384cc1dd0 Alexander Ziaee 2025-09-28 03:41:33

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

sysctl.9: Fix grammar in *TUN descriptions
Reported by:  bcr
Reviewed by:    bcr
MFC after:      3 days
Event:          EuroBSDCon 2025
Fixes:  https://cgit.freebsd.org/src/commit/?id=5eb1caa8c845 Updated SYSCTL manual pages
Differential Revision:  https://reviews.freebsd.org/D52768
f34e1c76adc5efd9b603cf6b2d5827f7db8c2ed8 Mateusz Piotrowski 2025-09-28 08:05:47

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

RELNOTES: virtual_oss in base
Sponsored by: The FreeBSD Foundation
Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D52583
c457acb4ee821cf015930a94f52c3870786468a7 Christos Margiolis 2025-09-28 09:57:03

debug: classified in 03-filenames_plain1 by 'RELNOTES'

mac_do.4: Mention "from" part's GID can also match supplementary groups
MFC after:      3 days
Event:          EuroBSDCon 2025
Sponsored by:   The FreeBSD Foundation
c1d5fc4e0cfc63d23379457ac0b51c59c60b27c7 Olivier Certner 2025-09-28 13:55:20

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

Hardware support

Hardware drivers and architecture-specific code.

iichid(4): Always use wMaxInputLength bytes as input report length
Lower values may result in non-acknowledged interrupts. E.g. ITE5570 device
found in ASUS TUF. Greater values may result in read failures. E.g. GXTP7863
device found on MateBookPro 2023.

Investigated by:        huanghwh@gmail.com
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289353
MFC after:      1 week
fixes:          36027361f9cf ("iichid: Stop using split I²C bus transactions")
8f496952e3e6cdd531675a44b84b3f1954532afb Vladimir Kondratyev 2025-09-22 08:37:19

debug: classified in 03-filenames_plain1 by 'sys/dev/'

ietp(4): Always overload HID report descriptor
It is required since "iichid(4): Always use wMaxInputLength bytes
as input report length" commit.

MFC after:      1 week
a9227954b0f01e950cc51d744af27585778ddf84 Vladimir Kondratyev 2025-09-22 08:37:19

debug: classified in 03-filenames_plain1 by 'sys/dev/'

iichid(4): Do not add 2 leading "length" bytes to input report length
MFC after:    1 week
fixes:          36027361f9cf ("iichid: Stop using split I²C bus transactions")
1e74951b6cd8132ae417177336b7180e174a5e3f Vladimir Kondratyev 2025-09-22 08:37:20

debug: classified in 03-filenames_plain1 by 'sys/dev/'

Commit group #1: arm64/vmm
arm64/vmm: Add a feature flag and use it for HCRX

Add a field to hold the features the hardware supports that need to be
handled when switching to a guest and use it to handle FEAT_HCX that
adds the HRX_EL2 register.

This reduces the number of times we read ID registers in guest
switching which may be trapped when running under nested virtualisation.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D51816
0f455824d0abdcf09d2e96cf97f99c542bbde877 Andrew Turner 2025-09-22 17:07:57

debug: classified in 03-filenames_plain1 by 'sys/arm64/'


arm64/vmm: Clean up enabling guest timer access

Clean up the name of CNTHCTL_EL2 field macros and expand to include
more fields. This makes it easier to see which accesses are trapped or
not trapped.

While here set the register directly. We already set it in locore.S so
there is no need to read that and modify it.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D51817
f38792ffc2db67ca82026eb4861f37fe7ac7c38e Andrew Turner 2025-09-22 17:08:06

debug: classified in 03-filenames_plain1 by 'sys/arm64/'


arm64/vmm: Remove support for reading CNTHCTL_EL2

This is now unused as we just set the register value directly.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D51818
b3d30be6ed7108b97ed628f7ec9497a112d49fd6 Andrew Turner 2025-09-22 17:08:14

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

arm64: Add more counter/timer registers
These will be used to support the Enhanced Counter Virtualization
Extensions: FEAT_ECV and FEAT_ECV_POFF. The former adds
Self-Synchronized registers, and the latter adds support for an offset
for the physical counter.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D51819
e38e04a0ba3fdcdc2f3238bf4d962f65fadf527f Andrew Turner 2025-09-22 17:08:25

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

arm: Use the Self-Synchronized counter registers
When FEAT_ECV is implemented on arm64 a Self-Synchronized view of the
counter registers are available. These don't need an isb before reading
the count as they are not able to be speculatively executed.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D51820
0efa0fe26b9d980b2862bb58f8484f0123cff19f Andrew Turner 2025-09-22 17:08:47

debug: classified in 03-filenames_plain1 by 'sys/arm/'

arm64/vmm: Use FEAT_ECV_POFF to support a timer
Support guest access to the physical timer when FEAT_ECV_POFF is
supported. In this case we can set an offset for the physical timer.
We can reuse the virtual timer support to also support the physical
timer, with a few more registers needing to be handled when switching
to a guest.

As it is not clear how this will affect performance when the guest
doesn't use it hide enabling it behind a sysctl.

It is expected this will be useful when Nested Virtualisation is
supported as guests are expected to use the physical timer registers.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D51821
fbe076b2c837f396f96d4725a43745e741557df1 Andrew Turner 2025-09-22 17:09:54

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

sound: Implement COMPAT_FREEBSD32 shims
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=216568
MFC after:      1 week
Reviewed by:    christos, kib
Differential Revision:  https://reviews.freebsd.org/D52509
749a9266982b8e012b5ec370b2fdfef11f34c0b2 Damjan Jovanovic 2025-09-23 18:59:05

debug: classified in 03-filenames_plain1 by 'sys/dev/'

amd64 cpufunc.h: add rcs(), to read code selector
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D52607
50ee990e1874d6d40b8e3dc359c37e2ef2ebf477 Konstantin Belousov 2025-09-19 02:37:14

debug: classified in 03-filenames_plain1 by 'sys/amd64/'

amd64: add wrmsr_early_safe(9)
The variant of wrmsr_safe(9) that might work before IDT and curpcb are
initialized.  Assumes BSP, and that all APs are parked.

Before calling wrmsr_early_safe(), the wrmsr_early_safe_start() should
be called, afterward wrmsr_early_safe_end() restores the bootenv IDT.

Reviewed by:    markj
Tested by:      glebius
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D52607
a319696875451229f492b6c15e58a0ac54dbcda1 Konstantin Belousov 2025-09-18 21:55:19

debug: classified in 03-filenames_plain1 by 'sys/amd64/'

u2f(4): Use taskqueue to start USB transfers from kqueue context
to avoid recursion on u2f mutex and taking of hidbus sleepable lock.

Tested by:      emaste
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289494
MFC after:      2 days
186e433300fed9093dd9716baa20e838eb3b51b6 Vladimir Kondratyev 2025-09-25 07:54:19

debug: classified in 03-filenames_plain1 by 'sys/dev/'

rk_gpio: Fix register read/write on rk3568
Not all registers have a write mask with high/low register on rk3568.

Reviewed by:    vexeduxr
MFC after:      5 days
Differential Revision:  https://reviews.freebsd.org/D52512
34ec8c9ccaa473d2d0c177a92c041bb8fdb083db Evgenii Ivanov 2025-09-25 17:15:01

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

rk_gpio: Enable gpio allocation via fdt
The code is based on bcm2835_gpio.c. This enables allocating gpio
interrupts via interrupts property in fdt.

Reviewed by:    vexeduxr
MFC after:      5 days
Differential Revision:  https://reviews.freebsd.org/D52513
ace98a8fb8fe18d47ccbb55619a9ffd4ac10f98c Evgenii Ivanov 2025-09-25 17:15:08

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

mlx5 ipsec: Add VLAN tag to IPSec rules to prevent duplicates
Include VLAN tag in policy and SA outbound rules so that rules from
VLAN interfaces differ from physical interface rules, preventing
duplicate rule creation in VLAN configurations.

Sponsored by:   Nvidia networking
MFC after:      1 week
84d688af4e625e159af65cd2432af88609d4962a Ariel Ehrenberg 2025-09-17 13:17:46

debug: classified in 03-filenames_plain1 by 'sys/dev/'

vtnet: improve interface capability handling
Enable the handling of the IFCAP_RXCSUM_IPV6 handling by handling
IFCAP_RXCSUM and IFCAP_RXCSUM_IPV6 as a pair. Also make clear, that
software and hardware LRO require receive checksum offload.

Reviewed by:            Timo Völker
MFC after:              3 days
Differential Revision:  https://reviews.freebsd.org/D52682
eaf619fddcb21859311b895a0836da3171a01531 Michael Tuexen 2025-09-26 09:45:12

debug: classified in 03-filenames_plain1 by 'sys/dev/'

arm64: Mark EFI memory as userspace non-executable
FEAT_PAN3 adds the SCTLR_EL1.EPAN field. This tells the hardware to
raise a permission abort when userspace could execute a page, i.e. the
ATTR_S1_UXN field is clear in the page table.

This causes issues for the EFI runtime as we only mark non-executable
pages with this flag leading to a permission fault when accessing it.

Fix this by marking all EFI mappings with ATTR_S1_UXN. The kernel
already had this field set so was already safe.

Reported by:    tuexen
Reviewed by:    tuexen
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D52750
cee4802d0e2a4f55cecb270f3ab00febe4c220db Andrew Turner 2025-09-26 15:06:42

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

arm64: Add table attributes to the EFI maps
Use table attributes to also limit unprivileged access to the EFI
runtime mappings. This is mostly for parity with pmap as this is never
mapped while userspace could execute.

Reviewed by:    tuexen
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D52751
2554148bd85b172afcc1431df3272f920c82ebce Andrew Turner 2025-09-26 15:06:58

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

acpi: Use sleep types defined in sys/power.h
This is as opposed to using ACPI sleep states directly
(`ACPI_STATE_S*`). We now use `POWER_STYPE_*` added in D52036.

This is in preparation for adding support for s2idle, which is not an
ACPI sleep state, but needs to be handled specially by
`acpi_EnterSleepState`.

Reviewed by:    cy
Approved by:    cy
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D52705
Event:          EuroBSDcon 2025 Devsummit
97d152698f4831db5a94d55c15233330c188feda Aymeric Wibo 2025-09-26 15:47:05

debug: classified in 03-filenames_plain1 by '['sys/dev/', 'sys/x86/']'

acpi: Add back `hw.acpi.suspend_state` sysctl
When writing an ACPI S-state to it it will set kern.power.suspend to the
appropriate sleep type, and when reading from it it will return the
corresponding ACPI S-state to the sleep type in kern.power.suspend.

This is deprecated and kern.power.suspend should be used directly
instead, but add this back because zzz(1) makes use of this and we can't
easily rewrite it just now.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289634
Reviewed by:    cy, markj
Approved by:    cy, markj
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D52600
Event:          EuroBSDcon 2025 Devsummit
9e1e29bd5ec61bba1bb3366ff4c069b0c8f75954 Aymeric Wibo 2025-09-26 15:49:28

debug: classified in 03-filenames_plain1 by 'sys/dev/'

ucode: use wrmsr_early_safe() for early CPU microcode update
Use the new method for wrmsr that is able to set up fault handler even at
the very early stage of kernel boot.  This prevents panic with new
microcode for some new AMD EPYCs, that requires certain patchlevel of
microcode to be already present in the CPU.  If BSP patching failed, we
print the message and we don't try to patch APs.

This has been tested only on AMD booted in EFI mode.

Reviewed by:            stas, kib
Differential Revision:  https://reviews.freebsd.org/D52643
d9f03a43f2fec917c31d48b05d751e547c8775c7 Gleb Smirnoff 2025-09-27 14:30:40

debug: classified in 03-filenames_plain1 by '['sys/dev/', 'sys/x86/']'

thunderbolt: Import USB4 code
Add initial USB4 code written by Scott Long and originally passed on to
HPS (source: https://github.com/hselasky/usb4), minus the ICM code and
with some small fixes.

For context, older TB chips implemented the connection manager in
firmware (ICM) instead of in the OS (HCM), but maintaining the ICM code
would be a huge burden for not many chips.

Mostly completed work:

- Debug/trace framework.
- NHI controller driver.
- PCIe bridge driver.
- Router and config space layer handling (just reading in this commit).

Link to the email where Scott shared details about the initial USB4
work:

https://lists.freebsd.org/archives/freebsd-hackers/2024-July/003411.html

Glanced at by:  emaste, imp
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D49450
Event:          EuroBSDcon 2025
2ed9833791f28e14843ac813f90cb030e45948dc Aymeric Wibo 2025-09-27 11:50:43

debug: classified in 03-filenames_plain1 by 'sys/dev/'

vtnet: improve control of transmit offloading
Keep the hwassist flags for transmit checksum offload and transmit
segment offload in sync with the enabled capabilities.

Reported by:            Timo Völker
Reviewed by:            Timo Völker
MFC after:              3 days
Differential Revision:  https://reviews.freebsd.org/D52765
f2575d56c8c9a8acad4a61a3586546dff4febce1 Michael Tuexen 2025-09-28 09:01:18

debug: classified in 03-filenames_plain1 by 'sys/dev/'

Commit group #2: virtual_oss: Port to base
virtual_oss: Port to base

This patch diverges quite a bit from the current upstream [1] in a few
ways:

1. virtual_oss(8), virtual_bt_speaker(8) and virtual_oss_cmd(8) are
   actually separate programs.
2. Backends (lib/virtual_oss) are built as separate shared libraries and
   we dlopen() them in virtual_oss(8) and virtual_bt_speaker(8) on
   demand.
3. virtual_equalizer(8) and the sndio and bluetooth backends are built
   as ports, because they depend on third-party libraries.
4. Use newer libav API in bluetooth backend (see HAVE_LIBAV ifdefs) to
   address compiler errors.

[1] https://github.com/freebsd/virtual_oss

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D52308
9cab9fde5edad9b409dd2317a2aec7815e6d6bed Christos Margiolis 2025-09-28 09:56:52

debug: classified in 05-summary-prefix by 'virtual_oss:'


virtual_bt_speaker(8): Fix aarch64 build

Reported by:    fuz, otis
Fixes:          https://cgit.freebsd.org/src/commit/?id=9cab9fde5eda ("virtual_oss: Port to base")
Sponsored by:   The FreeBSD Foundation
86a7787e324b1524abfc434982bae9bf87ad7390 Christos Margiolis 2025-09-28 15:36:50

debug: classified in 02-filenames_wildcards by '.*Makefile'

debug: moved to hardware because 'Need to be grouped with 9cab9fde5edad9b409dd2317a2aec7815e6d6bed'

Networking

Network-related commands, library, and kernel.

sys/netinet6: Fix ABI breakage introduced with RFC 7217 support
commit 31ec8b6407fdd5a87d70265762457c67ce618283 added a `dad_failures`
variable to `struct nd_ifinfo`, which broke the netowrking ABI.

This commit fixes it by moving such variable to `struct in6_ifextra`
which is not a public interface, while `struct nd_ifinfo` is back
in its original state.

Thanks to kib, markj and glebious for their help and suggestions
in solving this problem.

Reported by:    "Herbert J. Skuhra" <herbert@gojira.at>
Tested by:      "Herbert J. Skuhra" <herbert@gojira.at>
Approved by:    glebius
Fixes:          https://cgit.freebsd.org/src/commit/?id=31ec8b6407fdd5a87d70265762457c67ce618283
0ec13430c583830cc4d29640787e2d154b140e31 Guido Falsi 2025-09-22 07:57:39

debug: classified in 03-filenames_plain1 by 'sys/netinet6/'

pf: Fix interface binding for af-to with route-to
States created by inbound af-to rules bypass outbound filtering and span
both the inbound and outbound interfaces. When the first packet for such rule
creates a state, this state has st->orig_kif set the original inbound interface
and kif set to V_pfi_all. When the outbound interface is eventually
known st->kif is updated to that interface. When not using route-to,
the outbound route and its interface are determined for the new address family
and st->kif is set to that interface. However when using route-to, ifp
is explicitely given and the code for updating st->kif is not run for
the first packet. When the returning packet matches the state, the code is
run but updates st->kif to the original inbound interface, which is now
the outbound interface. The state ends up with st->kif == st->orig_kif
and won't forward any more returning packets.

There is another block of code performing such update, but only for reply-to.

Perform the update of st->kif in a single place no matter if ifp was
explicitely given or found by routing lookup. For checks using pings
check if really all pings have been replied to, because a single reply
is enough to have ping exit with a successful exit code.

Reviewed by:    kp
Sponsored by:   InnoGames GmbH
Differential Revision:  https://reviews.freebsd.org/D52445
42441d342071767f32cfe507466135dc79052a56 Kajetan Staszkiewicz 2025-09-07 10:48:15

debug: classified in 03-filenames_plain1 by 'sys/netpfil/'

pf: Add pfsync protocol for FreeBSD 15
A new version of pfsync packet is introduced: 1500. This version solves
the issues with data alignment introduced in version 1400 and adds syncing
of information needed to sync states created by rules with af-to (original
interface, af and proto separate for wire and stack keys), of rt_af
needed for prefer-ipv6-nexthop, and of tag names.

Reviewed by:    kp
Sponsored by:   InnoGames GmbH
Differential Revision:  https://reviews.freebsd.org/D52176
99475087d63b4602a0213645bc17d82c3946e2fd Kajetan Staszkiewicz 2025-08-22 10:44:20

debug: classified in 05-summary-prefix by 'pf:'

tcp: fix sending of RST segments
Take endpoint parameters into account when available.

Fixes:          https://cgit.freebsd.org/src/commit/?id=463b5aed0d62 ("tcp: retire rstreason")
MFC after:      3 days
Sponsored by:   Netflix, Inc.
ab17974c12033c6ff3bae27458efcd13584438ba Michael Tuexen 2025-09-23 17:29:48

debug: classified in 03-filenames_plain1 by 'sys/netinet/'

tcp lro: remove redundant check
Remove a check which is also done in tcp_lro_rx_common().

Reviewed by:            gallatin
MFC after:              3 days
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D52683
43bbecaeb95fe5ea1d7acffab4f2874247ba6915 Michael Tuexen 2025-09-23 18:28:54

debug: classified in 03-filenames_plain1 by 'sys/netinet/'

tcp: Fix expiring and purging hostcache entries of vnet jails
A jailed process, `sysctl -j foo` or `jexec foo sysctl`, do not have
privilege to write to non-vnet sysctls but only to those marked as jail
writable, aka sysctls those marked with CTLFLAG_VNET flag.

Without this change we will get EPERM when trying to expire and purge
hostcache entries of vnet jails via the net.inet.tcp.hostcache.purgenow
sysctl. Fix that by adding a CTLFLAG_VNET flag.

Reviewed by:    tuexen, #transport, #network
Fixes:  https://cgit.freebsd.org/src/commit/?id=264563806496 Add a new sysctl net.inet.tcp.hostcache.purgenow=1 to expire ...
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D52692
33ceb31e256e386da5a42cc7ca2ef8d4b81b6eda Zhenlei Huang 2025-09-24 01:16:13

debug: classified in 03-filenames_plain1 by 'sys/netinet/'

tcp: Add CTLFLAG_VNET flag to some sysctls
The two sysctls net.inet.tcp.hostcache.list and net.inet.tcp.hostcache.histo
are readonly and are to operate hostcache of vnet jails. Add CTLFLAG_VNET
flag to them since they are per-vnet sysctls.

This change does not have any impact on reading the two sysctls, but
`sysctl -ANV net.inet.tcp.hostcache` will report them correctly.

Reviewed by:    tuexen, #transport, #network
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D52693
b1f96169cfb50a7b65aee115b2c9ad2f00797bbf Zhenlei Huang 2025-09-24 01:16:13

debug: classified in 03-filenames_plain1 by 'sys/netinet/'

pf: check if a group has a kif before dereferencing it
It's possible for interface groups to not have had a pfi_kkif assigned to
them, so before we pass that pointer to pfi_kkif_update() we must check if it's
actually set.

We've seen panics such as this, where we get an address update for an interface
that belongs to a group without associated pfi_kkif:

        Tracing pid 12 tid 100034 td 0xfffff80100d2a000
        kdb_enter() at kdb_enter+0x33/frame 0xfffffe0067eed340
        panic() at panic+0x43/frame 0xfffffe0067eed3a0
        trap_pfault() at trap_pfault+0x3c9/frame 0xfffffe0067eed3f0
        calltrap() at calltrap+0x8/frame 0xfffffe0067eed3f0
        --- trap 0xc, rip = 0xffffffff8102ebd5, rsp = 0xfffffe0067eed4c0, rbp = 0xfffffe0067eed500 ---
        pfi_kkif_update() at pfi_kkif_update+0x15/frame 0xfffffe0067eed500
        pfi_kkif_update() at pfi_kkif_update+0x1fc/frame 0xfffffe0067eed550
        pfi_ifaddr_event() at pfi_ifaddr_event+0x82/frame 0xfffffe0067eed5a0
        srcaddr_change_event() at srcaddr_change_event+0xa7/frame 0xfffffe0067eed610
        in6_update_ifa() at in6_update_ifa+0xd52/frame 0xfffffe0067eed790
        in6_ifadd() at in6_ifadd+0x29a/frame 0xfffffe0067eed8b0
        nd6_ra_input() at nd6_ra_input+0xf65/frame 0xfffffe0067eeda90
        icmp6_input() at icmp6_input+0x3c8/frame 0xfffffe0067eedc10
        ip6_input() at ip6_input+0xa15/frame 0xfffffe0067eedcf0
        sppp_input() at sppp_input+0x502/frame 0xfffffe0067eedd80
        pppoe_data_input() at pppoe_data_input+0x1e7/frame 0xfffffe0067eeddf0
        swi_net() at swi_net+0x128/frame 0xfffffe0067eede60
        ithread_loop() at ithread_loop+0x239/frame 0xfffffe0067eedef0
        fork_exit() at fork_exit+0x7b/frame 0xfffffe0067eedf30
        fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0067eedf30

Note that pf doesn't assign pfi_kkif objects to groups created before pf has
fully started (see V_pf_vnet_active check in pfi_attach_group_event()), which is
one possible way for this to happen.

Reported by:    garga
Sponsored by:   Rubicon Communications, LLC ("Netgate")
dc0cf0648c8d28ab4914c798a4cff8256ae94ee5 Kristof Provost 2025-09-02 08:46:26

debug: classified in 03-filenames_plain1 by 'sys/netpfil/'

pf: pass pre-NAT addresses to dummynet
When we're NAT-ing give dummynet (via its struct ip_fw_args) the pre-NAT source
and destination addresses.
That's what we used to do, but that got unintentionally changed during the nat64
work.

The pre-NAT addresses make somewhat more sense, in that it enables limiting
based on specific LAN clients.

See also:       https://redmine.pfsense.org/issues/15770
Sponsored by:   Rubicon Communications, LLC ("Netgate")
7ec06143964a949ebf6885ac120fdf839ad29eab Kristof Provost 2025-09-04 12:49:00

debug: classified in 03-filenames_plain1 by 'sys/netpfil/'

ng_tty: don't increment m_data
Stop incrementing m_data so the callee can read the mbuf.

MFC after:      3 days
Reviewed by:    glebius
Differential Revision:  https://reviews.freebsd.org/D52702
57d5a8feda3fd25a650eaab5998db13633d62d2d Ahmad Khalifa 2025-09-24 15:01:57

debug: classified in 03-filenames_plain1 by 'sys/netgraph/'

pf: support one shot rules
Add support for one shot rules that remove themselves from an active
ruleset after match.
This is an extremely handy technique for firewall proxies.

ok henning, mcbride

Note that the FreeBSD implementation differs significantly from the OpenBSD
version due to locking differences. We do not remove the rule, but mark it as
having fired previously so we can skip it.

Obtained from:  OpenBSD, mikeb <mikeb@openbsd.org>, c981122504
Obtained from:  OpenBSD, sashan <sashan@openbsd.org>, a21b78cad0 (partial)
Sponsored by:   Rubicon Communications, LLC ("Netgate")
af922319e8136a818bc6c38440d98a574c5df7a9 Kristof Provost 2025-08-27 10:02:51

debug: classified in 03-filenames_plain1 by 'sys/netpfil/'

pf: print 'once' rule expire time
Obtained from:        OpenBSD, sashan <sashan@openbsd.org>, 8cf23eed7f
Sponsored by:   Rubicon Communications, LLC ("Netgate")
b9d652bb75ffa0945a3bebf68d6d82de26efd269 Kristof Provost 2025-08-27 15:51:29

debug: classified in 05-summary-prefix by 'pf:'

pf: simplify expiration of 'once' rules.
let packet to mark 'once' rule as expired. The rule
will be removed by pfctl(8) when rules are updated.

OK kn@

Obtained from:  OpenBSD, sashan <sashan@openbsd.org>, a21b78cad0
Obtained from:  OpenBSD, jmc <jmc@openbsd.org>, 588f4160c8
Sponsored by:   Rubicon Communications, LLC ("Netgate")
de8af57c6f4155caa540a68387fdb02514d7e815 Kristof Provost 2025-08-28 09:20:40

debug: classified in 03-filenames_plain1 by 'sbin/'

debug: Commit manually moved from "admin" to "network".

pf: export expiration time as time_t
time_t has a different size on different platforms (i.e. 32-bit on i386, 64-bit
on others). Rather than always exporting it as 64-bits use the platform-native
size.
This means we can safely write directly into a time_t variable, which we can't
do on i386 eif we export 64 bits.

Sponsored by:   Rubicon Communications, LLC ("Netgate")
b84666f798e872efd356c5743640e3683ab82f9d Kristof Provost 2025-08-28 16:49:06

debug: classified in 05-summary-prefix by 'pf:'

ng_tty: copy to the correct mbuf
memcpy should copy to the current mbuf, otherwise we're copying to the
first mbuf in the chain over and over.

Reported by:    kevans
Reviewed by:    glebius
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D52713
e05521121f05a1b1e0d7c7b5fbe79f83fc303cd0 Ahmad Khalifa 2025-09-25 16:54:28

debug: classified in 03-filenames_plain1 by 'sys/netgraph/'

tcp: refactor tcp_send_challenge_ack()
Refactor tcp_send_challenge_ack() such that the logic checking whether
a challenge ACK is sent or not is available in the separate function
tcp_challenge_ack_check(). This new function will also be used for
sending challenge ACKs in the SYN-cache code, which will be added in
upcoming commits.
No functional change intended.

Reviewed by:            cc, Nick Banks, Peter Lei
MFC after:              3 days
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D52717
db37256ce5437e6c667a537afff0fd9f59576514 Michael Tuexen 2025-09-25 01:40:33

debug: classified in 03-filenames_plain1 by 'sys/netinet/'

Commit group #3: pf
pf: Always skip outbound filtering for inbound af-to rules

The af-to rules on inbound direction create a single state spanning both
the inbound and the outbound interface. Calling pf_test() for the
outbound direction in pf_route() makes the packet pass through state
search, match the existing state, never evaluate the ruleset, and increase
state counters.

Check that the state comes from an af-to rule in inbound direction, and
if yes, skip outbound testing.

Reviewed by:    kp
Sponsored by:   InnoGames GmbH
Differential Revision:  https://reviews.freebsd.org/D52446
938ae26ffda81fd42c235eaa3223dae51331e4eb Kajetan Staszkiewicz 2025-09-07 13:59:00

debug: classified in 03-filenames_plain1 by 'sys/netpfil/'


pf: Fix rule and state counters

Increasing counters on "match" rules causes the 1st packet making a
connection to be double-counted, but only for rule counters, not rules'
tables, because those are not increased at all during rule parsing.
Remove "match" rule counter handling during rule parsing, do it only in
pf_counters_inc().

NAT can be performed either by "nat" rules in the  NAT ruleset or by "match"
rules. Rules before the NAT rule, and the NAT rule itself match on pre-NAT
addresses, and later rules match on post-NAT addresses. When increasing
counters go over rules in the same order as a packet would and use
source and destination addresses for updating table counters from
appropriate state key, taking into consideration on which rule NAT
happens.

Use AF from state key, so that table counters can be properly updated for
af-to rules.

Synchronize match rule updating behaviour to that of OpenBSD: if rules
match, but state is not created, don't update counters.

Reviewed by:    kp
Sponsored by:   InnoGames GmbH
Differential Revision:  https://reviews.freebsd.org/D52447
6353f5d9a5c6f194bb014b8785a57f5314e8c652 Kajetan Staszkiewicz 2025-09-03 18:27:11

debug: classified in 03-filenames_plain1 by '['sys/net/', 'sys/netpfil/']'


pf: Fix interface counters for af-to rules

An inbound af-to rule creates a state bypassing outbound pf_test().
In such case increase counters of the outbound interface directly in
pf_route() for post-af-to address family.

For outbound af-to rules ensure that post-af-to address family is used
to increase interface counters.

Reviewed by:    kp
Sponsored by:   InnoGames GmbH
Differential Revision:  https://reviews.freebsd.org/D52448
7cd3854f827faaad1ecf414d20bdf6802cfa60f8 Kajetan Staszkiewicz 2025-09-08 17:53:48

debug: classified in 03-filenames_plain1 by 'sys/netpfil/'

System administration

Stuff in man section 8 (other than networking).

rc.d/moused: Fix misplaced `basename`
This fixes "usage: basename string [suffix]" message.

Reported by:    cy
MFC after:      1 day
f586fc0cf8ff54393a3db565437788a12bdc6e99 Vladimir Kondratyev 2025-09-23 08:33:03

debug: classified in 03-filenames_plain1 by 'libexec/'

rc.subr: Move the sleep in wait_for_pids
Instead of sleeping while constructing the list of PIDs to wait for,
sleep briefly after pwait to give init a chance to reap the processes
that just terminated before we loop around and start probing them.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289630
Reviewed by:    allanjude
Differential Revision:  https://reviews.freebsd.org/D52619
5953e7c98427e038500221e885dffa181dcc064b Dag-Erling Smørgrav 2025-09-23 12:55:56

debug: classified in 03-filenames_plain1 by 'libexec/'

mksnap_ffs: fix running unded chroot
Fix "run-under-chroot" workaround by replacing strlcpy(2) with
memmove(2) since strings overlap.

MFC after:      1 week
Reviewed by:    arrowd
Differential Revision:  https://reviews.freebsd.org/D52670
60be0d71daab4247dc61c323777b0c593eb76975 Maxim Sobolev 2025-09-23 16:24:44

debug: classified in 03-filenames_plain1 by 'sbin/'

newsyslog: remove leftovers of 20-year old debugging code
d5a5975f8430b15d3b40e4c54214701106b23b83 Gleb Smirnoff 2025-09-23 09:51:33

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

freebsd-update: Library ordering
Upgrading from 14.x to 15.x with freebsd-update broke because libc
depends on the new libsys library; freebsd-update installed the new
libc before creating libsys, and every step after that failed because
all the tools (including gunzip and install) are dynamically linked
and need a working libc.

Enforce ordering when installing shared objects: First libsys, then
libc, then libthr, and then all the rest of the shared object files.

This is a candidate for an Errata Notice since the issue this fixes
breaks upgrades.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289769
Reported by:    Graham Perrin
Reviewed by:    kib
MFC after:      3 days
Sponsored by:   https://www.patreon.com/cperciva
Differential Revision:  https://reviews.freebsd.org/D52688
7ece602e00e85195fc426a2401c49921cd39735e Colin Percival 2025-09-23 06:55:08

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

bsdinstall: Install pkg if it's available
Now that the pkg package is shipped on the pkgbase release media,
install it by default for a pkgbase install if it's present.

If it's not available (e.g., when running bsdinstall from a repository
built from src alone, without ports), skip it and assume the user will
install it another way.

MFC after:      1 day
Reviewed by:    ifreund_freebsdfoundation.org, cperciva
Differential Revision:  https://reviews.freebsd.org/D52639
4422265c67b8a4e19da08fdf5504a7b5e278f815 Lexi Winter 2025-09-24 00:10:02

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

nanobsd: Fix regressions from last cleanup
c99bb5747f5e changed ( ) grouping into { }, but in these cases we chdir
and depended on the subshell not changing it for the caller. Restore the
old behavior. It seems to work w/o this change, true, but the old code
was intentionally like this.

Fixes: https://cgit.freebsd.org/src/commit/?id=c99bb5747f5e
Sponsored by:           Netflix
2352b89d2f732e3fa33fbd494267f0d4cb917e51 Warner Losh 2025-09-24 15:43:42

debug: classified in 05-summary-prefix by 'nanobsd:'

newsyslog: use str2sig() instead of own implementation
Reviewed by:          bapt
Differential Revision:  https://reviews.freebsd.org/D52697
b00e65ff70a4613b3bf2fd2781d174fa437fbfbe Gleb Smirnoff 2025-09-25 08:18:29

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

pfctl: One shot rules can be used in pf.conf by specifying a "once" filter option.
ok henning, mcbride

Obtained from:  OpenBSD, mikeb <mikeb@openbsd.org>, 44b1b5a8a9
Sponsored by:   Rubicon Communications, LLC ("Netgate")
8821216727043dde9cb23a66b884f7918c80063c Kristof Provost 2025-08-27 13:41:07

debug: classified in 03-filenames_plain1 by 'sbin/'

pfctl: deny "once" flags for match rules
ok henning

Obtained from:  OpenBSD, mikeb <mikeb@openbsd.org>, 47068a62ee
Sponsored by:   Rubicon Communications, LLC ("Netgate")
d3b73a944b11311b8428f30b019802ebe7aeaef8 Kristof Provost 2025-08-27 14:00:38

debug: classified in 03-filenames_plain1 by 'sbin/'

pfctl: reduce duplicate code
* Merge `once' handling from `anchorrule' and `pfrule'
* Remove/shorten duplicate code block

OK sashan

Obtained from:  OpenBSD, kn <kn@openbsd.org>, d114b77333
Sponsored by:   Rubicon Communications, LLC ("Netgate")
59f3838b0a942b44397063ffb63a4e4d569129f1 Kristof Provost 2025-08-27 16:13:50

debug: classified in 03-filenames_plain1 by 'sbin/'

pfctl: fix once rules
parse.y revision 1.682 from 16.07.2018 errornously allowed `match once' and
`anchor "a" once'.

Fix both by checking for PF_DROP not PF_MATCH and creating anchors in the
parser already such that they can be used to distinguish anchor rules in
the same check as well.

Found and fixed by Petr Hoffmann <petr.hoffmann at oracle dot com>, thanks!

While here, remove an unneeded cast and make pfctl_add_rule() void as it
always returned 0.

OK sashan

Obtained from:  OpenBSD, kn <kn@openbsd.org>, 6da84b37b3
Sponsored by:   Rubicon Communications, LLC ("Netgate")
2be46b52f5db0630550ec60ad8f92a7e7d7d78ab Kristof Provost 2025-08-27 19:32:33

debug: classified in 03-filenames_plain1 by 'sbin/'

pfctl: fix anchor handling for nat/rdr/binat anchors
After the refactoring in 'pfctl: fix once rules' we broke nat/rdr/binat rules.
These no longer exist on OpenBSD, so were not considered in that patch. Factor
out the common code and call it from all anchor types.

Sponsored by:   Rubicon Communications, LLC ("Netgate")
ceff35a3aeef822976bd159c8bc403b68d5571ff Kristof Provost 2025-08-28 14:26:59

debug: classified in 03-filenames_plain1 by 'sbin/'

pfctl: print once shot rule expiration time
We already track this in the kernel and pass it to userspace, we may as well
show users.

Sponsored by:   Rubicon Communications, LLC ("Netgate")
64bfb82f17417660f3d1a2d10b381b293b780b21 Kristof Provost 2025-08-28 15:50:54

debug: classified in 03-filenames_plain1 by 'sbin/'

pfctl: refactor 'rule_numbers' variable
The 'rule_numbers' is used for more than just displaying rule numbers.
Rename it and move the actual opts checking into the relevant functions.

Sponsored by:   Rubicon Communications, LLC ("Netgate")
08fbad1b135b0efcfc82f793999463def9f95610 Kristof Provost 2025-08-28 15:52:18

debug: classified in 03-filenames_plain1 by 'sbin/'

nuageinit: Ignore non-existent groups
In cloud-init, when a group specified in the 'users.{index}.groups' parameter
does not exist, it is ignored, but the user is created anyway. In the case of
nuageinit, it exits with an exception, since pw(8) expects each group to exist.

Reviewed by:            bapt@
Approved by:            bapt@
Differential Revision:  https://reviews.freebsd.org/D52718
68691160f41bf6ce9ab70ddeeb7eeec2a7bff245 Jesús Daniel Colmenares Oviedo 2025-09-27 22:03:09

debug: classified in 03-filenames_plain1 by 'libexec/'

rc.d: Fix ftpd flags
After f99f0ee14e3a ("rc.d: add a service jails config to all base system
services"), the FTP service ignores the flags configured in ftpd_flags:

    # sysrc ftpd_flags=-B
    ftpd_flags:  -> -B
    # service ftpd enable
    ftpd enabled in /etc/rc.conf
    # service ftpd start
    Starting ftpd.
    # pgrep -fl ftpd
    1234 /usr/libexec/ftpd -D

Notice the absence of the "-B" flag.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285600
Reviewed by:    0mp, emaste
Approved by:    emaste (mentor)
Fixes:  https://cgit.freebsd.org/src/commit/?id=f99f0ee14e3a ("rc.d: add a service jails config to all base system services")
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D52745
2872ced18742aaf9480c9a43059cba7e24dd7e59 Jose Luis Duran 2025-09-28 09:12:41

debug: classified in 03-filenames_plain1 by 'libexec/'

mixer(8): Update virtual_oss path
virtual_oss is part of base as of 9cab9fde5eda ("virtual_oss: Port to
base").

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D52322
5c8835e5c0ce34ee50eba92bb5f4de36139ae7ea Christos Margiolis 2025-09-28 09:57:23

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

newsyslog: provide -I option to specify default signal
Useful when used with syslog-ng, which uses SIGUSR1.  Instead of adding
signal number to every new entry, just set it via command line option.

Reviewed by:            bcr, delphij
Differential Revision:  https://reviews.freebsd.org/D52701
81df9522c8b720016db671c9476fa449bd94e6da Gleb Smirnoff 2025-09-28 14:54:33

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

newsyslog: fix one hour rotation with frequent execution
If a newsyslog.conf(5) has an entry that is configured to be rotated every
hour, and crontab(8) is set to execute newsyslog several times per hour,
the logic of age_old_log() is broken and it would rotate the entry too
often.  AFAIU, the extra 1800 seconds were added to allow some leeway for
the previous newsyslog invocation, that could have been too slow and the
timestamp on the old file is newer than actual time of the previous
newsyslog invocation.  But 30 minutes of leeway is way to much.  Reduce
this down to 3 minutes, which would be a compromise between a potential
need to run newsyslogd every 5 minutes and a situation when newsyslog
takes a significant time to rotate the logs.

Provide a test case for that.

Reviewed by:            delphij
Differential Revision:  https://reviews.freebsd.org/D52700
bbec2c9a6d9a9b8f6c6edbdd2386dfdcd1c81422 Gleb Smirnoff 2025-09-28 14:54:53

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

Libraries

libc: properly reference setgroups@FBSD_1.0 in initgroups@FBSD_1.0
by forwarding the reference to libsys syscall symbol, for the libc.so
case.

Reviewed and tested by: kevans
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D52672
f72908c94df9a256422790d4e2a60c9c33a35f2d Konstantin Belousov 2025-09-20 23:50:47

debug: classified in 04-filenames_plain2 by 'lib/'

libc: un-namespace gen-compat.h
There are no symbols that needs to be namespaced in the header, and it
would not allow to use proper raw syscall names later, where they are
needed.

Reviewed by:    olce
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D52687
f15d3694db60d0256d236320fcb9e2c6d871b0a1 Konstantin Belousov 2025-09-25 00:58:33

debug: classified in 04-filenames_plain2 by 'lib/'

libc: properly forward the compat syscall references to libsys
same as it was done for setgroups@FBSD_1.0.
Switch from weakref to symver, since GNU as cannot handle version spec
with weakref.

Reviewed by:    olce
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D52687
e194103bd35d9e08a5d271d814d6184ec159eadf Konstantin Belousov 2025-09-22 23:27:05

debug: classified in 04-filenames_plain2 by 'lib/'

libsys: drop private exports no longer needed
after libc is switched to use public symbols for pre-ino64 syscalls.

Reviewed by:    olce
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D52687
495813bfd7a28759b23204d66826ff9b3ee7ab61 Konstantin Belousov 2025-09-22 23:34:34

debug: classified in 04-filenames_plain2 by 'lib/'

libc/aarch64: fix ELF size of timingsafe_memcmp
Looks like a copy and paste error.
The ELF size of 0 prevents Valgrind from redirecting this function.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289845
Reviewed by:    fuz
Fixes:          https://cgit.freebsd.org/src/commit/?id=3f224333af163d5fcd7547a20993dcf18f19076c
See also:       https://bugs.kde.org/show_bug.cgi?id=509406
Pull Request:   https://github.com/freebsd/freebsd-src/pull/1854
MFC after:      1 day
Event:          EuroBSDcon 2025
7feac79331bc8c77e2f8a3e71d6ea087fa17b61d Paul Floyd 2025-09-25 19:49:08

debug: classified in 04-filenames_plain2 by 'lib/'

rpc_generic.c: Fix a rpcbind core dump when rpcinfo is done
Commit c5d671b added netlink support to
server side rpcbind. However it did not add
a case for AF_NETLINK to __rpc_taddr2uaddr_af().
(Reported as PR#289625.)

As such, without this patch the r_addr field of the
netlink rbllist is NULL, which causes a crash in
svc_sendreply() for a Dump query (what rpcinfo
does).

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289625
Reviewed by:    glebius
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D52651
Fixes:  https://cgit.freebsd.org/src/commit/?id=c5d671b711c3 ("libc/rpc: add userland side RPC server over netlink(4)")
70730cd21c9f2b0a80ff07e4491c0fe30f2d87c5 Rick Macklem 2025-09-28 14:56:17

debug: classified in 04-filenames_plain2 by 'lib/'

Filesystems

vfs: retire the VREF macro
It is defined as a plain use of vref.

Churn generated with coccinelle:
@@
expression vp;
@@

- VREF(vp)
+ vref(vp)
7e4c451c12aeb26cc1179221b8230c491b17cf00 Mateusz Guzik 2025-09-27 02:13:29

debug: classified in 05-summary-prefix by 'vfs:'

Kernel

Kernel stuff (other than networking, filesystems, and drivers).

pipe: sort out ino commentary on failed pipe creation
Implements pipe_destroy as a counterpart to pipe_create, no functional
changes.

Arguably code could be refactored so that ino allocation only happens
after bufs are allocated.
ff6abfec807e31301e3bf9c0df14a22bb6bc3443 Mateusz Guzik 2025-09-22 08:37:50

debug: classified in 04-filenames_plain2 by 'sys/'

sys/conf: Fix arm64 vmm_nvhe dependencies
These files include a vmm_hyp equivalent file but don't have a
dependency recorded. Fix this by manually adding this dependency.

This is only a problem in a non-GENERIC configuration as normally vmm
is loaded as vmm.ko.

Reviewed by:    imp
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D51822
fe1d344bf416aa921b4bf233668dda7cf4e27444 Andrew Turner 2025-09-22 17:10:12

debug: classified in 04-filenames_plain2 by 'sys/'

vfs: reduce indentation in vput_final
nfc
185c2c3dab3627bac929143795cec2d78d0aceab Mateusz Guzik 2025-09-22 14:09:51

debug: classified in 04-filenames_plain2 by 'sys/'

vfs: let the compiler catch unhandled vgetstate values in vget_abort
21d42c8d902235b90b59d1aea6203b12e40c6c1b Mateusz Guzik 2025-09-24 08:52:28

debug: classified in 04-filenames_plain2 by 'sys/'

u2f(4): Invert U2F_MAKE_UHID_ALIAS kernel build option
This makes non-GENERIC kernel configs easier to maintain.

Requested by:   glebius
MFC after:      2 days
e43fbf27976df17991d32c72c41e43fda66fb262 Vladimir Kondratyev 2025-09-25 07:54:19

debug: classified in 04-filenames_plain2 by 'sys/'

proc: perform P_CONTROLT check on fork without SESS_LOCK
The flag is guarded by proc lock which is already held.

After tracing poudriere for over 4 hours like so:
dtrace -n 'fbt::do_fork:entry { @[curthread->td_proc->p_flag & 0x2] = count(); }':

    2         15605151
    0         20074116

Over 56% of cases did not have P_CONTROLT set and could have avoided the
lock.

This reduces hold time of the proctree lock.
a15f2c5cc58f403407daf797a2e6963adffa6c2c Mateusz Guzik 2025-09-25 11:50:01

debug: classified in 04-filenames_plain2 by 'sys/'

sys/power: Sleep type reporting by PM backends
Allow PM backends to report supported sleep types when registering
through `power_pm_register`. Expose this information through
`kern.power.supported_stype` sysctl, and set defaults for
`power_standby/suspend/hibernate_stype` based on this.

Implement this in ACPI PM backend.

Reviewed by:    cy
Approved by:    cy
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D52727
Event:          EuroBSDcon 2025 Devsummit
5632b0d4628d768c125594a3edee21fb23940067 Aymeric Wibo 2025-09-26 15:50:16

debug: classified in 04-filenames_plain2 by 'sys/'

vfs: retire the VCALL macro
There is precisely one place using it and even that should probably go
away.
08f06aa1b4fb6db0d8beb3e1c328b1c1adbec13a Mateusz Guzik 2025-09-27 02:01:32

debug: classified in 04-filenames_plain2 by 'sys/'

vfs: retire the NULLVP macro
The kernel was already mostly using plain NULL, just whack it and be
doen with the legacy.

Churn generated with coccinelle:
@@
@@

- NULLVP
+ NULL
01c8e2e33df81b242d73a23de49a6b61f33c24c1 Mateusz Guzik 2025-09-27 02:07:04

debug: classified in 04-filenames_plain2 by 'sys/'

vfs: stop using SDT_PROBES_ENABLED in inlined ops
No point after hot patching was introduced.
5e395c34402dc3fd5c786168442290a63ff54596 Mateusz Guzik 2025-09-26 20:23:49

debug: classified in 04-filenames_plain2 by 'sys/'

vm_object: Remove the kmem_object alias
This was retained for KPI compatibility, but I can't find anything which
needs it.  Just get rid of it.

Reported by:    rwatson
Reviewed by:    alc, kib
Differential Revision:  https://reviews.freebsd.org/D52708
ba364342aeef152f3dc486ff3d2ebd4d5a8dd677 Mark Johnston 2025-09-24 14:03:16

debug: classified in 04-filenames_plain2 by 'sys/'

Build system

pkgbase: set origin for each packages as base/FreeBSD-*
MFC After:            3 day
Reviewed by:            ivy
Differential Revision:  https://reviews.freebsd.org/D52689
23e69b54973fcb68d14986ec1600d9dfd0cb7af3 Baptiste Daroussin 2025-09-23 07:53:58

debug: classified in 02-filenames_wildcards by 'release/.*'

packages: Move powerd to its own package
Nearly everyone wants powerd to manage CPU frequency scaling on real
hardware, even if -utilities isn't installed.  Conversely, very small
jails might want -utilities but don't need powerd.

Move it to its own package and add it to the minimal set.

MFC after:      1 day
Reviewed by:    manu, imp
Differential Revision:  https://reviews.freebsd.org/D52645
5efd371bba1508ed94faed2afbd11936f5fe4dac Lexi Winter 2025-09-23 21:05:05

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

elfdump: Move to the toolchain package
MFC after:    1 day
Reviewed by:    manu, imp, emaste
Differential Revision:  https://reviews.freebsd.org/D52648
2e45f207652842f03101d250d6e542e5e89b6e4a Lexi Winter 2025-09-23 21:16:12

debug: classified in 02-filenames_wildcards by '.*Makefile'

chat, pppoed: Move to the ppp package
MFC after:    1 day
Reviewed by:    manu
Differential Revision:  https://reviews.freebsd.org/D52650
eb373ef459cd87dd9fcab63dc72f3e53c7493758 Lexi Winter 2025-09-23 21:20:25

debug: classified in 02-filenames_wildcards by '.*Makefile'

who: Move back to the utilities package
This was moved to -acct along with the rest of the accounting tools.
While it does work with accounting data, it's also a core Unix tool
that users would expect to be installed without having to install
the whole accounting system.

Move it back to -utilities, which is also where w(1) lives.

MFC after:      1 day
Reviewed by:    manu
Differential Revision:  https://reviews.freebsd.org/D52653
ef4b08a7ed17b84b7d9c5b1dd4781bf4d90f90df Lexi Winter 2025-09-23 21:21:21

debug: classified in 02-filenames_wildcards by '.*Makefile'

libpmc: Move libpmc and utils to a new pmc package
Due to the size of libpmc.so.5, this reduces the size of the -utilities
package by 10%.

MFC after:      1 day
Reviewed by:    manu, adrian, emaste
Differential Revision:  https://reviews.freebsd.org/D52662
67c3c3a274468d09925af3cf64da3f9cf878cc80 Lexi Winter 2025-09-23 21:30:49

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

packages: Replace libbz2 package with a bzip2 package
Currently libbz2 is in the libbz2 package, while bzip2 itself is in
-utilities, which is inconsistent.  Move both the library and the
utility to a new -bzip2 package, and use LIB_PACKAGE to create a
separate -bzip2-lib package for runtime dependencies.

Add the bzip2 package to the minimal set, and since newsyslogd uses
bzip2 for logfile compression, add a dependency from there.

MFC after:      1 day
Reviewed by:    manu
Differential Revision:  https://reviews.freebsd.org/D52663
61ca69110f2676b7dd3c7ff8dea899615d341e1e Lexi Winter 2025-09-23 21:37:06

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

Makefile.inc1: Handle pkg development versions
Development versions of pkg have a version like "2.3.0-d8bbde1c3-dirty",
which is not handled by PKG_BIN_VERSION, so PKG_EXT ends up being "tar"
and this breaks update-packages.

Fix the PKG_BIN_VERSION logic, and while here, remove backwards compat
for pkg versions prior to 2.0, which no one should be using to build
main or stable/15.  This means nothing is left to use PKG_BIN_VERSION,
but continue to set it, since we might need it again in the future.

MFC after:      1 day
Reviewed by:    manu, kevans
Differential Revision:  https://reviews.freebsd.org/D52666
f6d1cdabdd6fe5b26bda58348647d891ad138471 Lexi Winter 2025-09-23 21:41:20

debug: classified in 02-filenames_wildcards by '.*Makefile'

packages: Add devd to the minimal-jail set
I didn't add this originally since many jails don't require devd, but
it's very small (~90kB) and has no dependencies other than clibs and
runtime, so we may as well include it for parity between minimal and
minimal-jail.

While here, improve the package description.

Requested by:   imp
MFC after:      1 day
Differential Revision:  https://reviews.freebsd.org/D52679
ab50101456cded4c9d86065dd59d91c601445d91 Lexi Winter 2025-09-23 21:56:21

debug: classified in 02-filenames_wildcards by 'release/.*'

man7: Move atf.7 and tests.7 to the right package
atf.7 should be in -atf, and tests.7 should be in -tests.

MFC after:      1 day
Differential Revision:  https://reviews.freebsd.org/D52661
49e44e06d1ade850cff5e84bf8c5fc425e4411c8 Lexi Winter 2025-09-23 21:57:10

debug: classified in 02-filenames_wildcards by '.*Makefile'

packages: Add a dependency from -rc to -runtime
rc(8), as well as rc scripts themselves, require /bin/sh and basic
shell utilities to work.  Currently -rc has an implicit dependency
on -runtime because of libutil, but this might change in the future
if libutil were moved to a different package.  Add an explicit dep
to ensure -runtime is installed.

MFC after:      1 day
Differential Revision:  https://reviews.freebsd.org/D52654
9f8114a6d8cb781f155273ef173c29648a1013e6 Lexi Winter 2025-09-23 21:57:46

debug: classified in 02-filenames_wildcards by 'release/.*'

release.sh: Pass through NO_ROOT
To be specific, set NO_ROOT=1 WITHOUT_QEMU=1 (those options go
together and it is an error to specify one without the other) if
NO_ROOT is defined in release.conf.

MFC after:      3 days
Sponsored by:   https://www.patreon.com/cperciva
723445fdeee741750a9a3fbd116b540bf605d93a Colin Percival 2025-09-24 00:32:27

debug: classified in 02-filenames_wildcards by 'release/.*'

Makefile.inc1: Fix package-pkg with a non-default LOCALBASE
package-pkg (via make-pkg-package.sh) passes CONFIGURE_ARGS to make when
building ports-mgmt/pkg, which overrides the port's default configure
args that are supposed to set --prefix.  This means that pkg is always
built with the default prefix of /usr/local, which then fails when ports
tries to package it from LOCALBASE.

Work around this by explicitly adding --prefix to CONFIGURE_ARGS.

MFC after:      1 day
Reviewed by:    bapt
Differential Revision:  https://reviews.freebsd.org/D52634
f259daa708f507d3ff450d2eb8c05065674339ec Lexi Winter 2025-09-23 22:15:35

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

release: Fail the build if pkg can't be installed
If we can't install pkg(8) on the media, instead of ignoring the error,
fail the build.  This avoids silently creating media which doesn't have
pkg(8) on, and therefore can't be used for a pkgbase install.

Installing pkg(8) can still be entirely disabled by setting NOPKG.

MFC after:      1 day
Reviewed by:    ifreund_freebsdfoundation.org, cperciva
Differential Revision:  https://reviews.freebsd.org/D52635
8654315ae8d368ce47232bde1f2593e256224e56 Lexi Winter 2025-09-23 22:17:46

debug: classified in 02-filenames_wildcards by '.*Makefile'

pkgbase-stage.lua: Add pkg package to the offline repo
We need a pkg package on the media so we can install it for offline
installations; copy this package from the staging repository to the
pkgbase offline repository on the media.

MFC after:      1 day
Reviewed by:    ifreund_freebsdfoundation.org, cperciva
Differential Revision:  https://reviews.freebsd.org/D52636
5bb96dab061af5f44e6090831f1b2724196828b8 Lexi Winter 2025-09-23 22:34:03

debug: classified in 02-filenames_wildcards by 'release/.*'

release: Install pkg from the pkgbase repo
If we're building pkgbase media, install the pkg package from the
pkgbase repository we already created, not from pkg.freebsd.org.
Aside from being more desirable, this also fixes make release for
version/architecture combinations which are missing repository
on pkg.f.o (which is nearly all of them at the time of writing).

This doesn't yet work for bootonly, since we don't build the pkgbase
repository there.  For now, restore the old behaviour of attempting
to install pkg from pkg.freebsd.org for bootonly.

MFC after:      1 day
Reviewed by:    ifreund_freebsdfoundation.org, cperciva (previous version)
Differential Revision:  https://reviews.freebsd.org/D52637
aba986215fc99d09655d4dcfc5e37f8b1ac83edf Lexi Winter 2025-09-23 22:37:26

debug: classified in 02-filenames_wildcards by '.*Makefile'

release: Improve kernel package handling
Although support for PowerPC kernels (GENERIC64 and GENERIC64LE) was
added to pkgbase-stage.lua, the equivalent support was missing from
bsdinstall, so the installer would fail at runtime since it wouldn't
find a kernel package.

Improve the pkgbase-stage logic to have a specific list of kernels
we want to support (which avoids breaking if multiple kernels are
available), and use the same logic in both bsdinstall and pkgbase-stage.

MFC after:      1 day
Reviewed by:    cperciva
Differential Revision:  https://reviews.freebsd.org/D52638
3f5385beeacf49d0edb563ccc712841bcfd6b158 Lexi Winter 2025-09-23 23:06:30

debug: classified in 05-summary-prefix by 'release:'

release: Build all cloudware regardless of noroot
There are still some minor breakage with NO_ROOT (aka WITHOUT_QEMU)
builds but turning all the cloudware on unconditionally will allow
for more testing of the build process concurrently with the final
bug fixes landing.

Discussed with: markj
MFC after:      1 week
Sponsored by:   https://www.patreon.com/cperciva
86114bae092bd023165e5b9df244fc0849172429 Colin Percival 2025-09-24 12:42:11

debug: classified in 02-filenames_wildcards by '.*Makefile'

packages: Add some missing dependencies
* at requires cron, since atrun is started by cron and won't work
  without it, and also requires runtime because at runs jobs under
  /bin/sh.

* bluetooth requires ppp for rfcomm_pppd (a very common use case).

* bsdconfig and bsdinstall are written in shell script and therefore
  require /bin/sh.

* devd requires /bin/sh to invoke its hooks.

While here, document the policy for adding dependencies in the README.
This will hopefully ensure we end up with consistent dependencies.

MFC after:      1 day
Reviewed by:    bapt
Differential Revision:  https://reviews.freebsd.org/D52699
014647a30ff4c76a99962ee6b079db0d9cdf5949 Lexi Winter 2025-09-24 18:39:35

debug: classified in 02-filenames_wildcards by 'release/.*'

packages: Add descriptions for all packages
Provide at least a basic description of every package we build.
Where possible, the description is taken from a relevant manpage;
when there was no suitable text in the manpage, I wrote a new
description.

Since the UCL files now contain a significant amount of English
prose which is almost certainly subject to copyright in at least
some jurisdictions, add a copyright header to every file.  Where
the text was taken from a manpage, the copyright and license are
also taken from the manpage.  A few files don't have copyright
headers added because the origin of the text is unclear, or because
the files were written by someone else.

While here, remove some orphaned UCL files for packages we no
longer ship.

MFC after:      1 day
Reviewed by:    bapt
Differential Revision:  https://reviews.freebsd.org/D52690
c7a4cdd09f462922510c24dc49010b1c603c3c1a Lexi Winter 2025-09-24 18:41:39

debug: classified in 02-filenames_wildcards by 'release/.*'

make packages: Fix edge case of no kernel
When NO_INSTALLKERNEL and NO_INSTALLEXTRAKERNELS are set, or when
BUILDKERNELS is empty, we can fail to define the create-kernel-packages
make target, which we call unconditionally. So if do not have a kernel
staging dir, go ahead and provide an empty create-kernel-packages so
that when it's used elsewhere, the build succeeds.

This lets me build a tree and package it when I don't have a kernel, for
jails and other similar environments. There's no change if any kernels
are built, since that will provide the necessary make target that does
useful things for that case.

Sponsored by:           Netflix
d466cb731a2317ec91a89684e9d6a915fdfcc2ff Warner Losh 2025-09-24 18:41:29

debug: classified in 02-filenames_wildcards by '.*Makefile'

release: Make toolchain OCI container use pkg set
This also indirectly addresses the lack of FreeBSD-lldb package on
the riscv64 platform by relying on that package being part of the
FreeBSD-set-devel set iff it exists.

A subsequent commit will adjust the "notoolchain" OCI container image
to also use a package set, which will indirectly affect the contents
of the "toolchain" container (which is an explicit superset of the
"notoolchain" container).

MFC after:      1 day
Co-authored-by: dch
56e01d0d7e0f7c2129c05467ca99d5f5538f52bc Colin Percival 2025-09-24 23:12:57

debug: classified in 02-filenames_wildcards by 'release/.*'

release: create pkgbase repo config from Makefile
This will allow the VM image build scripts to use the same repository
config file for installing base system packages at build time.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D51482
f4f0308440d2321fa9172dab1029f16a70289e4e Isaac Freund 2025-07-24 08:43:33

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

release: create pkgbase VM and cloud images
VM and cloud images are now built as packaged base systems by default,
matching the default for installation media.

Setting -DNOPKGBASE allows building as non-pkgbase systems.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D51483
4227d51b6e09ceaaae0f5832c85ec700d80ef18f Isaac Freund 2025-07-24 08:43:43

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

packages: Remove inetd from the minimal set
Although inetd is widely used, none of the base daemons which require
or support inetd (e.g. fingerd, tftpd, sshd) are in the minimal set,
and it's fairly uncommon to enable inetd's built-in servers nowadays.

MFC after:      6 hours
Reviewed by:    manu, bapt, emaste
Differential Revision:  https://reviews.freebsd.org/D52715
791fc275dbc37ccb3cd4d33a087b69e399019572 Lexi Winter 2025-09-25 17:36:30

debug: classified in 02-filenames_wildcards by 'release/.*'

packages: Add a base-jail set
This is base, but without packages which are not generally useful
in jails.  The following packages are excluded:

* Support for hardware not present in a jail:
  acpi, apm, bluetooth, ccdconfig, console-tools, cxgbe-tools,
  efi-tools, fd, hostapd, mlx-tools, nvme-tools, wpa

* Kernel facilities that don't work in a jail:
  dtrace, dwatch, ggate, hast, iscsi, libcuse, smbutils

All library packages are included in base-jail, even if they might not
work, because the user may have executables linked with them.

While here, remove the set-minimal dependency from set-devel, since
this will cause unnecessary packages to be installed in jails.  This
means users will need to install set-devel in addition to their base
set (minimal or base), which bsdinstall already handles correctly.

Add a license to all the set UCL files, so people can redistribute them.

MFC after:      6 hours
Reviewed by:    manu
Differential Revision:  https://reviews.freebsd.org/D52719
31d00ac6c9ec342312ca4075d2e6dc0a68b5263d Lexi Winter 2025-09-25 17:31:38

debug: classified in 02-filenames_wildcards by 'release/.*'

freebsd-base.7: New manpage describing pkgbase
This covers the basic structure of pkgbase, how packages are
distributed, how package sets work, and provides a few example
of actually using pkgbase.

MFC after:      6 hours
Approved by:    re (cperciva)
Reviewed by:    ziaee, cperciva
Differential Revision:  https://reviews.freebsd.org/D52644
72bf56e273cb914e3b00f98e35e7270efd4edddb Lexi Winter 2025-09-25 17:41:00

debug: classified in 02-filenames_wildcards by '.*Makefile'

pkgbase-stage: Use unique PKG_DBDIR
Prior to this commit, pkgbase-stage.lua used a hard-coded PKG_DBDIR
"./pkgdb"; unfortunately this creates a race condition if we start
building disc1.iso and dvd1.iso at the same time

  pkg: sqlite error while executing CREATE TABLE licenses [...]
  in file pkgdb.c:2330: table licenses already exists

since pkg checks to see if the pkgdb is initialized and initializes
it if not.

Use separate pkgdb-disc1 and pkgdb-dvd directories.

MFC after:      1 minute
Sponsored by:   https://www.patreon.com/cperciva
Differential Revision:  https://reviews.freebsd.org/D52755
523fece9d11e5d084c1d20d10d05971f5354d343 Colin Percival 2025-09-27 01:23:20

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

OptionalObsoleteFiles.inc: Add more ATF libraries
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289653
Reported by:    Trond Endrestøl <Trond.Endrestol@ximalas.info>
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D52676
ceb5792d1e2e58646dd291a2dc3877aaeb73122b Mark Johnston 2025-09-22 14:04:30

debug: classified in 03-filenames_plain1 by 'tools/build/'

packages: Add efi-tools to set-minimal
This is required to manage the firmware on amd64 and aarch64 systems.

MFC after:      3 days
Reviewed by:    imp, emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D52742
fc726c4ec4636d44e9c964092dba6df07cac8b20 Lexi Winter 2025-09-28 01:46:42

debug: classified in 02-filenames_wildcards by 'release/.*'

packages: Add kernel-man to minimal-jail
These manpages are broadly applicable to all systems, even jails,
since they describe kernel facilities which are available in jails.

MFC after:      3 days
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D52743
29a4fe3dbd8493d0066c5424bfe0e890d4703f34 Lexi Winter 2025-09-28 01:49:08

debug: classified in 02-filenames_wildcards by 'release/.*'

Internal organizational stuff

vladlen@ joins comitters-doc and calendar.freebsd
Reviewed by: maxim (mentor)
Approved by: maxim (mentor)
Differential Revision: https://reviews.freebsd.org/D52769
008d04b297c700ed386a4e846c1834ade7255043 Vladlen Popolitov 2025-09-28 09:34:09

debug: Commit manually moved from "unknown" to "internal".

Testing

krb5: Remove tests
Tests contains a file that contains spaces in it. This causes the
freebsd-update build scripts some issues. As we don't need the tests
directory let's simply remove it.

MFC after:      3 days or as determined by re@
MFC to:         stable/15
3e13aae0d1f1a28352d52e41d6ef8f02efd9150e Cy Schubert 2025-09-22 15:06:41

debug: Commit manually moved from "unknown" to "tests".

tests/newsyslog: cleanup after tests_normal_rotate_recompress test
The garbage left would prevent subsequent tests to succeed.  Note that
currently this is the last test to execute.
874eaa3821dd678ca27706af3f023844e3094b2e Gleb Smirnoff 2025-09-23 09:21:02

debug: classified in 02b-filenames_wildcards2 by 'usr.sbin/.*/tests/.*'

tests/newsyslog: don't hardcode -F for newsyslog execution
At the moment all tests need forced rotation, but future tests may not, so
let the tests themselves decide if -F is needed.  Should be no functional
change.
f221f410920df17a2044cd47a23a6f2a1268b44a Gleb Smirnoff 2025-09-23 09:23:00

debug: classified in 02b-filenames_wildcards2 by 'usr.sbin/.*/tests/.*'

pfctl tests: basic 'once' rule test
Sponsored by: Rubicon Communications, LLC ("Netgate")
8a4386142d05d34a0f8fdce9b4dc2bf5fcfacf8b Kristof Provost 2025-08-27 13:56:02

debug: classified in 02b-filenames_wildcards2 by 'sbin/.*/tests/.*'

pf tests: basic 'once' test
Sponsored by: Rubicon Communications, LLC ("Netgate")
c913959e9e03ccc979caacda520568c084714f48 Kristof Provost 2025-08-28 15:14:14

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

pf tests: test once rule inside an anchor
Sponsored by: Rubicon Communications, LLC ("Netgate")
2c53e251601c1fcd558f42a16f6030ba75b7e8df Kristof Provost 2025-08-28 15:36:03

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

tests/netlink: fix flaky netlink_sockets:sizes
The problem is that fullsocket() creates a socket that has both send and
receive buffers full and as we process messages from the receive buffer we
allow the kernel to continue processing of the send buffer and a new
message may arrive while the test expects that no new messages arrive.
Fix that by creating a socket that has several messages in the receive
buffer, but don't have any in the send buffer.
aab45f2aeec803d37514b574010cb5e7cfba8249 Gleb Smirnoff 2025-09-28 14:49:31

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

Style, typos, and comments

These could go in other categories, but it's more clear if they're here instead.

recoverdisk.1: Fix typo
Spotted by: lme@
14cc3e658c4ccc382139732b00d5976070300adf Poul-Henning Kamp 2025-09-24 12:33:32

debug: classified in 01-style by '[tT]ypo'

tcp: whitespace cleanup
No functional change intended.

MFC after:      3 days
Sponsored by:   Netflix, Inc.
40417930f6ba50f61990fb995dd071c6fd42d080 Michael Tuexen 2025-09-24 08:51:06

debug: classified in 01-style by '[wW]hitespace'

Contrib code

crypto/openssl: update component to 3.5.3
This change updates the sources for crypto/openssl. The subsequent
commit will update the build artifacts to match the 3.5.3 release.

More details about the update can be found in the related vendor branch
commits.

MFC after:      1 week
Merge commit 'aed904c48f330dc76da942a8ee2d6eef9d11f572'
88b8b7f0c4e9948667a2279e78e975a784049cba Enji Cooper 2025-09-22 22:31:10

debug: classified in 03-filenames_plain1 by 'crypto/openssl/'

crypto/openssl: update build artifacts for the 3.5.3 release
This change updates the build artifacts to match the 3.5.3 release. Much
of the change involves updating version numbers and release dates to
match the release version's metadata.

MFC after:      1 week
MFC with:       88b8b7f0c4e9948667a2279e78e975a784049cba
d9cc3d558d00ee7f62dbef2032f099033c91d2a1 Enji Cooper 2025-09-18 19:20:31

debug: Commit manually moved from "unknown" to "contrib".

Commit group #4: tzcode: Use -00 only for invalid time zones
tzcode: Use -00 only for invalid time zones

As of tzcode 2025a, if we are unable to load a time zone, we set tzname
to "-00" to indicate an error.  This penalizes users who simply don't
set TZ or create /etc/localtime as a faster way of setting the time zone
to UTC (pointing /etc/localtime at /usr/share/zoneinfo/UTC forces us to
parse it every time for no real benefit).  To rectify this, use "-00"
only if TZ was set or zoneinit() returned something else than ENOENT.

MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=967a49a21a27 ("Update tzcode to 2025b")
Reviewed by:    philip
Differential Revision:  https://reviews.freebsd.org/D52680
a5f14e4f9069a8ffed66d923bb0ecf20d8a0e6af Dag-Erling Smørgrav 2025-09-23 12:56:11

debug: classified in 03-filenames_plain1 by 'contrib/'


tzcode: Fix issues when TZ is an absolute path

* If TZ starts with TZDIR, strip any additional slashes so relname
  does not end up looking like an absolute path.  For instance,
  TZ=/usr/share/zoneinfo//UTC should result in UTC, not /UTC.

* In the setugid case, we were incorrectly passing name rather than
  relname to fstatat().

* Modify the tz_env and tz_env_setugid test cases to exercise both
  of these scenarios.

* Also add test cases for invalid values of TZ, which I wrote
  earlier but forgot to include in a5f14e4f9069.

Reported by:    Paul Eggert <eggert@cs.ucla.edu>
MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=967a49a21a27 ("Update tzcode to 2025b")
Fixes:          https://cgit.freebsd.org/src/commit/?id=a5f14e4f9069 ("tzcode: Use -00 only for invalid time zones")
Reviewed by:    philip
Differential Revision:  https://reviews.freebsd.org/D52753
df8bc705eb04aff2f718678fffb9d5d4f5d7c223 Dag-Erling Smørgrav 2025-09-27 17:07:04

debug: classified in 04-filenames_plain2 by 'lib/'


tzcode: Really fix issues when TZ is an absolute path

This was accidentally left out of the previous commit.

Fixes:          https://cgit.freebsd.org/src/commit/?id=df8bc705eb04 ("tzcode: Fix issues when TZ is an absolute path")
202b59c35ead5bd2b71331169bdeb4845cb655c1 Dag-Erling Smørgrav 2025-09-28 11:11:26

debug: classified in 03-filenames_plain1 by 'contrib/'

tzcode: Expose and document offtime() and offtime_r()
Includes diff reduction to upstream version of this patch.

MFC after:      3 days
Sponsored by:   Klara, Inc.
Reviewed by:    philip
Differential Revision:  https://reviews.freebsd.org/D39715
155290b23f0b503b9db675d6a45f85b189ee1926 Dag-Erling Smørgrav 2025-09-23 18:52:10

debug: Commit manually moved from "unknown" to "contrib".

zfs: merge openzfs/zfs@b2196fbed
Notable upstream pull request merges:
 #17705 545d66204 Fix a printf format specifier on FreeBSD/i386
 #17708 3387d3409 Fix atomic-alignment warnings in libspl on FreeBSD/i386
 #17719 f319ff357 vdev_disk_close: take disk write lock before destroying it
 #17732 1d2d81298 Refactor `zhack label repair` and fix `-c` regression on
                  nonzero TXG
 #17764 ea37c30fc zdb: Fix asize overflow in verify_livelist_allocs()

Obtained from:  OpenZFS
OpenZFS commit: b2196fbedf5dbfb8593288f5f9ba712e31429a84
113e60742ef6ba5c069aa737ee57ba3c2f88b248 Martin Matuska 2025-09-24 20:54:28

debug: classified in 03-filenames_plain1 by 'sys/contrib'

tzcode: Drop libc namespace
This hasn't been needed in years and is a maintenance headache.

MFC after:      1 week
Reviewed by:    philip
Differential Revision:  https://reviews.freebsd.org/D52694
d58339f398748b50ff84421e9d81f8f6d94cb949 Dag-Erling Smørgrav 2025-09-27 17:06:58

debug: classified in 03-filenames_plain1 by 'contrib/'

Reverted commits

Revert "ifconfig: Display the IFCAP_NV capability without netlink"
The display of IFCAP_NV is handled by SIOCGIFCAPNV ioctl. The kernel
composes a nvlist of capabilities and the userland unpack them and
display. So this "NV" in IFCAPBITS is meaningless but rather misleading.

This reverts commit 0c1684dd456e3df306b359b04e61f9f2048d9ff2.
0143af8499cacfe5787ad3902a714bbdab4c8b28 Zhenlei Huang 2025-09-22 04:45:48

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Revert "acpi_powerres: `acpi_pwr_get_state` and getting initial D-state for device"
Setting ACPI D-states is generally broken on FreeBSD and this change
surfaced an issue. So reverting for the time being whilst I write a
proper fix for this.

This reverts commit 02a8fadd2c4dc4b78d6d93d9d8b70e9348a6de6d.

Reported by:    glebius, phk
Tested by:      glebius
Sponsored by:   The FreeBSD Foundation
7e5ab1857817e7be85f012d41239711ef66ebdf6 Aymeric Wibo 2025-09-28 16:06:53

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Unclassified commits

Not classified automatically, and waiting for manual attention.

-- no commits in this category this week --

Technical notes

Dates:

Automatic grouping:

Automatic categories:

Source code:


Generated with commits-periodical 0.18 at 2025-10-06 17:37:03+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2025-09-22 (release)