www/py-recaptcha: Deprecate
Python 2 code for the reCAPTCHA v1 API, which was shut down.
While here, fix portlint warnings.
Set the EXPIRATION_DATE to the beginning of next month. Since the API
has been shut down, I don't expect anyone to care though.
PR: 299951
Submit usage statistics once a day and gather space cheaply
## Problem
Usage statistics were submitted at a random time after every middleware start, so reboots, restarts and failovers could send them more than once a day.
Gathering also walked every dataset and zvol on every pool and read space properties for each one, when only counts, root dataset space, zvol `used` and the `used` of backed-up datasets were needed. The per-pool entries only had `capacity`, so used and free space couldn't be told apart, and `data_without_backup_size` summed `used` over every dataset, counting nested data once per level.
## Solution
- **Submit at most once every 24 hours.** The time of the last successful submission is kept in keyvalue, `usage.start` only submits once 24 hours have passed since then, and the next run is scheduled for 24 hours after it. When nothing is saved yet the clock starts from now, so nothing is sent for 24 hours after an upgrade or a first install. On HA, a run that falls due while the node isn't master waits another 24 hours. `usage.start` is started on `system.ready` rather than from setup, because plugin setup runs before pools are imported at boot and a run due then would gather without pools and record that as a successful submission.
- **Report used and available space for each pool.** `gather_pools` queries `zpool.query_impl` for the pools in `storage.volume` and reports `capacity`, `used` and `available` from the pool's `usable`, `used` and `available` properties. `capacity` therefore changes meaning, from root dataset used + available to pool `usable`, and none of these match `zfs list` because of slop space and special/dedup vdev accounting. dRAID vdev types are normalised to `draid`.
- **Measure data without backup against the space actually used.** `data_without_backup_size` is now the sum of root dataset `used` minus the backed-up size, clamped at 0 since a backed-up dataset and its child are both counted.
- **Gather without reading properties of every dataset.** Datasets and zvols are counted with a fast libzfs iteration in a private `zfs.resource.count_impl`, so the cost is one simple ioctl per dataset, one full lookup per zvol, one query per pool root and one query per backed-up dataset. Restricted runs, with usage collection off, get cheaper too. A backup source that can't be queried is logged and skipped rather than dropping all the backup stats.
- **Test the counts.** An api2 test checks that a dataset with a child and a zvol move the dataset and zvol counts and the zvol total size.
Report failover steps in vrrp_master progress
This commit adds changes to report the current failover step in the vrrp_master job's progress extra field so TrueNAS Connect can show users what a failover is doing. The existing progress descriptions are left untouched since the webUI and failover.status depend on them.
py-anyio: updated to 4.16.0
4.16.0
*New features*
- Added ``BlockingPortal.call_async()`` for asynchronously calling into an event loop
with optional abandonment on cancellation
- Added SOCK_SEQPACKET support to ``connect_unix()`` and ``create_unix_listener()``
*Other changes*
- Changed UDP sockets on the asyncio backend to make ``send()`` wait until the
datagram has been passed to the operating system
*Bug fixes*
- Fixed documentation implying that ``use_uvloop=True`` falls back to the standard
event loop when uvloop (winloop on Windows) is not installed, and showed how to
[100 lines not shown]
RuntimeLibcalls: Add signatures for half and bfloat conversion libcalls
Fix missing type signatures for compiler-rt FP conversion functions.
__gnu_h2f_ieee and __gnu_f2h_ieee are special cases which take and
return the integer representations instead.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
cargo-nextest: updated to 0.9.151
0.9.151
Fixed
With test groups and threads-required, a test waiting for a slot in its group is now started as soon as enough threads are free. Previously, if the threads were freed by a test outside that group, the waiting test could be delayed. If no other test in its group was still running, the run could end with the test not being run.
Fixed a panic when reusing builds (--archive-file or --binaries-metadata) for a custom target provided by rustc --print=cfg.
[SPARC] Support missing inline asm constraints (#235776)
Clang frontend accepts J, K, L, M, N, and O, but the backend did not
handle them. Inline assembly using them failed with "invalid operand for
inline asm constraint".
Assisted-by: Claude
grpc py-grpcio*: updated to 1.85.1
1.85.1
Python
Fixes Denial of service in Health Watch RPC
Fixes Memory leak in AsyncIO client-streaming calls with interceptors
Core
host/:authority handling in the HPACK parser
CodeGen: Handle uses in unreachable blocks in LiveIntervals
Previously LiveIntervals had the unenforced assumption that the
function does not contain any unreachable blocks. A register which had
a definition somewhere but also a use in an unreachable block would
hit a "Use not jointly dominated by defs" assertion.
Avoiding no-unreachable-blocks as a hard requirement avoids assertions
in some pass configuration edge cases. In particular when the
MachinePipeliner is enabled in an optimized pipeline there could still
be unreachable blocks in an optnone function which would hit the
assert. Not handling unreachable blocks was also a large problem for
llvm-reduce's MIR support and was one of the main obstacles to landing
a basic block reduction.
Give a value live into an unreachable block a phi-def at the start of
the block, using the dominator tree to identify unreachable blocks.
ConnectedVNInfoEqClasses::Classify joins a component made only of
phi-defs in unreachable blocks with a component that has a real def;
[6 lines not shown]