SupportInfo XML Structure
This page documents the v1.0 XML schema used to define package support lifecycles, timelines, and
classifications for Linux distributions. The schema is independent of DNF and not specific to any single distribution.
You can consume it directly from any tool. The dnf supportinfo plugin is one such consumer.
-
Schema definition (XSD):
https://cdn.amazonlinux.com/al2023/core/supportinfo-1.0.xsd -
Support data (XML):
https://cdn.amazonlinux.com/al2023/core/AL2023-supportinfo-1.0.xml
To parse this XML directly, use the open-source amazon-linux-supportinfo
How the Plugin Uses This File
From this file, the plugin reports:
-
Which support level a package is at (these values populate the
--showfilter options) -
When lifecycle phases change (displayed in
--pkgoutput and the timeline) -
Patch priority and severity coverage for each support level
-
Where the package comes from (origin and classification)
Complete Minimal Example
This example shows the minimum structure with all required sections and one package:
<package_support schema_version="1.0" current_as="2025-08-21T22:41:55.575196"> <lifecycles> <lifecycle name="default_lc" display_name="AL2023 Standard Lifecycle" description="Standard support lifecycle for Amazon Linux 2023 packages"> <phase name="full_support" support_level="default" start_milestone="AL2023_GA" display_name="Full Support"/> <phase name="end_of_support" support_level="eos" start_milestone="AL2023_EOS" display_name="End of Support"/> </lifecycle> </lifecycles> <support_milestones> <milestone name="AL2023_GA" date="2023-03-15" display_name="AL2023 General Availability" description="Amazon Linux 2023 general availability date"/> <milestone name="AL2023_EOS" date="2029-06-30" display_name="AL2023 End of Support" description="End of all support for Amazon Linux 2023"/> </support_milestones> <support_levels> <support_level name="default" severities="Low,Medium,Important,Critical" description="Full security and bug fix support for all severities" display_name="Default Support" /> <support_level name="eos" severities="" description="End of support - no further updates" display_name="End of Support" /> </support_levels> <packages> <package name="curl" lifecycle="default_lc" origin="al2023_core" package_class="default"/> </packages> <package_classes> <package_class name="default"> <summary>Default class for Amazon Linux packages</summary> <text></text> </package_class> </package_classes> <package_origins> <package_origin name="al2023_core" repo_id="amazonlinux" dist="amzn2023" vendor="amazonlinux" display_name="Amazon Linux 2023 Core" description="Core Amazon Linux 2023 repository" /> </package_origins> <notes> <note name="eol_redis6">Upstream end-of-life for Redis 6 (redis6) is 2025-08-31</note> </notes> </package_support>
Element Reference
package_support (Root Element)
The root element that contains all support metadata.
| Attribute | Required | Description |
|---|---|---|
schema_version |
Yes | Schema format version (currently 1.0) |
current_as |
Yes | ISO timestamp when the support data was last generated |
<package_support schema_version="1.0" current_as="2025-08-21T22:41:55.575196">
The current_as timestamp appears in output to indicate data freshness.
lifecycle
Defines a sequence of phases that a package transitions through over time.
| Attribute | Required | Description |
|---|---|---|
name |
Yes | Unique identifier referenced by package@lifecycle |
note |
No | References a note@name for additional context |
display_name |
No | Customer-facing label |
description |
No | Human-readable description |
<lifecycle name="redis6_lc" note="eol_redis6" display_name="Redis 6 Lifecycle" description="Support lifecycle for Redis 6 packages"> <phase .../> </lifecycle>
The plugin walks the phases in order, finds the one currently active, and reports that phase's support level in output.
phase
Defines one stage within a lifecycle. Each phase continues until the next phase starts (or indefinitely if it is the last phase).
| Attribute | Required | Description |
|---|---|---|
name |
Yes | Phase identifier (unique within its lifecycle) |
support_level |
Yes | References a support_level@name |
start_date |
Conditional | Fixed ISO date (YYYY-MM-DD). Use this or
start_milestone |
start_milestone |
Conditional | References a milestone@name. Use this or
start_date |
display_name |
No | Customer-facing label |
Note
Specify exactly one of start_date or start_milestone, not both.
<phase name="limited_support" support_level="limited" start_milestone="AL2023_6months" display_name="Limited Support"/>
Each phase is active from its start date until the next phase begins. The last phase in a lifecycle remains active indefinitely.
milestone
Defines a reusable date marker that lifecycle phases reference.
| Attribute | Required | Description |
|---|---|---|
name |
Yes | Unique identifier referenced by phase@start_milestone |
date |
Yes | ISO date (YYYY-MM-DD) |
display_name |
No | Customer-facing label |
description |
No | Human-readable description |
<milestone name="AL2023_GA" date="2023-03-15" display_name="AL2023 General Availability" description="Amazon Linux 2023 general availability date"/>
Milestones let phases share dates. When a milestone date changes, every phase referencing it updates automatically.
support_level
Defines a support tier and the severities it covers. Each name becomes a valid
--show filter value.
| Attribute | Required | Description |
|---|---|---|
name |
Yes | Unique identifier. Used as the --show filter value |
severities |
Yes | Comma-separated severity levels covered (empty string = no patches) |
description |
Yes | Human-readable description shown in --list-filters output |
display_name |
No | Customer-facing label |
<support_level name="limited" severities="Important,Critical" description="Security fixes for Important and Critical severities only" display_name="Limited Support" />
Running dnf supportinfo --show limited lists all packages currently at this support level. The
--list-filters command displays each level's name and description.
package
Maps an RPM package name to its lifecycle, origin, and class.
| Attribute | Required | Description |
|---|---|---|
name |
Yes | RPM package name |
lifecycle |
Yes | References a lifecycle@name |
origin |
Yes | References a package_origin@name |
package_class |
No | References a package_class@name |
<package name="curl" lifecycle="default_lc" origin="al2023_core" package_class="default"/>
Note
A package can appear multiple times with different origin values (for example, the same package
in core and SPAL repos). The combination of name + origin must be unique.
Each installed RPM is matched against this list to determine its lifecycle and current support status.
package_class
Categorizes packages by their role in the system. The class name and summary appear in plugin output.
| Attribute/Element | Required | Description |
|---|---|---|
@name |
Yes | Unique identifier referenced by package@package_class |
summary (child) |
Yes | Short description of the category |
text (child) |
Yes | Extended description. The element must be present but may be empty |
<package_class name="os_dependency"> <summary>Packages supported only as dependencies of the operating system</summary> <text></text> </package_class>
The class name appears in output to indicate a package's role on the system.
package_origin
Identifies the repository source of a package. The origin value appears in
dnf supportinfo --pkg output.
| Attribute | Required | Description |
|---|---|---|
name |
Yes | Unique identifier referenced by package@origin |
repo_id |
Yes | DNF repository ID |
dist |
Yes | Distribution identifier |
vendor |
Yes | Package vendor |
signing_key |
No | GPG signing key identifier |
display_name |
No | Customer-facing label |
description |
No | Human-readable description |
<package_origin name="al2023_core" repo_id="amazonlinux" dist="amzn2023" vendor="amazonlinux" display_name="Amazon Linux 2023 Core" description="Core Amazon Linux 2023 repository" />
The display_name appears as the "Origin" field in --pkg output.
note
Provides freeform text that a lifecycle can reference for additional context.
| Attribute | Required | Description |
|---|---|---|
name |
Yes | Unique identifier referenced by lifecycle@note |
The element's text content contains the note message.
<note name="eol_redis6">Upstream end-of-life for Redis 6 (redis6) is 2025-08-31</note>
When a package's lifecycle references a note, the note text appears as "Package Note" in --pkg
output.
Referential Integrity
The schema links elements together through name references. Each source attribute must match the
name of an existing target element:
| Source attribute | References |
|---|---|
package@lifecycle |
lifecycle@name |
package@origin |
package_origin@name |
package@package_class |
package_class@name |
phase@support_level |
support_level@name |
phase@start_milestone |
milestone@name |
lifecycle@note |
note@name |
In addition, the combination of package@name and package@origin must be unique across
all package elements.