[ELF,test] Modernize --retain-symbols-file tests (#209062)
Switch to llvm-readelf, compact FileCheck directives, and
split-file-style naming. Prepares for a --retain-symbols-file behavior
change.
shells/nu_plugin_query: Declare libcurl shlib dependency
The binary links libcurl.so.4 (via the curl-sys crate, which uses
pkg-config to pick up the system libcurl by default), but the port
does not declare the runtime dependency.
Detected by poudriere stage-qa:
Warning: nu_plugin_query-0.112.2_1 will be rebuilt as it misses
libcurl.so.4 which no dependency provides. It is likely (silently)
failing testport/stage-qa.
Add LIB_DEPENDS=libcurl.so:ftp/curl and bump PORTREVISION. Also
reorder PLIST_FILES ahead of OPENSSLINC/OPENSSLLIB to satisfy
portclippy.
Reviewed by: yuri
Differential Revision: https://reviews.freebsd.org/D56854
Convert boot plugin to typesafe pattern
## Problem
The boot service was old-style dict-based code spread across three files (boot.py, boot_/format.py, boot_/boot_loader.py) that all declared the same BootService, so the framework silently merged them into a CompoundService. None of it was type-checked end to end, and every in-process consumer reached it through untyped string middleware.call('boot.*').
## Solution
- Consolidate everything into a single plugins/boot/ package using the port pattern: a lean BootService in __init__.py that delegates to plain, fully type-annotated module functions in disks.py/format.py/pool_ops.py, with @api_method(check_annotations=True) public methods and @private stubs. boot.get_state now returns a BootGetState model; internal callers use a dict state helper so nothing breaks on attribute-vs-key access.
- Register boot in main.py's ServiceContainer and have it own boot.environment as a sub-service, replacing BootServicesContainer.
- Expose the boot-pool name/disks cache through accessor functions instead of a module global. This also fixes a latent bug where libvirt/cdrom.py imported the global at module load (before setup runs), bound it to None, and so never filtered the boot pool out of CDROM path validation.
- Convert every same-process boot.* string call to typed call2/call_sync2 across sysdataset, zfs_events, disk, failover, and the zpool/audit/tunable/update/system_advanced plugins, the alert sources, and the cron/fstab makos, keeping each site's sync/async flavour.
- Keep the private update_initramfs/format models in the plugin (check_model_module requires private-method models to live there, not in the api package) and import them lazily from consumers, otherwise pulling boot/__init__ into the early service-init chain deadlocks on a partially-initialised middlewared.service.
- Add plugins/boot/ to mypy.yml.
[SLP] Fix miscompile from truncating signed icmp constant
getActiveBits() ignores sign, so a positive constant needing the
narrower type's top bit was truncated to a negative value. Use
getSignificantBits() for signed comparisons.
Fixes #209010
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/209061
[SCEV,GVN] Add additional ptrtoaddr tests (NFC) (#209049)
Extend test coverage with files with mixied ptrtoaddr/ptrtoint, as well
as wide pointers.
Extra test coverage for
https://github.com/llvm/llvm-project/pull/180244.
[VPlan] Handle AtomicRMW/AtomicCmpXchg/Fence in outer loop creation. (#209031)
Teach VPInstruction::getNumOperandsForOpcode about AtomicRMW,
AtomicCmpXchg and Fence, so VPlan construction over an outer loop that
still contains these operations does not crash before later legality
rejects the loop.
Fixes crashes in the added tests.
Convert boot plugin to typesafe pattern
## Problem
The boot service was old-style dict-based code spread across three files (boot.py, boot_/format.py, boot_/boot_loader.py) that all declared the same BootService, so the framework silently merged them into a CompoundService. None of it was type-checked end to end, and every in-process consumer reached it through untyped string middleware.call('boot.*').
## Solution
- Consolidate everything into a single plugins/boot/ package using the port pattern: a lean BootService in __init__.py that delegates to plain, fully type-annotated module functions in disks.py/format.py/pool_ops.py, with @api_method(check_annotations=True) public methods and @private stubs. boot.get_state now returns a BootGetState model; internal callers use a dict state helper so nothing breaks on attribute-vs-key access.
- Register boot in main.py's ServiceContainer and have it own boot.environment as a sub-service, replacing BootServicesContainer.
- Expose the boot-pool name/disks cache through accessor functions instead of a module global. This also fixes a latent bug where libvirt/cdrom.py imported the global at module load (before setup runs), bound it to None, and so never filtered the boot pool out of CDROM path validation.
- Convert every same-process boot.* string call to typed call2/call_sync2 across sysdataset, zfs_events, disk, failover, and the zpool/audit/tunable/update/system_advanced plugins, the alert sources, and the cron/fstab makos, keeping each site's sync/async flavour.
- Keep the private update_initramfs/format models in the plugin (check_model_module requires private-method models to live there, not in the api package) and import them lazily from consumers, otherwise pulling boot/__init__ into the early service-init chain deadlocks on a partially-initialised middlewared.service.
- Add plugins/boot/ to mypy.yml.
Support 8-bit PIO if the front-end indicates that it's necessary:
- In wdc_drvprobe(), if neither ATAC_CAP_DATA16 nor ATAC_CAP_DATA32
is set in the controller capabilities, then attempt to enable 8-bit
PIO on the drive. If that command fails, ignore the drive.
- In wdc_datain_pio(), if we're doing 8-bit PIO, check for ATA_DRIVE_NOSTREAM
and simulate a NOSTREAM 16-bit PIO. This is necessary because we
treat the IDENTIFY command as "special" for historical (and almost
certainly bad) reasons.
- wdc_dataout_pio() gets the same NOSTREAM shenanigans for 8-bit PIO,
although I would be surprised if it is ever requested.
[LAA] Bail out of dependence analysis when distance exceeds 64 bits. (#209052)
isDependent extracts the dependence distance into 64 bit integers.
Bail out conservatively when the constant distance or the signed minimum
distance needs more than 64 bits.
Redact app.image.pull registry credentials in job history and logs
## Problem
The `auth_config` username/password accepted by `app.image.pull` were typed as plain `str`, so the secret scrubber never masked them. Any registry credentials supplied for a private image pull landed in cleartext in `core.get_jobs` arguments (which get bundled into support debugs) and in `middlewared.log`.
## Solution
Wrapped `username`/`password` in `Secret[str]` in the current and 26.0 API models, matching what `app.registry` already does, and unwrapped them with `.get_secret_value()` in the pull plugin so the real values still reach the registry. Job arguments and logs now show `********`.