FreeNAS/freenas dfb3eadsrc/middlewared/middlewared/plugins/cloud_backup crud.py __init__.py

Convert cloud_backup plugin to the typesafe pattern

This commit adds changes to convert the cloud_backup plugin to the typesafe service/part pattern, so query and get_instance return Pydantic models, public methods use @api_method(check_annotations=True), and same-process calls go through call2/call_sync2.

The shared CloudTaskServiceMixin is left untyped since cloud_sync still depends on it, with a single sibling-safe edit to its zvol validation path. All in-process consumers were updated for model access: the cloud_sync credential delete check, the cron.d mako, and the path-resolution migration. Since the password is a Secret field, the create/update and restic paths dump with expose_secrets so an unchanged password isn't written back as the redaction string.
DeltaFile
+89-149src/middlewared/middlewared/plugins/cloud_backup/crud.py
+179-0src/middlewared/middlewared/plugins/cloud_backup/__init__.py
+73-82src/middlewared/middlewared/plugins/cloud_backup/sync.py
+65-83src/middlewared/middlewared/plugins/cloud_backup/snapshot.py
+60-63src/middlewared/middlewared/plugins/cloud_backup/init.py
+38-37src/middlewared/middlewared/plugins/cloud_backup/restore.py
+504-41410 files not shown
+579-43216 files

LLVM/project 6619aa7llvm/lib/Target/AMDGPU AMDGPUBarrierLatency.cpp, llvm/test/CodeGen/AMDGPU fence-barrier-latency.ll llvm.amdgcn.update.dpp.ll

