Fix HTML validation errors in docs - articles title section
article: render subtitle as <p> instead of <h3>
The subtitle is part of the title block, not a section heading.
Rendering it as <h3> right after <h1> broke W3C validation and
caused screen readers to announce it as a level-3 heading.
Move the visual styling from the <h3> tag to a `.subtitle` class
in documentation.scss to keep the appearance unchanged.
Reviewed by: carlavilla
Approved by: carlavilla
Differential Revision: https://reviews.freebsd.org/D60058
PR: 297509
ocaml: linker uses $PTHREAD_CFLAGS
When building outside of pkgsrc, Autoconf's AX_PTHREAD returns
$PTHREAD_CFLAGS="-pthread" and and $PTHREAD_LIBS="-lpthread".
However, for some reason, inside pkgsrc returns
$PTHREAD_CFLAGS="-pthread" and and $PTHREAD_LIBS="".
Therefore, linker loses pthread library, resulting in an error.
By the way, AX_PTHREAD assumes to not only compiler with cflags,
but also link with them. So, as a test, I tried adding
'Config.native_cflags' to linker, it working.
https://www.gnu.org/software/autoconf-archive/ax_pthread.html
Complete zfs.resource.create and shim pool.dataset.create over it
## Problem
zfs.resource.create could leave stray ancestors behind on input libzfs refuses late, did not mount the ancestors it created, and had no share presets, while pool.dataset.create and most internal callers still ran their own create and update paths.
## Solution
- **Validation**: every late libzfs refusal and pool's safety rules (locked or readonly parent, existing mount path, encryption ancestry, ACL pairs, block sizes) are checked before any write, and index properties are typed with their native values.
- **Writes**: ancestors are mounted as they are created; a dataset whose key cannot be recorded is removed, one that cannot be mounted is kept and reported; ADDED is sent for created, non-internal datasets.
- **share_type**: smb/multiprotocol/nfs/apps presets fill unset properties and seed the ACL as pool did; zfs.resource.share_type_choices lists them.
- **Callers**: internal pool.dataset users move to zfs.resource, and pool.dataset.create becomes a translation shim over zfs.resource.create; force_size is ignored.
ig4(4): fix attach of ACPI-enumerated LPSS controllers
Intel LPSS I2C controllers enumerated through ACPI rather than PCI never
attach on Haswell and Broadwell, so every device behind those buses is
lost. On a Dell XPS 13 9343 that hides the I2C HID touchpad and leaves
only the PS/2 fallback, which the firmware does not restore after S3.
Three causes, all on the ACPI path:
Firmware may leave an LPSS function in D3, where its registers read as
all-ones and set_controller() fails with "controller error during
attach-1". Run _PS0 before mapping them. The PCI path does not need
this, which is why the gap went unnoticed.
INT33C2, INT33C3, INT3432 and INT3433 are Lynx Point-LP and Wildcat
Point-LP, which ig4_pci.c already classifies as IG4_HASWELL; the ACPI
path called everything but APMC0D0F an Atom SoC.
The functional clock stays gated until bit 0 of IG4_REG_CLK_PARMS is
[14 lines not shown]
evdev: map ChromeOS "Vivaldi" top-row action keys
Chromebook keyboards driven by the ChromeOS EC emit the top-row action
keys as scancode set 1 codes 0xE0 0x11 - 0xE0 0x1E (see the codeset 1
comments on the SCANCODE_* enum in chrome-ec
include/keyboard_8042_sharedlib.h). The e0 half of the
evdev_scancode2key() translation table leaves eleven of those at NONE,
so on FreeBSD those keys emit no evdev event at all and userspace
remappers such as keyd have nothing to bind to:
e0 11 fullscreen KEY_ZOOM
e0 12 overview KEY_SCALE
e0 13 screenshot KEY_SYSRQ
e0 14 brightness down KEY_BRIGHTNESSDOWN
e0 15 brightness up KEY_BRIGHTNESSUP
e0 16 privacy screen toggle KEY_PRIVACY_SCREEN_TOGGLE
e0 17 kbd backlight down KEY_KBDILLUMDOWN
e0 18 kbd backlight up KEY_KBDILLUMUP
e0 1a play/pause KEY_PLAYPAUSE
[15 lines not shown]
ig4(4): fix attach of ACPI-enumerated LPSS controllers
Intel LPSS I2C controllers enumerated through ACPI rather than PCI never
attach on Haswell and Broadwell, so every device behind those buses is
lost. On a Dell XPS 13 9343 that hides the I2C HID touchpad and leaves
only the PS/2 fallback, which the firmware does not restore after S3.
Three causes, all on the ACPI path:
Firmware may leave an LPSS function in D3, where its registers read as
all-ones and set_controller() fails with "controller error during
attach-1". Run _PS0 before mapping them. The PCI path does not need
this, which is why the gap went unnoticed.
INT33C2, INT33C3, INT3432 and INT3433 are Lynx Point-LP and Wildcat
Point-LP, which ig4_pci.c already classifies as IG4_HASWELL; the ACPI
path called everything but APMC0D0F an Atom SoC.
The functional clock stays gated until bit 0 of IG4_REG_CLK_PARMS is
[14 lines not shown]
[DAG] Scalarise trivial splat operations (#226257)
This fixes an issue reported on #224255, where a single active lane
masked store is converted to a v1f16 extract_subvector, which becomes a
v1f16 splat, which fails to scalarize. Add the necessary trivial
scalarisation of the splat by using the f16 input operand.
(I was originally going to fix this by generating a scalar f16 extract
directly (which would have the benefit of treating f16 as legal), but
that seems to cause a regression in 2 x86 tests).
[clang][CIR] Add tests for SVE ADDV intrinsics (#225648)
This adds CIR tests for `svaddv` (plain SVE) intrinsics following the
task description in
[223963](https://github.com/llvm/llvm-project/issues/223963).
Moves and adapts `sve-intrinsics/acle_sve_addv.c` to `sve/addv.c`.
Drop the S3 service's status code from two docstrings
A reader of a dataset property check in middleware has no use for the
code the S3 service answers a client with. Both now say what the check
is for instead.
Add bucket recovery APIs
There are various situations in which we can have orphaned
buckets. Examples include:
* bucket is deleted and admin wants to reinstate.
* the NAS is disaster recovery instance and needs to activate
buckets after switching datasets to read-write.
This is facilited by inserting a .truenas_s3/config_backup.json
file inside each bucket (daemon-owned path) and restoring the
DB row / S3 config with some user-provided overrides if required.
Two new API endpoints are added:
* sharing.s3.recoverable_buckets lists mounted datasets containing
orphaned buckets.
* sharing.s3.recover basically takes a list of datasets and rebuilds
bucket configuration from backups for them.
Fix mypy errors in the S3 bucket recovery
`bucket_dataset_properties` goes back to explicit keywords, which mypy
can check against each field's type, and the mapping a recover checks
against is read off it rather than the other way round.
The other three are a narrowing the render loop had left implicit, an
untyped NSS lookup, and OSError.errno being optional.
NAS-144067 / 26.0.0 / Fix LDAP directory service migration for multiple servers (by anodos325) (#19880)
`ldap_hostname` is comma-separated, so a configuration with more than
one LDAP server migrated into a single malformed `server_urls` entry
that SSSD discards entirely, leaving no usable server. Also normalize
the case of legacy values copied into the new table, which left
`ldap_schema` lowercased and failing validation against
Literal['RFC2307', 'RFC2307BIS'].
Supplementary migration is not being added because anyone who
encountered this issue during migration would have already cleared the
problematic LDAP config and set the correct parameters. LDAP is not
functional in a degraded state after failed migration, and migration
failure is currently user-serviceable. This commit primarily is to fix
users who are migrating from 25.04 to 26.
Original PR: https://github.com/truenas/middleware/pull/19876
Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
Avoid sleeping while recording SEM_UNDO information
sys_semop(), by way of semundo_adjust() and semu_alloc(), could sleep in
pool_get(PR_WAITOK) after it had already applied the semaphore operations.
Another process can remove the set with IPC_RMID while we sleep; we then write
sempid and sem_otime through the freed semid_ds_kern and sem_base, and record
an undo entry for a set semundo_clear() has already swept, which panics
semexit() when the process exits.
This was introduced as a fallback in rev 1.14, after moving the
structures from a static array to a pool made the allocation able to
fail at all. semop(2) documents ENOSPC, so drop the fallback with the
extra complexity to work around the sleep.
semundo_adjust() must then stop freeing an emptied structure in the middle of
an operation: sys_semop()'s rollback can need it again, and re-creating it
there is allowed to fail, which is a panic. Keep it until done2. That also
takes a second sleeping pool_put() out of the done: region.
[8 lines not shown]
Avoid sleeping while recording SEM_UNDO information
sys_semop(), by way of semundo_adjust() and semu_alloc(), could sleep in
pool_get(PR_WAITOK) after it had already applied the semaphore operations.
Another process can remove the set with IPC_RMID while we sleep; we then write
sempid and sem_otime through the freed semid_ds_kern and sem_base, and record
an undo entry for a set semundo_clear() has already swept, which panics
semexit() when the process exits.
This was introduced as a fallback in rev 1.14, after moving the
structures from a static array to a pool made the allocation able to
fail at all. semop(2) documents ENOSPC, so drop the fallback with the
extra complexity to work around the sleep.
semundo_adjust() must then stop freeing an emptied structure in the middle of
an operation: sys_semop()'s rollback can need it again, and re-creating it
there is allowed to fail, which is a panic. Keep it until done2. That also
takes a second sleeping pool_put() out of the done: region.
[8 lines not shown]
Fix LDAP directory service migration for multiple servers
`ldap_hostname` is comma-separated, so a configuration with more than one LDAP
server migrated into a single malformed `server_urls` entry that SSSD discards
entirely, leaving no usable server. Also normalize the case of legacy values
copied into the new table, which left `ldap_schema` lowercased and failing
validation against Literal['RFC2307', 'RFC2307BIS'].
Supplementary migration is not being added because anyone who
encountered this issue during migration would have already cleared the
problematic LDAP config and set the correct parameters. LDAP is not
functional in a degraded state after failed migration, and migration
failure is currently user-serviceable. This commit primarily is to fix
users who are migrating from 25.04 to 26.
(cherry picked from commit 04508648a8b6ad119fc2acaabcabd4687f9210b4)
In wg_bind() close IPv4 socket while failed to bind IPv6 socket with
automatic port selection.
from mvs@; From Acts1631.
this is errata/7.9/028_wgbind.patch.sig