FreeBSD/src d94e034usr.sbin/pkg pkg.c pkg.7

pkg: Add -j and -r options

This allows pkg(7) to be used to bootstrap a jail or chroot, and to
recognize the -j and -r options and pass them through to pkg(8) if
already bootstrapped.

Note that this does not address the issue of repository keys.  If using
a signed package repository, you will still need to copy /usr/share/keys
into the target environment before or after bootstrapping, or pkg will
be unable to verify package signatures.

MFC after:      1 week
Reviewed by:    imp, bapt
Differential Revision:  https://reviews.freebsd.org/D58165
DeltaFile
+93-27usr.sbin/pkg/pkg.c
+23-5usr.sbin/pkg/pkg.7
+1-1usr.sbin/pkg/Makefile
+117-333 files

FreeBSD/src ec17c24sys/modules/mt76 Makefile.inc, sys/modules/mt76/core Makefile

mt76: further adjust debugfs compile time options

The debugfs options between the various modules (core and chipsets)
are not 100% de-coupled.  This means we may run into unresolveable
symbols at load time of the modules if we enable certain options
generally or for core but not for the chipset.
For now: always build the core module with debugfs support.
Migrate the CONFIG_MAC80211_DEBUGFS flag into the Makefile of each
chipset so we can individually turn it on.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
DeltaFile
+0-5sys/modules/mt76/Makefile.inc
+3-0sys/modules/mt76/core/Makefile
+1-0sys/modules/mt76/mt7915/Makefile
+1-0sys/modules/mt76/mt7921/Makefile
+1-0sys/modules/mt76/mt7925/Makefile
+1-0sys/modules/mt76/mt7996/Makefile
+7-51 files not shown
+8-57 files

FreeBSD/src c6e70c6sys/compat/linuxkpi/common/src linux_80211.c

LinuxKPI: 802.11: lkpi_80211_txq_tx_one() only pass sta if added to drv

If we are doing a direct (*tx) downcall, only pass sta as meta data
if it was added to the driver (via the state machine).  This prevents
us passing a sta not known to the driver leading to possible follow-up
complications/errors.  This will usually happen if (a) we are doing
software scanning, or (b) if net80211 decides to change the ni from
under us and sends a packet with the new ni.

Adjust a debug statement before to also have the added_to_drv field
in it to ease debugging.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
DeltaFile
+6-5sys/compat/linuxkpi/common/src/linux_80211.c
+6-51 files

FreeBSD/src f9a3706sys/compat/linuxkpi/common/src linux_pci.c

LinuxKPI: fix lkpi_pci_get_device() reference counting on device

In case we are passed an "odev" (a device to start the search from),
that device would have an extra reference.  The best way to illustrate
this is to look at for_each_pci_dev(), which will return one device
after the other.  Upon first return we return a pdev with a reference.
That pdev is then passed in as odev on the next call.  If we do not
clear the reference it will be leaked.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Fixes:          910cf345d0ee9 ("LinuxKPI: pci: implement ...")
Reviewed by:    dumbbell, emaste
Differential Revision: https://reviews.freebsd.org/D57428
DeltaFile
+3-1sys/compat/linuxkpi/common/src/linux_pci.c
+3-11 files

FreeBSD/src 66b25ddsys/compat/linuxkpi/common/src linux_pci.c

LinuxKPI: pci detach: implement a proper detach (release) path

There are two paths in the LinuxKPI PCI code to instantiate a "pdev"
(LinuxKPI pci_dev).  One is using the FreeBSD bus framework and the
pdev will be the softc.
This commit starts cleaning up the detach path for just that case
to the best possible.

So far we did a lot of the work in linux_pci_detach_device(), which is
the internal handler of the detach function and little in the
(*release) callback (devres cleanup only).
The problem with that is, that we tear down resources which later in the
devres cleanup are needed.  With them not being there anymore we panic, e.g.,
in lkpi_dma_unmap < lkpi_dmam_free_coherent < lkpi_devres_release_free_list.
The solution is to migrate most of the cleanup work into the (*release)
callback, which will automatically be called when the device (kobj) reference
drops to zero.  The only work which should be done immediately is to let the
dirver do its cleanup;  this has to happen before we try to teardown the
resources, but also we do want this to happen when detach is called

    [23 lines not shown]
DeltaFile
+129-14sys/compat/linuxkpi/common/src/linux_pci.c
+129-141 files

FreeBSD/src 058ce52sys/compat/linuxkpi/common/include/linux workqueue.h, sys/compat/linuxkpi/common/src linux_work.c

LinuxKPI: add system_percpu_wq

In Linux v6.17 system_wq was replaced (renamed to) system_percpu_wq,
with the old name still present.

We just alias system_percpu_wq to linux_system_short_wq like we do
for system_wq to keep both around for the forseeable future.