[AMDGPU] Use SchedModel latencies for Fence barrier edges (#204657)

For memory->fence dependencies, this PR sets the latency of the edge to
the instr latency of the predecessor memory instruction.

During lowering of these fences, we insert the necessary waitcnts, and
we end up waiting for any outstanding memory op at these fences. Thus,
the latency of the edges should be based on latency of the associated
load/stores.
DeltaFile
+149-0llvm/test/CodeGen/AMDGPU/fence-barrier-latency.ll
+18-17llvm/test/CodeGen/AMDGPU/llvm.amdgcn.update.dpp.ll
+9-9llvm/test/CodeGen/AMDGPU/schedule-barrier-latency-gfx9.mir
+5-1llvm/lib/Target/AMDGPU/AMDGPUBarrierLatency.cpp
+181-274 files

LLVM/project 513ea0dllvm/include/llvm/Support WithColor.h raw_ostream.h, llvm/utils/FileCheck FileCheck.cpp

[FileCheck] Use default colors in input dumps

This patch makes two improvements to colors used in FileCheck input
dumps:

1. Without this patch, input line numbers and ellipses have a
   foreground color of black, which is hard to see in a terminal with
   a dark color theme.  This patch changes that to the terminal's
   default color.
2. Without this patch, the input text is accidentally set to bold when
   neither `-v` or `-vv` is specified.  Perhaps I never noticed
   because I tend to always use `-vv`.  This patch changes that to use
   the terminal's default color.

Case 2 exposes a problem with LLVM's color implementation.  Without
this patch, the call to `WithColor`'s constructor actually specifies
bold as `false`, but `WithColor` ignores that when the color is
`SAVEDCOLOR`.  While it seems like that should be fixed, I am
concerned about the impact of such a fix on other tools that might

    [12 lines not shown]
DeltaFile
+10-4llvm/utils/FileCheck/FileCheck.cpp
+4-0llvm/include/llvm/Support/WithColor.h
+2-0llvm/include/llvm/Support/raw_ostream.h
+16-43 files

LLVM/project cd532fellvm/lib/Analysis LoopCacheAnalysis.cpp, llvm/test/Analysis/LoopCacheAnalysis compute-cost.ll partially-perfect-nest.ll

[LoopCacheAnalysis] Generate tests by update_analyze_test_checks.py (#204807)

Since loop interchange has been enabled in the default pipeline,
development on LoopCacheAnalysis, which is used by LoopInterchange, is
becoming more active. So I think it's a good time to support automatic
test generation for LoopCacheAnalysis.
This patch does two things. First, it changes LoopCachePrinterPass from
a loop pass to a function pass to make it possible to use
update_analyze_test_checks.py. Second, it rewrites all the CHECK
directives in the existing LoopCacheAnalysis tests using the script.
DeltaFile
+41-16llvm/test/Analysis/LoopCacheAnalysis/compute-cost.ll
+24-11llvm/lib/Analysis/LoopCacheAnalysis.cpp
+21-11llvm/test/Analysis/LoopCacheAnalysis/PowerPC/compute-cost.ll
+16-13llvm/test/Analysis/LoopCacheAnalysis/PowerPC/LoopnestFixedSize.ll
+14-11llvm/test/Analysis/LoopCacheAnalysis/partially-perfect-nest.ll
+11-8llvm/test/Analysis/LoopCacheAnalysis/PowerPC/single-store.ll
+127-7011 files not shown
+189-11817 files

FreeNAS/freenas 89758c2src/middlewared/middlewared/plugins/container info.py, src/middlewared/middlewared/plugins/system product.py

Consolidate license feature checks into truenas.license.feature_available

This commit adds changes to route every "is the system licensed to use feature X" check through a single truenas.license.feature_available method, with the surrounding hardware/product gating captured as a FeaturePolicy enum (ANY, ENTERPRISE, HA_APPLIANCE, IX_HARDWARE) instead of being re-implemented at each call site. system.feature_enabled and system.sed_enabled now just delegate to it.

As part of this the SED check becomes legacy-license aware (it previously consulted only the daemon) and feature expiry is now honored everywhere, while the license is still never consulted on hardware where a feature was never gated, so apps and VMs stay unrestricted off HA/iX appliances exactly as before.
DeltaFile
+310-0src/middlewared/middlewared/pytest/unit/plugins/truenas/test_license_feature_available.py
+46-0src/middlewared/middlewared/plugins/truenas/license.py
+1-19src/middlewared/middlewared/pytest/unit/plugins/test_vm.py
+19-0src/middlewared/middlewared/plugins/truenas/license_utils.py
+5-9src/middlewared/middlewared/plugins/container/info.py
+3-9src/middlewared/middlewared/plugins/system/product.py
+384-376 files not shown
+407-5612 files

FreeBSD/ports 2a9a7b3devel/cbmc distinfo Makefile, devel/cbmc/files patch-stdio-models-freebsd patch-libc19

devel/cbmc: update to 6.9.0

Reported by:    lwhsu
DeltaFile
+0-315devel/cbmc/files/patch-stdio-models-freebsd
+0-171devel/cbmc/files/patch-libc19
+0-37devel/cbmc/files/patch-src_solvers_smt2__incremental_convert__expr__to__smt.cpp
+0-28devel/cbmc/files/patch-src_solvers_flattening_boolbv__overflow.cpp
+3-3devel/cbmc/distinfo
+1-1devel/cbmc/Makefile
+4-5556 files

FreeBSD/ports c32540ddevel/py-uv-build distinfo Makefile

devel/py-uv-build: update 0.11.22 → 0.11.23
DeltaFile
+3-3devel/py-uv-build/distinfo
+1-1devel/py-uv-build/Makefile
+4-42 files

FreeBSD/ports 9e00c4amisc/lean-ctx distinfo Makefile

misc/lean-ctx: update 3.8.9 → 3.8.11
DeltaFile
+305-313misc/lean-ctx/distinfo
+152-156misc/lean-ctx/Makefile
+457-4692 files

FreeBSD/ports 2167b59devel/py-uv distinfo Makefile, devel/uv distinfo Makefile

devel/{,py-}uv: update 0.11.22 → 0.11.23
DeltaFile
+3-3devel/uv/distinfo
+3-3devel/py-uv/distinfo
+1-1devel/py-uv/Makefile
+1-1devel/uv/Makefile
+8-84 files

FreeBSD/ports f8e1366lang/typstyle distinfo Makefile

lang/typstyle: update 0.14.4 → 0.15.0
DeltaFile
+567-523lang/typstyle/distinfo
+284-262lang/typstyle/Makefile
+851-7852 files

LLVM/project 2c022e8llvm/test/Verifier range-1.ll nofpclass-metadata.ll

[Verifier] Only accept noundef metadata on loads and update metadata tests (#204922)

noundef metadata has been accepted everywhere so far, which seems to be
an oversight. This patch rejects it everywhere except for load
instructions, which seem to be the only ones where it's supposed to be
supported. The other metadata tests are also updated so they are
somewhat similar to each other.
DeltaFile
+0-163llvm/test/Verifier/range-1.ll
+38-84llvm/test/Verifier/nofpclass-metadata.ll
+68-0llvm/test/Verifier/range-metadata.ll
+0-21llvm/test/Verifier/nonnull_metadata.ll
+16-0llvm/test/Verifier/nonnull-metadata.ll
+12-0llvm/test/Verifier/noundef-metadata.ll
+134-26812 files not shown
+161-29018 files

LLVM/project 0c3c664llvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/VectorCombine fold-shuffle-chains-to-reduce.ll

[VectorCombine] Add subvector reduction support to foldShuffleChainsToReduce (#199872)

Extends foldShuffleChainsToReduce to recognise subvector reductions
where the chain narrows through shuffles before extracting lane 0.

The matcher tracks per output lane attribution as the chain is walked.
Each lane carries a per source bitmask of contributing source lanes plus
a poison flag. Shuffles permute these records. Binops union them. At the
extract, lane 0's bitmasks rebuild the reduction as one or more partial
reduce intrinsics. The walk is capped at 32 chain nodes.

Also added new test file with 11 tests:

| Test | Reason |
| ------------------------------------------------------ |
--------------------------------------------- |
| `_add_v4i32`, `_add_v8i16`, `_add_v16i8`, `_add_v64i8` | basic
subvector reductions across types/sizes |
| `_mul_v16i8` | non-add reduction |

    [20 lines not shown]
DeltaFile
+214-266llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+232-0llvm/test/Transforms/VectorCombine/X86/shuffle-chain-reduction-subvector.ll
+39-41llvm/test/Transforms/VectorCombine/fold-shuffle-chains-to-reduce.ll
+6-27llvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll
+20-0llvm/test/Transforms/VectorCombine/X86/shuffle-chain-reduction-umin.ll
+17-0llvm/test/Transforms/VectorCombine/AArch64/partial-reduce-crash.ll
+528-3345 files not shown
+543-37011 files

LLVM/project c888371clang-tools-extra/clangd CompileCommands.cpp

[clangd] Look for resource-dir relative to detected compiler path as a fallback (#203332)

If the standard resource directory (which is searched for relative to the clangd
executable) does not exist, look for one relative to the detected compiler as a
fallback. This handles some packaging schemes where clangd and clang are
installed in different prefixes and the resource directory is only located in the
latter.

Also print an error message to the log if the fallback didn't find an existing
directory either.
DeltaFile
+23-1clang-tools-extra/clangd/CompileCommands.cpp
+23-11 files

LLVM/project bae51e7llvm/lib/IR Instructions.cpp, llvm/test/Transforms/InstCombine alloca-big.ll

[IR] handle oversized constant alloca counts in getAllocationSize (#204540)

AllocaInst::getAllocationSize() unconditionally calls getZExtValue() for
array allocas, which asserts when the constant element count is wider
than 64 bits.

Use tryZExtValue() when reading the constant array size instead. If the
count cannot be represented in uint64_t, return std::nullopt rather than
asserting, matching the existing contract.

Fixes #203519
DeltaFile
+4-1llvm/lib/IR/Instructions.cpp
+1-0llvm/test/Transforms/InstCombine/alloca-big.ll
+5-12 files

LLVM/project b2c0c48llvm/lib/Transforms/InstCombine InstCombineAndOrXor.cpp, llvm/test/Transforms/InstCombine or.ll add.ll

[InstCombine] Fold or (ashr X, BW-1), zext (icmp ne|sgt X, 0) to scmp(X, 0) (#196828)

Recognize the bitwise signum encoding
  or (ashr X, BW-1), zext (icmp ne  X, 0) --> llvm.scmp(X, 0)
  or (ashr X, BW-1), zext (icmp sgt X, 0) --> llvm.scmp(X, 0)

Alive2: https://alive2.llvm.org/ce/z/UZ7a7Q
DeltaFile
+182-2llvm/test/Transforms/InstCombine/or.ll
+17-0llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
+3-11llvm/test/Transforms/InstCombine/add.ll
+6-6llvm/test/Transforms/InstCombine/and-or-icmps.ll
+208-194 files

OpenBSD/ports MbDQNWAlang/go Makefile, lang/go/patches patch-src_cmd_dist_test_go

   lang/go: disable experimental simd/archsimd tests on openbsd/amd64

   The experimental simd/archsimd code generates jump tables, even when they
   are explicitly disabled in the compiler. This is not compatible with CFI.

   Makes regress pass again.
VersionDeltaFile
1.4+9-9lang/go/patches/patch-src_cmd_dist_test_go
1.180+1-0lang/go/Makefile
+10-92 files

LLVM/project f6296fbllvm/lib/Transforms/InstCombine InstCombineCasts.cpp, llvm/test/Transforms/InstCombine zext.ll

[InstCombine] Fold zext(and/or/xor(trunc nuw x), y) -> and/or/xor(zext(y), x) (#204927)

proof: https://alive2.llvm.org/ce/z/ZORvJ6
DeltaFile
+104-0llvm/test/Transforms/InstCombine/zext.ll
+9-0llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+113-02 files

LLVM/project 2ec6f28llvm/lib/Transforms/InstCombine InstCombineCasts.cpp, llvm/test/Transforms/InstCombine set.ll

[InstCombine] Fold sext(and/or/xor(trunc nsw x), y) -> and/or/xor(sext(y), x) (#204928)

Proof: https://alive2.llvm.org/ce/z/ntVE_8
DeltaFile
+104-0llvm/test/Transforms/InstCombine/set.ll
+9-0llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+113-02 files

LLVM/project e26ff54llvm/lib/Transforms/InstCombine InstCombineCasts.cpp

[InstCombine] Remove fold with OneUse as there is fold without the check (NFC) (#204925)
DeltaFile
+0-5llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+0-51 files

FreeBSD/ports bee3d7cx11/mate-terminal Makefile

x11/mate-terminal: switch to GitHub release asset

Minor versions of 1.28.x are no longer published to the MATE mirror
and are only available on GitHub.
DeltaFile
+3-4x11/mate-terminal/Makefile
+3-41 files

LLVM/project 465c904llvm/lib/Target/X86 X86ISelLowering.cpp

[X86] combineX86ShufflesRecursively - delay widening shuffle inputs. NFC. (#204931)

Perform resolveTargetShuffleInputsAndMask earlier as widening shouldn't
merge any inputs (we canonicalize small shuffle inputs earlier).

We should be able to move the widenSubVector calls inside
combineX86ShuffleChain in a future commit, but this patch should be NFC.
DeltaFile
+14-14llvm/lib/Target/X86/X86ISelLowering.cpp
+14-141 files

NetBSD/pkgsrc BTBdg62doc pkgsrc.txt pkgsrc.html

   doc/pkgsrc.*: regen
VersionDeltaFile
1.392+429-377doc/pkgsrc.txt
1.394+424-372doc/pkgsrc.html
+853-7492 files

NetBSD/pkgsrc Mm1nMDTdoc/guide/files bulk.xml

   doc: add a section for pkgtools/bob to the guide

   Joint work by jperkin and myself.
VersionDeltaFile
1.37+53-7doc/guide/files/bulk.xml
+53-71 files

FreeNAS/freenas e6e04e9src/middlewared/middlewared/plugins support.py, src/middlewared/middlewared/plugins/alert runtime.py

Convert support plugin to typesafe pattern

## Context
The support plugin was an old-style dict-based `ConfigService`. This converts it to the typesafe pattern: a lean `GenericConfigService[SupportEntry]` service class delegating to a `ConfigServicePart`, with `generic = True`, `check_annotations=True` on every public method, and typed `call2` for same-process calls.

## Solution
- **Package split**: `plugins/support.py` becomes `plugins/support/` with `__init__.py` (lean service), `config.py` (`SupportModel` + `SupportConfigServicePart` holding `do_update`/`validate`), and `execute.py` (the `post` helper plus the `similar_issues`/`new_ticket`/`attach_ticket` logic as `ServiceContext`-typed functions).
- **API models**: decoupled `SupportAttachTicketArgs` from `@single_argument_args` into an explicit `SupportAttachTicket` inner model plus a plain wrapper (wire shape unchanged) so the method param can be annotated and field-accessed under `check_annotations`; exported every directly-imported model in `__all__`.
- **Registration**: registered the service in `main.py`'s `ServiceContainer` and added the plugin dir to `mypy.yml`.
- **Internal consumers**: `alert/source/proactive_support.py`, `alert/runtime.py`, and `truenas/tn.py` now use attribute access on the returned `SupportEntry` and typed `call2`/`context.call2` (constructing `SupportNewTicketEnterprise`) instead of dict access and string `middleware.call`.

The public wire shape is unchanged; live verification on the test VM confirmed read-only outputs, the update round-trip, the required-field validation path, and the ProactiveSupport alert consumer all behave identically to before.
DeltaFile
+0-354src/middlewared/middlewared/plugins/support.py
+239-0src/middlewared/middlewared/plugins/support/execute.py
+159-0src/middlewared/middlewared/plugins/support/__init__.py
+39-0src/middlewared/middlewared/plugins/support/config.py
+18-17src/middlewared/middlewared/plugins/alert/runtime.py
+15-12src/middlewared/middlewared/plugins/truenas/tn.py
+470-3834 files not shown
+491-39810 files

LLVM/project d186503clang/lib/AST/ByteCode Compiler.cpp

[clang][bytecode][NFC] Remove dead code (#204910)

Unions can't have base classes so this is never used.
DeltaFile
+0-3clang/lib/AST/ByteCode/Compiler.cpp
+0-31 files

FreeBSD/ports c33ffebdevel/avr-gdb Makefile distinfo, devel/avr-gdb/files patch-bfd-bfdio.c patch-bfd-elflink.c

devel/avr-gdb: upgrade to GDB 17.2

The old version was pretty outdated, and could not cope with
modern DWARF information.
DeltaFile
+9-4devel/avr-gdb/Makefile
+0-11devel/avr-gdb/files/patch-bfd-bfdio.c
+0-11devel/avr-gdb/files/patch-bfd-elflink.c
+4-4devel/avr-gdb/files/patch-bug13519
+3-2devel/avr-gdb/distinfo
+16-325 files

FreeBSD/doc de1af21documentation/content/en/books/handbook/containers _index.adoc

handbook/containers: Avoid single sentence paragraphs

Combine single sentence paragraphs together to form actual paragraphs.
No content changes.

Event:  BSDCan 2026
DeltaFile
+0-14documentation/content/en/books/handbook/containers/_index.adoc
+0-141 files

FreeNAS/freenas 024f970src/middlewared/middlewared/plugins/support execute.py __init__.py

Apply ruff formatting to new support package files

## Context
ruff's `format --diff` CI check only runs on git-added files and, with no quote-style configured, enforces its default (double quotes), so the newly added `support/` package needs reformatting once committed.

## Solution
Ran `ruff format` on the three new files in `plugins/support/`; pure style changes (quote style and call-argument wrapping), no logic changes.
DeltaFile
+73-66src/middlewared/middlewared/plugins/support/execute.py
+37-28src/middlewared/middlewared/plugins/support/__init__.py
+6-6src/middlewared/middlewared/plugins/support/config.py
+116-1003 files

OpenBSD/ports zdasABrwww/librewolf Makefile distinfo, www/librewolf/patches patch-lw_policies_json patch-gfx_wr_webrender_src_texture_cache_rs

   www/librewolf: update to 152.0.1-2, from MAINTAINER Leah Rowe
VersionDeltaFile
1.3+2-2www/librewolf/Makefile
1.3+2-2www/librewolf/distinfo
1.3+2-2www/librewolf/patches/patch-lw_policies_json
1.3+1-0www/librewolf/pkg/PLIST
1.2+0-0www/librewolf/patches/patch-gfx_wr_webrender_src_texture_cache_rs
+7-65 files

FreeBSD/src f879eb3lib/libc/db/hash hash.c, lib/libc/tests/db dbm_nextkey_test.c

libc/dbm: Differentiate between uninitialized and end-of-db cursors

Commit `3a686b851f8f` fixed a `dbm_nextkey` edge case when using
the function after reaching the end of the database, but it inadvertently
broke the following `R_NEXT` behaviour:
"If the cursor is not yet set, this is the same as the R_FIRST flag."

Fix this by adding a new cursor constant that allows us to differentiate
between an unset cursor and a cursor that overflowed.

Reported by:    ae
Fixes:  3a686b851f8f
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D57670
Reviewed by:    markj
DeltaFile
+33-0lib/libc/tests/db/dbm_nextkey_test.c
+8-4lib/libc/db/hash/hash.c
+41-42 files