NAS-141504 / 27.0.0-BETA.1 / Convert system.vendor to the typesafe port pattern (#19173)
## Context
system.vendor was an old-style service with inline BaseModel
args/results and @api_method-wrapped methods. All three methods (name,
unvendor, is_vendored) are private with no over-the-wire surface and
there is no datastore, so it fits the fully-private port pattern — a
lean private shim delegating to plain, fully type-annotated module
functions — rather than a Generic*/Pydantic conversion. The wire shapes
(str | None, bool, None) are unchanged.
## Solution
- vendor.py is now a plain typed logic module (get_vendor,
remove_vendor_file, is_vendored); get_vendor stays importable there for
scripts/vendor_service.py. The lean VendorService shim in __init__.py
keeps the try/except + logging orchestration and delegates to it, with
Config private. unvendor keeps the etc.generate string call since that's
CtxMethod dynamic dispatch.
- Registered VendorService on SystemServicesContainer in main.py so it
[7 lines not shown]
[RFC][CodeGen] Add generic target feature checks for intrinsics
This PR adds target-independent infrastructure for annotating LLVM intrinsics
with required subtarget feature expressions.
It introduces a TargetFeatures string field to intrinsic TableGen records.
TableGen emits an intrinsic-to-feature mapping table.
Both SelectionDAG and GlobalISel now perform this check before lowering target
intrinsics. This allows targets to opt in by annotating intrinsic definitions
directly, rather than adding custom checks during lowering, legalization, or
instruction selection.
This PR uses one AMDGPU intrinsic as an example.
[RFC][IR] Extract AMDGPU-specific verification logic into `VerifierAMDGPU.cpp`
`Verifier.cpp` is large and already mixes generic IR verification with
target-specific checks. We also have a growing amount of AMDGPU verifier logic
downstream, which would all end up in the same file if we don't address this,
and that is not ideal.
This patch extracts AMDGPU-specific verification logic into a separate
`VerifierAMDGPU.cpp` file, with shared infrastructure (`VerifierSupport`) moved
into `VerifierInternal.h`.
This is purely a code organization change, not a target-dependent IR verifier.
All checks remain compiled and linked into `LLVMCore` regardless of the target
triple. The extracted functions are called unconditionally at well-defined
extension points in `Verifier.cpp`, and each function internally gates on
target-specific conditions (for example, triple checks or intrinsic IDs) as
needed. The file is strictly limited to AMDGPU-specific IR constructs (amdgcn
intrinsics, AMDGPU module flags, etc.), and does not contain generic IR rules
that vary by target.
[10 lines not shown]
Skip individual domains that vanish while gathering libvirt state
## Problem
`gather_pylibvirt_domains_states` wraps its whole loop in one try/except. If a queried domain is destroyed between `list_domains()` and reading its state (a TOCTOU race), libvirt raises `VIR_ERR_NO_DOMAIN` and the exception unwinds the entire loop, so every still-running domain after it is dropped from the result and reported as STOPPED/`pid: null` until the next poll. It also logged a full WARNING traceback for what is a benign, self-correcting race, and masked genuine errors (e.g. a bug in the per-domain factory) behind that same generic warning.
## Solution
Moved the try/except inside the loop so a vanished domain is skipped individually while the rest of the batch is still reported correctly (a missing entry falls back to STOPPED via `get_pylibvirt_domain_state`). The failure is classified using the new `is_no_domain_error` helper from truenas_pylibvirt: the no-domain race is logged at DEBUG, anything else at ERROR with `exc_info` so genuine bugs stay visible and no longer poison sibling domains.
handbook/virtualization: Fix copy&pasto in driver name
The VMSVGA driver is the one that targets VMware guests, not VBoxSVGA.
Before this fix, the sentence would contradict the one before it. I must
have copied the wrong driver name when I made the original change.
Noticed by: Takashi Shimizu
protocols: Update with IANA list
- Update /etc/protocols with IANA list updated 2026-03-09.
- Document that 240 (pfsync) is not assigned by IANA.
- Document deprecated protocols.
PR: 295739
Reviewed by: des
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D57445
(cherry picked from commit e3fa020202d8e040242016bda275dde83c058549)
protocols: Update with IANA list
- Update /etc/protocols with IANA list updated 2026-03-09.
- Document that 240 (pfsync) is not assigned by IANA.
- Document deprecated protocols.
PR: 295739
Reviewed by: des
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D57445
(cherry picked from commit e3fa020202d8e040242016bda275dde83c058549)
Skip individual domains that vanish while gathering libvirt state
## Problem
`gather_pylibvirt_domains_states` wraps its whole loop in one try/except. If a queried domain is destroyed between `list_domains()` and reading its state (a TOCTOU race), libvirt raises `VIR_ERR_NO_DOMAIN` and the exception unwinds the entire loop, so every still-running domain after it is dropped from the result and reported as STOPPED/`pid: null` until the next poll. It also logged a full WARNING traceback for what is a benign, self-correcting race, and masked genuine errors (e.g. a bug in the per-domain factory) behind that same generic warning.
## Solution
Moved the try/except inside the loop so a vanished domain is skipped individually while the rest of the batch is still reported correctly (a missing entry falls back to STOPPED via `get_pylibvirt_domain_state`). The failure is classified using the new `is_no_domain_error` helper from truenas_pylibvirt: the no-domain race is logged at DEBUG, anything else at ERROR with `exc_info` so genuine bugs stay visible and no longer poison sibling domains.
[clang][x86] Add constexpr support for VNNI intrinsics (#190549)
Fixes #161340.
It adds constexpr support for VNNI
intrinsics by modifying their header files, their TableGen definitions,
how they're interpreted in InterpBuiltin.cpp and ExprConstant.cpp, and
adds unit tests in the headers' corresponding unit test files.
uname(1): Add '-b' flag to show the kernel's build-ID
The kernel's build-ID has been exposed via the "kern.build_id" sysctl
MIB. Add a '-b' flag to uname(1) to report it.
Obtained-from: FreeBSD (https://reviews.freebsd.org/D20511)