NAS-143004 / 27.0.0-BETA.1 / Add private entitlements debug endpoint for debug bundles (by sonicaj) (#19609)
This commit adds changes to expose truenas.entitlements.debug_info, a
private method a debug bundle can call to see what an entitlement
decision was made from: the hardware facts, the raw license daemon
verdict that get_license() otherwise discards, the on-disk legacy
license as it actually is (a rejected or malformed blob currently reads
the same as no license at all) and every decision with the matrix column
it resolved to. Each section degrades to an error field rather than
raising, since the systems this is collected from are the ones whose
licensing is already misbehaving, and the legacy projection is an
allowlist so customer name and key never reach a bundle.
Original PR: https://github.com/truenas/middleware/pull/19598
Co-authored-by: Waqar Ahmed <waqarahmedjoyia at live.com>
[Support][FileSystem] Prefer `status` with `file_t` parameter. NFC. (#157581)
When searching the documentation for LLVM for `llvm::sys::fs::status`,
only the version with file descriptor can be found because the
documentation is built on the UNIX host and the file handle version is
defined out.
In reality, file handle version is more portable and should be displayed
instead. On UNIX, these two functions have the same underlying type,
thus it shouldn't matter which one is declared, and both versions are
still available on Windows for compatibility.
[clang][test] Make new absurdly_big_struct test more targeted (#219897)
The previous version of `y()` used `c2[i]`, which can't be evaluated at
compile-time.
The emitted diagnostic depends on something calling
`ASTContext::getASTRecordLayout()` for `b`, which currently happens in
the constant evaluator. If the evaluator decides to evaluate `c2[i]`
before calling `getASTRecordLayout()`, the test fails since the
diagnostic is never emitted.
Fix this by simply using `c2[0]` instead.
Add private entitlements debug endpoint for debug bundles
This commit adds changes to expose truenas.entitlements.debug_info, a private method a debug bundle can call to see what an entitlement decision was made from: the hardware facts, the raw license daemon verdict that get_license() otherwise discards, the on-disk legacy license as it actually is (a rejected or malformed blob currently reads the same as no license at all) and every decision with the matrix column it resolved to. Each section degrades to an error field rather than raising, since the systems this is collected from are the ones whose licensing is already misbehaving, and the legacy projection is an allowlist so customer name and key never reach a bundle.
[clang-tidy][docs] Rename readability check docs to Markdown [2/5] (#221528)
Tracking issue: #201242
See the [migration guide] for more information.
[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
This is the second part of the mechanical rename of the check
documentations in readability module.
The rewrite is provided by the next PR in this stack.
[Flang][Semantics] Diagnose missing MODULE prefix in submodule procedures (#197173)
Add a portability warning when a submodule procedure is missing the
MODULE prefix required by a MODULE PROCEDURE interface in its parent
module.
NAS-143184 / 27.0.0-BETA.1 / Rename the DIRECTORY_SERVICES entitlement to DIRECTORY_SERVICES_AUTH (by sonicaj) (#19654)
This commit adds changes to follow the LicenseFeature rename in
truenas_pylicensed, covering the entitlement matrix, the policy
register, display names, the per-feature message overrides, the legacy
injection set and the ds_auth gate. The unrelated directoryservices
namespace and the ds_auth field itself are deliberately untouched.
Worth flagging for whoever lands this: python3-truenas-pylicensed is
unversioned in debian/control, and because this is a rename rather than
an addition, both skew directions break at import time. New middleware
against the old package and old middleware against the new one each
raise AttributeError while importing middlewared.utils.entitlements,
which leaves middlewared unable to start.
Original PR: https://github.com/truenas/middleware/pull/19632
Co-authored-by: Waqar Ahmed <waqarahmedjoyia at live.com>
Rename the DIRECTORY_SERVICES entitlement to DIRECTORY_SERVICES_AUTH
This commit adds changes to follow the LicenseFeature rename in truenas_pylicensed, covering the entitlement matrix, the policy register, display names, the per-feature message overrides, the legacy injection set and the ds_auth gate. The unrelated directoryservices namespace and the ds_auth field itself are deliberately untouched.
Worth flagging for whoever lands this: python3-truenas-pylicensed is unversioned in debian/control, and because this is a rename rather than an addition, both skew directions break at import time. New middleware against the old package and old middleware against the new one each raise AttributeError while importing middlewared.utils.entitlements, which leaves middlewared unable to start.
NAS-142017 / 27.0.0-BETA.1 / Replace ad-hoc license predicates with a single entitlement engine (by sonicaj) (#19583)
## What this is
TrueNAS decides licensed behaviour in roughly a hundred places, each
with its own
hand-composed predicate — `system.is_enterprise`, `system.product_type`,
`system.feature_enabled`, chassis substring matches, and raw license
reads. They
disagree with each other, and several of them conflate questions that
are actually
independent. This PR adds changes to replace all of that with one pure
function.
## The model
The old predicates conflated three orthogonal axes. Un-conflating them
is the whole
point of the change:
[93 lines not shown]
[LLVM][AutoUpgrade] Support default args on undeclared multi-call upgrades (#216246)
When an `.ll` file contains multiple calls to an intrinsic without an explicit
declaration, only the first call is upgraded successfully, and the remaining
subsequent calls fail.
`LLParser` builds one temporary Function per call, so after the first
upgrade occupies the canonical name the later functions are uniquified
(eg. `llvm.foo.1`). The intrinsic ID was previously looked up using `F->getName()`,
which requires an exact name match. So, the uniquified names resolved to `not_intrinsic`,
causing the upgrade to return and the default arguments were not applied.
This patch fixes this issue by using the cached `F->getIntrinsicID()`,
which is set when the temporary function is created from the original name.
It also `rename(F)` before inserting the full declaration, so the temporary
function no longer occupies the canonical name.
---------
Signed-off-by: DharuniRAcharya <dharunira at nvidia.com>
[orc-rt] Add Session::attach for pre-mode ControllerAccesses. (#222227)
Allow clients to attach a session using a pre-constructed
ControllerAccess object. This allows clients to use non-trivial
construction methods (e.g. factories) to build ControllerAccess objects.
textproc/libcyaml: Update to 1.4.2
== v1.4.2 ==
Buildsystem:
- Add explicit shared and static library install targets.
General:
- Small code cleanups.
- Reverted to C89-compatible static assertion macro.
- Fixes build on quirky platforms.
- Rationalised GitHub actions.
- Fixed CI for MacOS.
No changes are required for client applications to upgrade.
== v1.4.1 ==
[30 lines not shown]