Note: the original system_wq was a per-cpu queue upstream as well
based on my understanding but we never implemented it as such.
That means we are still lacking a per-cpu implementation for
system_percpu_wq but at least we do not change the status-quo
of the LinuxKPI implementation with this.

Note2: we should add a check somewhere for LINUXKPI_VESION >=
61700 to print a warning if anyone still uses the system_wq
to detect any possible sami-native or out-of-tree drivers
relying on this and not properly updating.


    [4 lines not shown]
DeltaFile
+9-0sys/compat/linuxkpi/common/src/linux_work.c
+1-0sys/compat/linuxkpi/common/include/linux/workqueue.h
+10-02 files

FreeBSD/src 97de833sys/kern sys_procdesc.c kern_sig.c, sys/sys procdesc.h

kern: add fget_procdesc()

Convert several callers to use fget_procdesc().
Eliminate procdesc_find() and directly use fget_procdesc() in
sys_pdkill().  Previous code structure required to fdrop() procdesc
while the process is locked.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58117
DeltaFile
+77-83sys/kern/sys_procdesc.c
+10-4sys/kern/kern_sig.c
+3-7sys/kern/kern_exit.c
+3-3sys/sys/procdesc.h
+93-974 files

FreeBSD/src cc3f89cshare/monetdef_unicode sr_RS.UTF-8@latin.src fr_CH.UTF-8.src, share/numericdef_unicode fr_CH.UTF-8.src Makefile

locale: make install Unicode 17.0.0/CLDR 48.2

Data changes:

48.1:
- Update RSD (Serbian Dinar) to use 2-digits for non-cash and 0-digits
  for cash.
- Fix issue with tippi and bindi in Punjabi exemplars.
- Fix parsing issue in numeric date+time patterns for zh_Hant and yue.
- Fix issues with hour cycle display names for several languages.

https://cldr.unicode.org/downloads/cldr-48#481-changes

48.2:
- Group separator for number formatting was updated to ' in fr-CH
  consistent with other Swiss locales.
- Some fixes to date formats including: Hv available formats were
  updated to match behavior in CLDR 47 due to web compatibility issues
  related to current JS capabilities.

    [11 lines not shown]
DeltaFile
+4,516-1tools/tools/locale/etc/final-maps/widths.txt
+14-0share/numericdef_unicode/fr_CH.UTF-8.src
+2-2share/monetdef_unicode/sr_RS.UTF-8@latin.src
+1-1tools/tools/locale/etc/final-maps/map.UTF-8
+1-1share/monetdef_unicode/fr_CH.UTF-8.src
+1-1share/numericdef_unicode/Makefile
+4,535-61 files not shown
+4,536-77 files

FreeBSD/src e8cca47tools/tools/locale Makefile

locale: Update Unicode to CLDR 48.2

Notable changes:

- Group separator for number formatting was updated to ' in fr-CH
  consistent with other Swiss locales.
- Some fixes to date formats including: Hv available formats were
  updated to match behavior in CLDR 47 due to web compatibility issues
  related to current JS capabilities.
- Emoji annotations fixes including collisions between emoji short
  names.
- Updated AM/PM for ko & ps to be consistent with how the wide forms are
  localized.

Reviewed by:    bapt
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D57626

(cherry picked from commit 9edbff33aa299dfe7693e18f5bff682bd7ac6b40)
DeltaFile
+1-1tools/tools/locale/Makefile
+1-11 files

FreeBSD/src a0b6231tools/tools/locale Makefile

locale: Do not strip the suffix from CLDRVERSION

The upstream CLDR directory structure requires the full version string.
Remove the ':R' modifier to fix the fetch paths.

Previously this worked because major releases were published in a
directory without the ".0" suffix, while the filenames included it.
Starting with CLDR 47, the upstream layout changed to use the full
version string exclusively, causing the fetch URLs to break for point
releases.

MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D57625

(cherry picked from commit 77ca1ce66283aa84258ef2323b692711df16158c)
DeltaFile
+3-3tools/tools/locale/Makefile
+3-31 files

FreeBSD/src 67f1c08usr.bin/mkimg gpt.c scheme.c

mkimg: Add ms-basic-data alias for GPT

While preparing GPT-schemed RaspberryPi images for the NanoBSD
Reimagined GSoC 2026 project, a discrepancy was identified between
mkimg(1) and gpart(8) regarding Microsoft Basic Data partitions (GUID
!ebd0a0a2-b9e5-4433-87c0-68b6b72699c7).

Currently, mkimg(1) relies on the MBR-centric name "ntfs" to identify
this partition type under the GPT scheme.  Conversely, gpart(8)
identifies this type as "ms-basic-data".

To allow automation scripts (such as those consuming from gpart backup)
to use a common partition type across tools, add ALIAS_MS_BASIC_DATA as
a valid alias.

