From Fedora Project Wiki

Let's Label Our Variants!


Start using the VARIANT and VARIANT_ID fields in /usr/lib/os-release (and therefore the /etc/os-release symlink) for Spins, Labs and the base container image rather than just the main Fedora Editions.


  • Release notes owner:

Current status

Detailed Description

Right now, we use the VARIANT field (and machine-readable VARIANT_ID) in /usr/lib/os-release) only for the main Fedora Editions (and Fedora Cloud Base, because of its history as an edition previously). This means we can't tell the difference between a KDE desktop spin, a container image, or just a generic netinstall constructed into a custom system unlike any of our various flavors. Let's start using it widely.

Benefit to Fedora

In combination with UUID counting, this will provide us with a much, much better picture of real-world usage of the various things we produce. We'll be able to tell what's really popular, and use that to better optimize our time and other resources.


  • Proposal owners: Update the fedora-release package with subpackages for the various non-edition outputs. The "convert-to-edition" script may also be extended to handle non-editions, but this is not a required part of this change proposal.
  • Other developers: Maintainers of spins and labs will need to add the appropriate fedora-release-… subpackage to the appropriate kickstart file or comps group.

  • Release engineering: #7499 Release Engineering owns the fedora-release package.

  • List of deliverables: Workstation and Server deliverables already contain this, and so are not affected. The KDE Plasma Desktop Spin will be changed. There is no overall change to the list of deliverables itself.
  • Policies and guidelines: There was a previous decision to only do this for Editions. This change would update that. We would also update the Spins documentation to add this as a new step in that pricess.
  • Trademark approval: not needed for this Change

Not in Scope

The existing fedora-release-server and fedora-release-workstation subpackages contain presets specific to that edition. Right now, non-edition deliverables don't have a mechanism for alternate presets, and this would be a step towards providing that. Whether we want to do that is out of scope for this proposal.

Upgrade/compatibility impact


How To Test

1. Install an artifact other than Workstation, Server, Cloud, or Atomic. (Suggested test cases: KDE and the container image). 2. cat /usr/lib/os-release 3. Look for appropriate setting for VARIANT 4. Run hostnamectl status 5. Look at Operating System for the human readable variant description in parenthesis, like "Fedora 29 (KDE Plasma Desktop)"

User Experience

Generally minimal, but users may notice variant information displayed by software which reads /usr/lib/os-release or /etc/os-release (for example, in the Grub boot menu).



Contingency Plan

Two possibilities:

1. Status quo. We just go on as we were. 2. Partial implementation: we may get this done only for certain spins in the F29 timeframe. That's fine — no need to back out anything which does get done.


No particular documentation is needed, except for in the spins process.

Release Notes

The standard operating system identification file, /usr/lib/os-release, now reflects your choice of Spin or Lab and can be used to identify Fedora's container image.