Add unit tests of system.truenas_setattr and the statx ACL flags
test_zfs_setattr.py sets each attribute through system.truenas_setattr
and through chmod, chown, utimensat or ZFS_IOC_SETDOSFLAGS on twin
files, as the owner, other users, users an NFSv4 ACL grants write
attributes, write owner or write ACL, root and root without
CAP_LINUX_IMMUTABLE, on NFSv4 and POSIX datasets, and checks that both
give the same errno and result. It also covers the birth time, set-ID
bits, file capabilities, every malformed value, ACLs left as chmod
leaves them, and an idmapped mount, where owners map as chown maps
them and an ACE granting write attributes is matched through the
mount's idmap.
test_zfs_statx_aclflags.py checks that stx_zfsflags gives the trivial
bit and the ACL-wide flags the NFSv4 ACL gives, on files and folders,
and none on a POSIX dataset. It needs truenas_pyos with
ZFSFlags.ACL_PROTECTED, ACL_DEFAULTED and ACL_AUTO_INHERIT.
Both make their datasets under the dataset that holds /var, destroy
them afterwards, and need a ZFS with NAS-144888.
Backport hppa fixes from lang/gcc/8
- make __builtin_return_address() not try to read from text sections.
(backport from base)
- put switch() jump tables in .rodata in order not to read from text sections
Fixes from miod@, reminded by Brad, ok kirill@
py-brotlicffi: update to 1.2.1.0.
Limit Darwin file name change to Python>3.14.
1.2.1.0 (2026-10-21)
--------------------
- Upgraded libbrotli to v1.2.1, which remediates CVE-2026-111497, an
out-of-bounds write that permits remote code execution.
- Changed one-shot ``decompress()`` and streaming ``Decompressor.process()`` /
``Decompressor.decompress()`` to raise ``brotlicffi.error`` for trailing bytes
after a complete Brotli stream, including calls without an output limit.
Previously tolerated input is now rejected, and any output produced during
the failing call is discarded. This prevents infinite drain loops in
streaming consumers.
py-dateutil: update to 3.0.0.
Version 3.0.0 (2026-10-21)
==========================
**This is the last major version of** ``dateutil`` **that will support any
version of Python older than 3.11.** The next release will be the 4.x series,
which will support Python 3.11 and later. We may release fixes for serious bugs
in the 3.0.x series, but there are no plans for new features there.
The biggest change in this release is a rewrite of ``tz.tzfile``, which affects
nearly every user of ``dateutil.tz`` and changes the UTC offset of
nonexistent times (see below). ``dateutil`` also now depends on the ``tzdata``
package, and no longer ships its own time zone database.
Data updates
------------
[90 lines not shown]
[M68k] Use PC-relative EH pointer encodings under PIC (#235347)
The function `TargetLoweringObjectFileELF::initialize` has no `case`
branch for `m68k`, meaning the default absolute encoding is used for the
personality/lsda/type-info pointers: `DW_EH_PE_absptr`. IN a PIE or
shared lib, those pointers then need `R_68K_32` dynamic relocations in
`.eh_frame` and `.gcc_except_table` which are read-only, so a link with
the flag `-z text` fails - that flag is default for PIE. Error:
```
ld: read-only segment has dynamic relocations
```
This PR adds `m68k` to the existing `x86/ppc` case, selecting
`indirect/pcrel/sdata4` for the personality and `pcrel/sdata4` for
the LSDA (under PIC, and `absptr` otherwise). With the change, the
`.eh_frame` relocations for a PIC function with a personality and lsda
are `R_68K_PC32`, not `R_68K_32` as before. The new test checks both
relocation models.
[3 lines not shown]