This is part of a larger effort to avoid a custom, MBR-based image
generation logic for embedded SoCs like the Raspberry Pi, standardizing
on GPT layouts across all supported FreeBSD embedded devices.


    [3 lines not shown]
DeltaFile
+1-0usr.bin/mkimg/gpt.c
+1-0usr.bin/mkimg/scheme.c
+1-0usr.bin/mkimg/scheme.h
+3-03 files

FreeBSD/src 141b664lib/libnetmap nmreq.c

libnetmap: fix extra indirection in nmreq_remove_option

Reviewed by:    zlei, vmaffione
Obtained from:  https://github.com/luigirizzo/netmap/commit/7d9177ed9a121e66bf4eaa0acb5d574e408297da
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D58151
DeltaFile
+1-1lib/libnetmap/nmreq.c
+1-11 files

FreeBSD/src fcaf15elib/libnetmap nmport.c

libnetmap: fix error path in nmport_extmem_from_file

Reviewed by:    zlei, vmaffione
Obtained from:  https://github.com/luigirizzo/netmap/commit/b52a2bcae35e56548acfb0849b248a1e4b0c0c3b
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D58150
DeltaFile
+3-1lib/libnetmap/nmport.c
+3-11 files

FreeBSD/src f2f50c8usr.bin/sockstat main.c

sockstat: fix SCTP support

Provide a name for SCTP sockets.

Fixes:          8b2b62b49d88 ("sockstat: consolidate unix(4) protocols in the array of protocols")
DeltaFile
+2-0usr.bin/sockstat/main.c
+2-01 files

FreeBSD/src 920518csys/dev/fdt fdt_common.c fdt_common.h

FDT: implement fdt_ether_get_addr()

Introduce fdt_ether_get_addr() in fdt_common.c/h that tries standard
DT properties in the correct order and falls back to a random address
when needed. This should be used by ethernet drivers instead of open-coding
the same logic.

MFC after:      2 weeks

Reviewed by:    mhorne, adrian, bz, jrtc27
Differential Revision:  https://reviews.freebsd.org/D58104
DeltaFile
+40-0sys/dev/fdt/fdt_common.c
+4-0sys/dev/fdt/fdt_common.h
+44-02 files

FreeBSD/src e16857eshare/man/man5 src.conf.5, tools/build/options WITH_CCACHE_BUILD

src.conf(5): Suggest using ccache4

We have separate ports for Ccache 3 and 4.  Suggest both, rather than
only the Ccache 3 port.  Rearrange the text somewhat to avoid an
excessively ragged edge on a standard 80-column terminal.

MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D58005

(cherry picked from commit a2545f68f64b4cfcc13ca2d372c8b9fef1c6331e)
DeltaFile
+7-10tools/build/options/WITH_CCACHE_BUILD
+10-6share/man/man5/src.conf.5
+17-162 files

FreeBSD/src b775479share/man/man5 src.conf.5, tools/build/options WITH_CCACHE_BUILD

src.conf(5): Suggest using ccache4

We have separate ports for Ccache 3 and 4.  Suggest both, rather than
only the Ccache 3 port.  Rearrange the text somewhat to avoid an
excessively ragged edge on a standard 80-column terminal.

MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D58005

(cherry picked from commit a2545f68f64b4cfcc13ca2d372c8b9fef1c6331e)
DeltaFile
+8-11share/man/man5/src.conf.5
+7-10tools/build/options/WITH_CCACHE_BUILD
+15-212 files

FreeBSD/src cd2c145share/mk bsd.compiler.mk, tools/build/options WITH_CCACHE_BUILD

share/mk: Add sccache suport for WITH_CCACHE_BUILD option

By setting CCACHE_NAME=sccache , sccache can be used as an alternative
for ccache.

Reviewed by:    emaste, jhb
Event:          Kitchener-Waterloo Hackathon 202506
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D49417

(cherry picked from commit 10cb3979a9bde6c8e441e3ba4aa5fd09963c484f)
DeltaFile
+11-1share/mk/bsd.compiler.mk
+7-0tools/build/options/WITH_CCACHE_BUILD
+18-12 files

FreeBSD/src 60382b4lib/libfetch common.c http.c

libfetch: Reduce copying

Reduce the amount of copying we do when performing buffered reads.

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D58113
DeltaFile
+29-16lib/libfetch/common.c
+18-23lib/libfetch/http.c
+12-11lib/libfetch/ftp.c
+2-0lib/libfetch/common.h
+61-504 files

FreeBSD/src d4e0e1flib/libfetch common.h common.c

libfetch: Make fetch_ref an inline

Make fetch_ref() an inline and provide a fetch_deref().

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D57944
DeltaFile
+12-1lib/libfetch/common.h
+0-11lib/libfetch/common.c
+1-1lib/libfetch/ftp.c
+13-133 files

