NAS-145200 / 27.0.0 / Replace the TrueSearch program with truesearchd (by anodos325) (#20195)
- The `truesearch` service runs two units, `truesearchd` and
`truesearch-indexer`. Samba uses `spotlight backend = truesearch`.
truesearchd handles client requests. truesearch-indexer does the actual
file indexing and fs watching.
- Middleware writes `/etc/truesearchd/truesearch.conf` while the index
dataset is mounted. A dataset gets one `[target]` row if it holds an SMB
share with Spotlight search on or a WebShare share with search on, or if
it is mounted beneath such a share. Time Machine shares, home shares and
private datasets shares are not indexed.
- Encrypted datasets are now indexed due to changes in default index
dataset encryption posture.
- `.system/truesearchd` replaces `.system/truesearch`. On a data pool,
it is encrypted with the pwenc secret as a raw key. Middleware does not
mount a copy that is not encrypted or that the secret does not unlock,
and TrueSearch then reports that it is not mounted. A move of the system
dataset does not copy it, and the indexes are built again. It has the
properties of the tiering dataset.
[14 lines not shown]
[Offload] Report no pending work for host plugin queues (#240927)
The host plugin runs every operation synchronously, but
hasPendingWorkImpl returned true unconditionally. As a result
OL_QUEUE_INFO_EMPTY was always false on the host device, and
olDestroyQueue parked every host queue on the context's outstanding list
until the context was destroyed.
Return false instead, so a host queue reports as empty and is released
when it is destroyed. All backends now report the real queue status, so
drop the "may be unconditionally false" caveat from the
OL_QUEUE_INFO_EMPTY documentation.
Assisted-by: Claude
NAS-145200 / 27.1.0 / Replace the TrueSearch program with truesearchd (by anodos325) (#20196)
- The `truesearch` service runs two units, `truesearchd` and
`truesearch-indexer`. Samba uses `spotlight backend = truesearch`.
truesearchd handles client requests. truesearch-indexer does the actual
file indexing and fs watching.
- Middleware writes `/etc/truesearchd/truesearch.conf` while the index
dataset is mounted. A dataset gets one `[target]` row if it holds an SMB
share with Spotlight search on or a WebShare share with search on, or if
it is mounted beneath such a share. Time Machine shares, home shares and
private datasets shares are not indexed.
- Encrypted datasets are now indexed due to changes in default index
dataset encryption posture.
- `.system/truesearchd` replaces `.system/truesearch`. On a data pool,
it is encrypted with the pwenc secret as a raw key. Middleware does not
mount a copy that is not encrypted or that the secret does not unlock,
and TrueSearch then reports that it is not mounted. A move of the system
dataset does not copy it, and the indexes are built again. It has the
properties of the tiering dataset.
[14 lines not shown]
[lldb] Show synthetic children in the return value of the thread description (#241323)
ValueObject::Dump without options uses synthetic children only for
synthetic value objects.
assisted by claude
[CIR][NFC] Separate shared metadata lowering from OpenCL conversions (#240990)
Extract function metadata dispatch and aggregation into
`LowerToLLVMMetadata`, including the maximum work-group size conversion
introduced in #227715. Keep OpenCL-specific conversions in
`LowerToLLVMOpenCLMetadata`.
Assisted-by: Codex / GPT-6
Base the NTS migration on 6d08137a3def and drop default NTS servers
NAS-145217 (#20199) added migration 6d08137a3def after b4fac2fc788a in
the 27.0 directory, and merge migration 5dfc6658deaa in 28.0. So
04a6293d595a now follows 6d08137a3def instead of b4fac2fc788a, and
merge migration 4ba342aeda4a joins it with 5dfc6658deaa instead of
3c7d1e9a5b20. Without this alembic would find two heads. 04a6293d595a
and 4ba342aeda4a are now dated 2026-11-12, after their parents, so
their file names and create dates follow the revision order.
04a6293d595a no longer adds time.cloudflare.com and ntppool1.time.nl
to systems still on the stock NTP servers. While any NTS server is
configured chronyd ignores every server without NTS, and the web UI
cannot show or set NTS yet: it would list the two as ordinary servers
and give no reason why a server added there goes unused. The defaults
can come back with the UI support. The migration still adds the
ntp_nts and require_nts columns and removes servers whose address is
not a single word.
[3 lines not shown]
[libc][docs] Add remaining C23 and POSIX docgen header catalogues (#241564)
Twenty-four C23 and POSIX headers currently lack docgen status
catalogues, while float.h and other freestanding headers in
CLANG_FREESTANDING_HEADERS short-circuit to implemented instead of
checking LLVM-libc's own macro and type headers. Purely compiler-owned
freestanding headers (such as stdarg.h, stdatomic.h, stddef.h, and
tgmath.h) live in Clang or GCC rather than libc, so docgen cannot
truthfully report per-symbol coverage for them.
Remove CLANG_FREESTANDING_HEADERS and provider overrides so float.h,
limits.h, stdckdint.h, and stdint.h evaluate directly against
libc/include/ (including typedefs in macro headers), note the
compiler-provided headers on libc/docs/headers/index.md, and add docgen
YAML catalogues for limits.h, stdckdint.h, stdint.h, and the 21
remaining POSIX headers.
Assisted-by: Automated tooling, human reviewed.
[lldb] Give tail call frames distinct, ordered StackIDs (#240665)
Synthesized tail call frames all had an invalid CFA, so the tail call
frames of one function shared a `StackID` and broke the order that
`StackFrameList::GetFrameWithStackID` relies on. On a stack that repeats
a tail call, `SBFrame` calls could resolve to the wrong frame, and
lookups fell back to a linear scan, making a full stack walk quadratic.
Give each tail call frame the CFA of the younger frame that replaced it,
plus a depth that orders the frames sharing that CFA. The borrowed CFA
only identifies the frame: `SBFrame::GetCFA` and `DW_OP_call_frame_cfa`
still treat it as having none.
[LoongArch][NFC] Replace manual v2i128 check with MVT::v2i128 (#241726)
Now that v2i128 is a legal MVT, the manual v2i128 check and the
associated stale comment are no longer needed. Compare against
MVT::v2i128 directly instead.
NAS-145217 / 27.0.0 / Fix snapshot task queries failing on a zero lifetime (by themylogin) (#20198)
The API accepted a lifetime of 0 for periodic snapshot tasks until
NAS-142610 added a minimum of 1 to the entry model. Rows saved with 0
before that change now fail validation on every pool.snapshottask.query
call, which breaks pool export and zettarepl. This migration raises
those rows to 1, which only keeps their snapshots longer.
Original PR: https://github.com/truenas/middleware/pull/20197
Co-authored-by: themylogin <themylogin at gmail.com>
[libc][test] Fix dangling CString paths in copy_file_range_test (#241787)
Fixes the `aarch64` / overlay failure in
`libc.test.src.unistd.copy_file_range_test` introduced by #240018.
### Root Cause
1. `libc_make_test_file_path(...)` returns an owning `CString`
(non-copyable, non-movable). Storing it into `const char *in_path` /
`out_path` in `SetUp()` destroyed the temporary `CString` immediately,
leaving dangling pointers for `open()` and `unlink()` and causing
`ENOENT` in `SetUp()` (cascading into `EBADF` in `CopyNoOffsets` and
`CopyWithOffsets`).
2. `LlvmLibcCopyFileRangeTest::SetUp()` and `TearDown()` overrode
`ErrnoCheckingTest::SetUp()` / `TearDown()` without invoking the base
class methods.
### Changes
- Initialize `in_path` and `out_path` directly as fixture members using
`decltype(libc_make_test_file_path(...))` so the `CString` objects stay
[8 lines not shown]
[flang] Fix incorrect reallocation for host-associated main-program coarrays #231233 (#233361)
This fix resolves the issue #231233 involving incorrect reallocation of
a coarray when it is accessed via host association in a nested
procedure.
---------
Co-authored-by: Dan Bonachea <dobonachea at lbl.gov>
[Hexagon] Add local VTCM frames for HLX objects (#241650)
Move local HLX objects to a separate VTCM frame, address them through
VSP, and allocate and release the frame with vallocframe and
vdeallocframe.
Co-authored-by: Yashas Andaluri <yandalur at qti.qualcomm.com>
[flang][Semantics] Adding check integer kind on STAT= specifier #230463 (#231103)
This PR adds a pedantic warning to check whether the specified STAT is
an integer of at least 16-bit because
flang currently silently accepts 8-bit integers to `STAT=`: and F2023
9.7.4 says:
> R946 _stat-variable_ is _scalar-int-variable_
>
> A stat-variable should have a decimal exponent range of at least four;
otherwise the
> processor-dependent error code might not be representable in the
variable.
[SPIRV] Keep source location on OpAsmCallINTEL
insertInlineAsmProcess builds OpAsmCallINTEL with a MachineIRBuilder
whose debug location is empty.
The call therefore had no location, so the NonSemantic
debug handler emitted no debug line information.
sysutils/libmbus: [NEW PORT] Meter-bus library and utility programs
The Meter-Bus is a standard for reading out meter data from
electricity meters, heat meters, gas meters, etc. The M-bus
standard deals with both the electrical signals on the M-Bus,
and the protocol and data format used in transmissions on
the M-Bus. The role of libmbus is to decode/encode M-bus
data, and to handle the communication with M-Bus devices.
WWW: https://github.com/rscada/libmbus/
PR: 298095
Co-authored by: alven@