KERNEL_LIST_LONG_ABOUT

Constant KERNEL_LIST_LONG_ABOUT 

Source
pub const KERNEL_LIST_LONG_ABOUT: &str = "(EOL) marks entries whose major.minor series is absent from kernel.org\'s current active releases. Suppressed when the active-release list cannot be fetched.\n\n--json emits one JSON object with three top-level fields:\n\n  current_ktstr_kconfig_hash   hex digest of the kconfig fragment the\n                               running binary was built with, for\n                               stale-entry detection.\n  active_prefixes_fetch_error  null on success; error string on\n                               active-series fetch failure. When\n                               non-null, every entry\'s `eol` is false\n                               regardless of actual support status \u{2014}\n                               check this field before trusting `eol`.\n  entries                      array of per-entry objects. Each\n                               element is either a VALID entry (full\n                               field set) or a CORRUPT entry\n                               (`key`, `path`, `error`,\n                               `error_kind`). `error` is the\n                               human-readable reason; `error_kind`\n                               the machine-readable classifier.\n                               Detect\n                               corruption by the presence of `error`.\n\nValid entry fields: key, path, version (nullable), source, arch,\nbuilt_at, ktstr_kconfig_hash (nullable), extra_kconfig_hash\n(nullable), kconfig_status, eol, config_hash (nullable),\nimage_name, image_path, has_vmlinux, vmlinux_stripped.\n\n  path             absolute path to the cache entry DIRECTORY.\n  image_path       absolute path to the boot image file INSIDE\n                   that directory. `path` points at the dir, not\n                   the image \u{2014} scripts that want the kernel\n                   artifact to pass to qemu/vm-loaders should\n                   read `image_path`, not join `path` with a\n                   hardcoded filename.\n  kconfig_status   one of \"matches\", \"stale\", \"untracked\"\n                   (Display form of cache::KconfigStatus).\n  source           internally-tagged on \"type\":\n                     {\"type\": \"tarball\"}\n                     {\"type\": \"git\",   \"git_hash\": ?, \"ref\": ?}\n                     {\"type\": \"local\", \"source_tree_path\": ?,\n                                       \"git_hash\": ?}\n                   Dispatch on \"type\" before reading variant\n                   fields.\n  eol              true iff the entry\'s major.minor series is absent\n                   from the active-prefix list. Meaningful only when\n                   active_prefixes_fetch_error is null. Also false\n                   whenever version is null (the missing-version\n                   short-circuit in `entry_is_eol`).\n  has_vmlinux      true iff the uncompressed vmlinux is cached\n                   alongside the compressed image (required for\n                   DWARF-driven probes).\n  vmlinux_stripped true iff the cached vmlinux came from a\n                   successful strip pass. false marks the\n                   raw-fallback path \u{2014} a larger on-disk payload\n                   indicating the strip pipeline errored on this\n                   kernel; the entry is still usable but the\n                   fallback is a signal to investigate. Meaningful\n                   only when has_vmlinux is true (false otherwise).\n  config_hash      CRC32 of the final merged .config; distinct\n                   from ktstr_kconfig_hash which covers only the\n                   ktstr fragment.\n  extra_kconfig_hash\n                   CRC32 of the user `--extra-kconfig` fragment\n                   (raw bytes, no canonicalization), or null when\n                   the entry was built without --extra-kconfig.\n                   The cache key suffix grows from `kc{baked}` to\n                   `kc{baked}-xkc{extra}` when extras are present,\n                   and this field stores the `xkc` segment so\n                   `kernel list` is self-describing for entries\n                   that carry user modifications.\n\nWhen --kernel is a range, the subcommand SWITCHES to range-preview\nmode and emits a structurally different JSON shape \u{2014} the cache\nis not walked at all, only kernel.org\'s releases.json is fetched\nto expand the inclusive range. The --json output is one object\nwith four top-level fields:\n\n  range     literal range string supplied to --kernel\n            (e.g. \"6.12..6.14\").\n  start     parsed start endpoint\n            (MAJOR.MINOR[.PATCH][-rcN]).\n  end       parsed end endpoint, same shape as start.\n  versions  array of resolved version strings inside\n            [start, end] inclusive, ascending by\n            (major, minor, patch, rc) tuple. Stable and\n            longterm releases only \u{2014} mainline / linux-next\n            are excluded by the moniker filter.\n\nRange-mode output never carries cache metadata\n(no current_ktstr_kconfig_hash, no entries) \u{2014} to inspect cached\nkernels for one of the resolved versions, run `kernel list`\nwithout --kernel. Consumers should dispatch on the presence of\nthe `range` key (range mode) versus `entries` key (list mode)\nto branch the parse.";
Expand description

long_about for kernel list --help. Embeds EOL_EXPLANATION verbatim (via eol_explanation_literal!) so the tag legend cannot drift between the post-table output and the help copy, then appends a plain-text rendering of the --json output schema so scripted consumers can discover the contract from the terminal without running cargo doc. The schema wording mirrors the Rust-doc schema on super::kernel_list; keeping both surfaces terse makes a drift obvious on review. A plain-text (not JSON/markdown) rendering is used because clap applies no JSON/markdown formatting pass, so the schema reads as plain text. Clap does apply terminal-width wrapping, so the embedded EOL sentence re-flows to the width of the host terminal; the schema block’s explicit \n line breaks survive wrapping and preserve the column-aligned field table.