FreeBSD/src 3dddfe2usr.bin/fetch fetch.c fetch.1

fetch: Stop setting an alarm

Now that fetchTimeout works reliably, setting an alarm is not only no
longer necessary but counterproductive, as it will trigger even if the
connection is not actually stalled but merely slow.

While here, improve the wording of the manual page's description of the
various options for setting a timeout.

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D57911
DeltaFile
+9-24usr.bin/fetch/fetch.c
+6-4usr.bin/fetch/fetch.1
+15-282 files

FreeBSD/src 27b4117lib/libfetch fetch.3

libfetch: Document fetchTimeout

Document the global fetchTimeout variable, now that it works reliably.

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D57910
DeltaFile
+16-2lib/libfetch/fetch.3
+16-21 files

FreeBSD/src 848f360lib/libfetch common.c

libfetch: Apply timeout to connection attempts

Mark the socket non-blocking before connecting and poll for completion,
applying fetchTimeout if set.

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D57909
DeltaFile
+42-7lib/libfetch/common.c
+42-71 files

FreeBSD/src a197827lib/libfetch common.c http.c

libfetch: Add read buffering

Previously, we would read FTP control connection messages and HTTP
reponse headers one character at a time.  Now, we read as much as will
fit in our buffer and look for a newline.  If there is data left over,
it will be reused by the next fetch_getln() call.  This also requires
the addition of a fetch_bufread() which takes the buffer into account,
otherwise the start of the HTTP response body will be stuck in the
buffer after we read the last line of the header.

This should noticeably improve HTTP performance, especially for small
transfers.

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D57907
DeltaFile
+87-22lib/libfetch/common.c
+24-41lib/libfetch/http.c
+4-7lib/libfetch/ftp.c
+3-1lib/libfetch/common.h
+118-714 files

FreeBSD/src 32c341blib/libfetch common.c common.h

libfetch: Overhaul socket read / write

* Make fetch_ssl_read() and fetch_ssl_write() behave more like read(2)
  and write(2), and drop fetch_socket_read() in favor of read(2).

* Don't request POLLERR, it's implied.

* Don't needlessly set errno, it's relatively costly.

* Always check for EAGAIN from writev(2), otherwise we will abort on a
  short write instead of proceeding to poll(2).

* Always check for EAGAIN from poll(2) even though it can't happen on
  FreeBSD; POSIX says it can, and it might in the future.

* Rewrite fetch_read() and fetch_writev() to be more similar to each
  other.  The main difference is that a partial read is treated as
  success while a partial write is treated as failure.


    [4 lines not shown]
DeltaFile
+131-87lib/libfetch/common.c
+2-2lib/libfetch/common.h
+133-892 files

FreeBSD/src 9fc14dbusr.bin/tail tail.c

tail: Allow repetitive or contraditory options

Unlike its GNU counterpart, our tail(1) has always errored out if given
repetitive or contradictory options, even prior to Keith Bostic's 1991
reimplementation.  There is no good reason to continue to do so, not
even tradition, since many other commands (including head(1)) simply
apply the rightmost option in cases like this.

MFC after:      1 week
Reviewed by:    allanjude, markj
Differential Revision:  https://reviews.freebsd.org/D58192
DeltaFile
+0-2usr.bin/tail/tail.c
+0-21 files

FreeBSD/src 2a5e58csys/kern sys_procdesc.c kern_sig.c, sys/sys event.h procdesc.h

procdesc: add NOTE_PDSIGCHLD

The note type wakes up when there is something for pdwait(2) to report
on the process descriptor.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58123
DeltaFile
+21-4sys/kern/sys_procdesc.c
+6-3sys/sys/event.h
+2-0sys/kern/kern_sig.c
+1-0sys/sys/procdesc.h
+30-74 files

FreeBSD/src 0f1718esys/kern sys_procdesc.c

pdwait(2): make debugging events functional

We need to wake up the pdwait(2) waiters when procdesc event is
reported.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58172
DeltaFile
+1-0sys/kern/sys_procdesc.c
+1-01 files

FreeBSD/src 4cd67a0lib/libsys kqueue.2

kqueue.2: document NOTE_PDSIGCHLD

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58123
DeltaFile
+9-1lib/libsys/kqueue.2
+9-11 files

FreeBSD/src f6ee1d2sys/kern kern_thread.c

kern_thread: Fix i386 p_emuldata KBI assertion

On amd64 there was 4 bytes of padding between the 20-byte p_comm and
(for LP64) 8-byte p_sysent, so the addition of p_execblock just caused
that padding to be eaten up. However, on i386, there was no such
padding, and so the addition of p_execblock rippled through to
p_emuldata.

Fixes:  e1a84b7708c2 ("execve_block(): a mechanism for mutual exclusion with execve() on the process")
DeltaFile
+1-1sys/kern/kern_thread.c
+1-11 files