public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/fedora-release] f45: Rework edition-handling
@ 2026-08-10  9:34 Stephen Gallagher
  0 siblings, 0 replies; only message in thread
From: Stephen Gallagher @ 2026-08-10  9:34 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/fedora-release
            Branch : f45
            Commit : 617b1bed348d92cba04443f8cce1486639a114f0
            Author : Stephen Gallagher <sgallagh@redhat.com>
            Date   : 2018-11-02T14:38:47-04:00
            Stats  : +330/-542 in 2 file(s)
            URL    : https://src.fedoraproject.org/rpms/fedora-release/c/617b1bed348d92cba04443f8cce1486639a114f0?branch=f45

            Log:
            Rework edition-handling

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>

---
diff --git a/convert-to-edition.lua b/convert-to-edition.lua
deleted file mode 100644
index 0ad7b09..0000000
--- a/convert-to-edition.lua
+++ /dev/null
@@ -1,205 +0,0 @@
--- This is intended to be run as an RPM scriptlet.
--- Keep this file in sync with the convert-to-edition
--- shell script
-
-local VARIANT_FILE = "/usr/lib/variant"
-
--- Read in /usr/lib/variant and determine the edition
-local function read_variant()
-  local variant
-  local f = io.open(VARIANT_FILE, "r")
-  if f ~= nil then
-    while true do
-      local line = f:read()
-      if line == nil then
-        break
-      end
-      local m = line:match("^VARIANT_ID=([^\n]+)")
-      if m ~= nil then
-        variant = m
-      end
-    end
-    f:close()
-  end
-  return variant
-end
-
--- Atomically replace a file with new contents
-local function writefile(path, data)
-  local tmp = path .. ".convert-to-edition"
-  local f = io.open(tmp, "w+")
-  if f == nil then
-    return
-  end
-  f:write(data)
-  f:close()
-  if not os.rename(tmp, path) then
-    os.remove(tmp)
-  end
-end
-
--- Forcibly replace a symlink
-local function symlink(from, to)
-  os.remove(to)
-  assert(posix.symlink(from, to))
-end
-
--- Run a subroutine in a child process
-local function execute(...)
-  local pid = posix.fork()
-  if pid == 0 then
-    posix.exec(...)
-    posix.exit(1)
-  elseif pid ~= -1 then
-    local status = posix.wait(pid)
-    if status ~= 0 then
-      local program = ...
-      error(program .. " exited with status " .. status)
-    end
-  end
-end
-
--- Remove preset files for other editions
--- This should never be necessary, but it's best to be safe
-local function clear_presets()
-  local path = "/usr/lib/systemd/system-preset"
-  for file in posix.files(path) do
-    if file:match("^80%-.*%.preset$") then
-      os.remove(path .. "/" .. file)
-    end
-  end
-end
-
-
--- Get a list of presets that need to be enabled or disabled
--- as part of the installation of this edition
-local function read_presets(path)
-  local result = {}
-  local f = assert(io.open(path))
-  if f ~= nil then
-    while true do
-      local line = f:read()
-      if line == nil then
-        break
-      end
-      local cmd, arg = line:match("^([^ \t]+)[ \t]+([^\n \t]+)")
-      if cmd == "enable" or cmd == "disable" then
-        result[#result + 1] = arg
-      end
-    end
-    f:close()
-  end
-  return result
-end
-
-local function set_variant(variant)
-  writefile(VARIANT_FILE, "VARIANT_ID=" .. variant .. "\n")
-end
-
-local function set_release(release)
-  symlink("./os.release.d/os-release-" .. release, "/usr/lib/os-release")
-end
-
-local function set_edition_swidtag(release)
-  symlink("/usr/lib/os.release.d/Fedora-" .. release .. ".swidtag", "%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag")
-end
-
-local function unset_edition_swidtag()
-  os.remove("%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag")
-end
-
--- release: the VARIANT_ID for os-release
--- presets: whether this edition has extra presets beyond the
---          defaults to enable or disable
-local variants = {
-  atomichost = {release = "atomichost", presets = false},
-  cloud = {release = "cloud", presets = false},
-  cinnamon = {release = "cinnamon", presets = false},
-  container = {release = "container", presets = false},
-  coreos = {release = "coreos", presets = false},
-  iot = {release = "iot", presets = true},
-  kde = {release = "kde", presets = false},
-  matecompiz = {release = "matecompiz", presets = false},
-  nonproduct = {release = "fedora", presets = false},
-  server = {release = "server", presets = true},
-  silverblue = {release = "silverblue", presets = false},
-  soas = {release = "soas", presets = false},
-  workstation = {release = "workstation", presets = true},
-  xfce = {release = "xfce", presets = false},
-}
-
--- Call out to systemctl to enable or disable presets
-local function set_presets(edition, apply_presets)
-  if variants[edition].presets then
-    local target = "/usr/lib/systemd/system-preset/80-" .. edition .. ".preset"
-    symlink("../../os.release.d/presets/80-" .. edition .. ".preset", target)
-
-    if apply_presets then
-      local presets = read_presets(target)
-      local systemctl = "/usr/bin/systemctl"
-      if posix.access(systemctl, "x") then
-        --fork off a systemctl call
-        local pid = assert(posix.fork())
-        if pid == 0 then
-          -- Child
-          posix.exec(systemctl, "preset", "-q", table.unpack(presets))
-          -- In case exec() fails
-          os.exit(17)
-        else
-          -- RPM
-          assert(posix.wait(pid))
-        end
-      end
-    end
-  end
-end
-
-local function convert_to_edition(edition, apply_presets)
-  local variant = variants[edition]
-  if variant == nil then
-    error("undefined edition: " .. edition)
-  end
-  set_release(variant.release)
-
-  -- Symlink the correct edition .swidtag for anything but nonproduct
-  if edition == "nonproduct" then
-    unset_edition_swidtag()
-  else
-    set_edition_swidtag(variant.release)
-  end
-  clear_presets()
-
-  set_presets(edition, apply_presets)
-end
-
-local function install_edition(edition)
-  -- Create the variant file if it does not already exist. This needs
-  -- to be done on both installation and upgrade, to ensure that we
-  -- upgrade from F23 and earlier properly.
-  if not posix.access(VARIANT_FILE, "f") then
-    set_variant(edition)
-  end
-  if read_variant() == edition then
-    -- (On initial installation only), fix up after %%systemd_post
-    -- in packages possibly installed before our preset file was
-    -- added
-    -- On upgrades, do not enable or disable presets to avoid
-    -- surprising the user
-    local initial_install = arg[2] == 1
-    convert_to_edition(edition, initial_install)
-  end
-end
-
-local function uninstall_edition(edition)
-  -- If we are uninstalling, we need to reset the variant file and
-  -- force the os-release file back to os-release-fedora.  We do this
-  -- in %%preun so that we don't have any time where the os-release
-  -- symlink is dangling (since in %%postun, the os-release-$EDITION
-  -- file will have already been removed)
-  if arg[2] == 0 then
-    if read_variant() == edition then
-      set_variant("nonproduct")
-      convert_to_edition("nonproduct", false)
-    end
-  end
-end

diff --git a/fedora-release.spec b/fedora-release.spec
index 7b8845a..5659ed1 100644
--- a/fedora-release.spec
+++ b/fedora-release.spec
@@ -14,13 +14,12 @@
 Summary:        Fedora release files
 Name:           fedora-release
 Version:        30
-Release:        0.11
+Release:        0.12
 License:        MIT
 URL:            https://fedoraproject.org/
 
 Source1:        LICENSE
 Source2:        Fedora-Legal-README.txt
-Source4:        convert-to-edition.lua
 
 Source10:       85-display-manager.preset
 Source11:       90-default.preset
@@ -34,14 +33,19 @@ Source18:       80-iot.preset
 Source19:       distro-template.swidtag
 Source20:       distro-edition-template.swidtag
 
-Obsoletes:      redhat-release
-Obsoletes:      convert-to-edition < 30-0.7
-Provides:       redhat-release
+BuildArch:      noarch
+
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+
+# We need to Provides: and Conflicts: system release here and in each
+# of the fedora-release-$VARIANT subpackages to ensure that only one
+# may be installed on the system at a time.
+Conflicts:      system-release
 Provides:       system-release
 Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
 
-Requires:       fedora-repos(%{version})
-BuildArch:      noarch
 BuildRequires:  redhat-rpm-config > 121-1
 
 %description
@@ -49,22 +53,52 @@ Fedora release files such as various /etc/ files that define the release
 and systemd preset files that determine which services are enabled by default.
 # See https://fedoraproject.org/wiki/Packaging:DefaultServices for details.
 
+
+%package common
+Summary: Fedora release files
+
+Requires:   fedora-release-variant = %{version}-%{release}
+Suggests:   fedora-release
+
+Obsoletes:  redhat-release
+Provides:   redhat-release
+Obsoletes:  fedora-release < 30-0.12
+
+Obsoletes:  convert-to-edition < 30-0.7
+Requires:   fedora-repos(%{version})
+
+%description common
+Release files common to all Editions and Spins of Fedora
+
+
 %package atomichost
 Summary:        Base package for Fedora Atomic-specific default configurations
-Provides:       system-release-atomichost
-Provides:       system-release-atomichost(%{version})
-Provides:       system-release-product
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .atomichost
+Conflicts:      system-release
+Provides:       system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
+
 
 %description atomichost
 Provides a base package for Fedora Atomic Host-specific configuration files to
 depend on.
 
+
 %package cinnamon
 Summary:        Base package for Fedora Cinnamon-specific default configurations
-Provides:       system-release-cinnamon
-Provides:       system-release-cinnamon(%{version})
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .cinnamon
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
+
 
 %description cinnamon
 Provides a base package for Fedora Cinnamon-specific configuration files to
@@ -73,73 +107,116 @@ depend on as well as Cinnamon system defaults.
 
 %package cloud
 Summary:        Base package for Fedora Cloud-specific default configurations
-Provides:       system-release-cloud
-Provides:       system-release-cloud(%{version})
-Provides:       system-release-product
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .cloud
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
+
 
 %description cloud
 Provides a base package for Fedora Cloud-specific configuration files to
 depend on.
 
+
 %package container
 Summary:        Base package for Fedora container specific default configurations
-Provides:       system-release-container
-Provides:       system-release-container(%{version})
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .container
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
+
 
 %description container
 Provides a base package for Fedora container specific configuration files to
 depend on as well as container system defaults.
 
+
 %package coreos
 Summary:        Base package for Fedora CoreOS-specific default configurations
-Provides:       system-release-coreos
-Provides:       system-release-coreos(%{version})
-Provides:       system-release-product
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .coreos
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
+
 
 %description coreos
 Provides a base package for Fedora CoreOS Host-specific configuration files to
 depend.
 
+
 %package iot
 Summary:        Base package for Fedora IoT specific default configurations
-Provides:       system-release-iot
-Provides:       system-release-iot(%{version})
-Provides:       system-release-product
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .iot
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
+
 
 %description iot
 Provides a base package for Fedora IoT specific configuration files to
 depend on as well as IoT system defaults.
 
+
 %package kde
 Summary:        Base package for Fedora KDE Plasma-specific default configurations
-Provides:       system-release-kde
-Provides:       system-release-kde(%{version})
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .kde
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
+
 
 %description kde
 Provides a base package for Fedora KDE Plasma-specific configuration files to
 depend on as well as KDE Plasma system defaults.
 
+
 %package matecompiz
 Summary:        Base package for Fedora MATE-Compiz-specific default configurations
-Provides:       system-release-matecompiz
-Provides:       system-release-matecompiz(%{version})
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .matecompiz
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
+
 
 %description matecompiz
 Provides a base package for Fedora MATE-compiz-specific configuration files to
 depend on as well as MATE-Compiz system defaults.
 
+
 %package server
 Summary:        Base package for Fedora Server-specific default configurations
-Provides:       system-release-server
-Provides:       system-release-server(%{version})
-Provides:       system-release-product
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .server
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
 Requires:       systemd
 Requires:       cockpit-bridge
 Requires:       cockpit-networkmanager
@@ -150,15 +227,23 @@ Requires:       openssh-server
 
 Requires(post):	systemd
 
+
 %description server
 Provides a base package for Fedora Server-specific configuration files to
 depend on.
 
+
 %package silverblue
 Summary:        Base package for Fedora Silverblue-specific default configurations
-Provides:       system-release-silverblue
-Provides:       system-release-silverblue(%{version})
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .silverblue
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
+
 
 %description silverblue
 Provides a base package for Fedora Silverblue-specific configuration files to
@@ -167,34 +252,54 @@ depend on as well as Silverblue system defaults.
 
 %package soas
 Summary:        Base package for Fedora Sugar on a Stick-specific default configurations
-Provides:       system-release-soas
-Provides:       system-release-soas(%{version})
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .soas
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
+
 
 %description soas
 Provides a base package for Fedora Sugar on a Stick-specific configuration files to
 depend on as well as SoaS system defaults.
 
+
 %package workstation
 Summary:        Base package for Fedora Workstation-specific default configurations
-Provides:       system-release-workstation
-Provides:       system-release-workstation(%{version})
+
+RemovePathPostfixes: .workstation
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
 Provides:       system-release-product
-Requires:       fedora-release = %{version}-%{release}
 # needed for captive portal support
 Requires:       NetworkManager-config-connectivity-fedora
 Requires(post): /usr/bin/glib-compile-schemas
 Requires(postun): /usr/bin/glib-compile-schemas
 
+
 %description workstation
 Provides a base package for Fedora Workstation-specific configuration files to
 depend on.
 
+
 %package xfce
 Summary:        Base package for Fedora Xfce specific default configurations
-Provides:       system-release-xfce
-Provides:       system-release-xfce(%{version})
-Requires:       fedora-release = %{version}-%{release}
+
+RemovePathPostfixes: .xfce
+Conflicts:      system-release
+Provides:       fedora-release = %{version}-%{release}
+Provides:       fedora-release-variant = %{version}-%{release}
+Provides:       system-release
+Provides:       system-release(%{version})
+Requires:       fedora-release-common = %{version}-%{release}
+
 
 %description xfce
 Provides a base package for Fedora Xfce specific configuration files to
@@ -207,17 +312,19 @@ sed -i 's|@@VERSION@@|%{dist_version}|g' %{SOURCE2}
 %build
 
 %install
-install -d %{buildroot}/etc
-echo "Fedora release %{version} (%{release_name})" > %{buildroot}/etc/fedora-release
-echo "cpe:/o:fedoraproject:fedora:%{version}" > %{buildroot}/etc/system-release-cpe
+install -d %{buildroot}%{_prefix}/lib
+echo "Fedora release %{version} (%{release_name})" > %{buildroot}%{_prefix}/lib/fedora-release
+echo "cpe:/o:fedoraproject:fedora:%{version}" > %{buildroot}%{_prefix}/lib/system-release-cpe
 
 # Symlink the -release files
-ln -s fedora-release %{buildroot}/etc/redhat-release
-ln -s fedora-release %{buildroot}/etc/system-release
+install -d %{buildroot}%{_sysconfdir}
+ln -s ../usr/lib/fedora-release %{buildroot}%{_sysconfdir}/fedora-release
+ln -s ../usr/lib/system-release-cpe %{buildroot}%{_sysconfdir}/system-release-cpe
+ln -s fedora-release %{buildroot}%{_sysconfdir}/redhat-release
+ln -s fedora-release %{buildroot}%{_sysconfdir}/system-release
 
 # Create the common os-release file
-install -d %{buildroot}/usr/lib/os.release.d/
-cat << EOF >>%{buildroot}/usr/lib/os.release.d/os-release-fedora
+cat << EOF >>%{buildroot}%{_prefix}/lib/os-release
 NAME=Fedora
 VERSION="%{dist_version} (%{release_name})"
 ID=fedora
@@ -238,127 +345,127 @@ PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
 EOF
 
 # Create the common /etc/issue
-echo "\S" > %{buildroot}/usr/lib/issue
-echo "Kernel \r on an \m (\l)" >> %{buildroot}/usr/lib/issue
-echo >> %{buildroot}/usr/lib/issue
-ln -s ../usr/lib/issue %{buildroot}/etc/issue
+echo "\S" > %{buildroot}%{_prefix}/lib/issue
+echo "Kernel \r on an \m (\l)" >> %{buildroot}%{_prefix}/lib/issue
+echo >> %{buildroot}%{_prefix}/lib/issue
+ln -s ../usr/lib/issue %{buildroot}%{_sysconfdir}/issue
 
 # Create /etc/issue.net
-echo "\S" > %{buildroot}/usr/lib/issue.net
-echo "Kernel \r on an \m (\l)" >> %{buildroot}/usr/lib/issue.net
-ln -s ../usr/lib/issue.net %{buildroot}/etc/issue.net
+echo "\S" > %{buildroot}%{_prefix}/lib/issue.net
+echo "Kernel \r on an \m (\l)" >> %{buildroot}%{_prefix}/lib/issue.net
+ln -s ../usr/lib/issue.net %{buildroot}%{_sysconfdir}/issue.net
+
+mkdir -p %{buildroot}%{_swidtagdir}
 
 # Create os-release files for the different editions
 
 # Atomic Host - https://bugzilla.redhat.com/show_bug.cgi?id=1200122
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-atomichost
-echo "VARIANT=\"Atomic Host\"" >> %{buildroot}/usr/lib/os.release.d/os-release-atomichost
-echo "VARIANT_ID=atomic.host" >> %{buildroot}/usr/lib/os.release.d/os-release-atomichost
-sed -i -e "s|(%{release_name})|(Atomic Host)|g" %{buildroot}/usr/lib/os.release.d/os-release-atomichost
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Atomic/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-atomichost.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.atomichost
+echo "VARIANT=\"Atomic Host\"" >> %{buildroot}%{_prefix}/lib/os-release.atomichost
+echo "VARIANT_ID=atomic.host" >> %{buildroot}%{_prefix}/lib/os-release.atomichost
+sed -i -e "s|(%{release_name})|(Atomic Host)|g" %{buildroot}%{_prefix}/lib/os-release.atomichost
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Atomic/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.atomichost
 
 # Cinnamon
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-cinnamon
-echo "VARIANT=\"Cinnamon\"" >> %{buildroot}/usr/lib/os.release.d/os-release-cinnamon
-echo "VARIANT_ID=cinnamon" >> %{buildroot}/usr/lib/os.release.d/os-release-cinnamon
-sed -i -e "s|(%{release_name})|(Cinnamon)|g" %{buildroot}/usr/lib/os.release.d/os-release-cinnamon
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Cinnamon/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-cinnamon.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.cinnamon
+echo "VARIANT=\"Cinnamon\"" >> %{buildroot}%{_prefix}/lib/os-release.cinnamon
+echo "VARIANT_ID=cinnamon" >> %{buildroot}%{_prefix}/lib/os-release.cinnamon
+sed -i -e "s|(%{release_name})|(Cinnamon)|g" %{buildroot}%{_prefix}/lib/os-release.cinnamon
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Cinnamon/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.cinnamon
 
 # Cloud
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-cloud
-echo "VARIANT=\"Cloud Edition\"" >> %{buildroot}/usr/lib/os.release.d/os-release-cloud
-echo "VARIANT_ID=cloud" >> %{buildroot}/usr/lib/os.release.d/os-release-cloud
-sed -i -e "s|(%{release_name})|(Cloud Edition)|g" %{buildroot}/usr/lib/os.release.d/os-release-cloud
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Cloud/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-cloud.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.cloud
+echo "VARIANT=\"Cloud Edition\"" >> %{buildroot}%{_prefix}/lib/os-release.cloud
+echo "VARIANT_ID=cloud" >> %{buildroot}%{_prefix}/lib/os-release.cloud
+sed -i -e "s|(%{release_name})|(Cloud Edition)|g" %{buildroot}%{_prefix}/lib/os-release.cloud
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Cloud/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.cloud
 
 # Container
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-container
-echo "VARIANT=\"Container Image\"" >> %{buildroot}/usr/lib/os.release.d/os-release-container
-echo "VARIANT_ID=container" >> %{buildroot}/usr/lib/os.release.d/os-release-container
-sed -i -e "s|(%{release_name})|(Container Image)|g" %{buildroot}/usr/lib/os.release.d/os-release-container
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Container/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-container.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.container
+echo "VARIANT=\"Container Image\"" >> %{buildroot}%{_prefix}/lib/os-release.container
+echo "VARIANT_ID=container" >> %{buildroot}%{_prefix}/lib/os-release.container
+sed -i -e "s|(%{release_name})|(Container Image)|g" %{buildroot}%{_prefix}/lib/os-release.container
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Container/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.container
 
 # CoreOS
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-coreos
-echo "VARIANT=\"CoreOS\"" >> %{buildroot}/usr/lib/os.release.d/os-release-coreos
-echo "VARIANT_ID=coreos" >> %{buildroot}/usr/lib/os.release.d/os-release-coreos
-sed -i -e "s|(%{release_name})|(CoreOS)|g" %{buildroot}/usr/lib/os.release.d/os-release-coreos
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/CoreOS/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-coreos.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.coreos
+echo "VARIANT=\"CoreOS\"" >> %{buildroot}%{_prefix}/lib/os-release.coreos
+echo "VARIANT_ID=coreos" >> %{buildroot}%{_prefix}/lib/os-release.coreos
+sed -i -e "s|(%{release_name})|(CoreOS)|g" %{buildroot}%{_prefix}/lib/os-release.coreos
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/CoreOS/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.coreos
 
 # IoT
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-iot
-echo "VARIANT=\"IoT Edition\"" >> %{buildroot}/usr/lib/os.release.d/os-release-iot
-echo "VARIANT_ID=iot" >> %{buildroot}/usr/lib/os.release.d/os-release-iot
-sed -i -e "s|(%{release_name})|(IoT Edition)|g" %{buildroot}/usr/lib/os.release.d/os-release-iot
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/IoT/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-iot.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.iot
+echo "VARIANT=\"IoT Edition\"" >> %{buildroot}%{_prefix}/lib/os-release.iot
+echo "VARIANT_ID=iot" >> %{buildroot}%{_prefix}/lib/os-release.iot
+sed -i -e "s|(%{release_name})|(IoT Edition)|g" %{buildroot}%{_prefix}/lib/os-release.iot
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/IoT/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.iot
 
 # KDE Plasma
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-kde
-echo "VARIANT=\"KDE Plasma\"" >> %{buildroot}/usr/lib/os.release.d/os-release-kde
-echo "VARIANT_ID=kde" >> %{buildroot}/usr/lib/os.release.d/os-release-kde
-sed -i -e "s|(%{release_name})|(KDE Plasma)|g" %{buildroot}/usr/lib/os.release.d/os-release-kde
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/KDE/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-kde.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.kde
+echo "VARIANT=\"KDE Plasma\"" >> %{buildroot}%{_prefix}/lib/os-release.kde
+echo "VARIANT_ID=kde" >> %{buildroot}%{_prefix}/lib/os-release.kde
+sed -i -e "s|(%{release_name})|(KDE Plasma)|g" %{buildroot}%{_prefix}/lib/os-release.kde
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/KDE/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.kde
 
 # MATE-Compiz
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-matecompiz
-echo "VARIANT=\"MATE-Compiz\"" >> %{buildroot}/usr/lib/os.release.d/os-release-matecompiz
-echo "VARIANT_ID=matecompiz" >> %{buildroot}/usr/lib/os.release.d/os-release-matecompiz
-sed -i -e "s|(%{release_name})|(MATE-Compiz)|g" %{buildroot}/usr/lib/os.release.d/os-release-matecompiz
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/MATE-Compiz/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-matecompiz.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.matecompiz
+echo "VARIANT=\"MATE-Compiz\"" >> %{buildroot}%{_prefix}/lib/os-release.matecompiz
+echo "VARIANT_ID=matecompiz" >> %{buildroot}%{_prefix}/lib/os-release.matecompiz
+sed -i -e "s|(%{release_name})|(MATE-Compiz)|g" %{buildroot}%{_prefix}/lib/os-release.matecompiz
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/MATE-Compiz/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.matecompiz
 
 # Server
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-server
-echo "VARIANT=\"Server Edition\"" >> %{buildroot}/usr/lib/os.release.d/os-release-server
-echo "VARIANT_ID=server" >> %{buildroot}/usr/lib/os.release.d/os-release-server
-sed -i -e "s|(%{release_name})|(Server Edition)|g" %{buildroot}/usr/lib/os.release.d/os-release-server
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Server/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-server.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.server
+echo "VARIANT=\"Server Edition\"" >> %{buildroot}%{_prefix}/lib/os-release.server
+echo "VARIANT_ID=server" >> %{buildroot}%{_prefix}/lib/os-release.server
+sed -i -e "s|(%{release_name})|(Server Edition)|g" %{buildroot}%{_prefix}/lib/os-release.server
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Server/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.server
 
 # Silverblue
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-silverblue
-echo "VARIANT=\"Silverblue\"" >> %{buildroot}/usr/lib/os.release.d/os-release-silverblue
-echo "VARIANT_ID=silverblue" >> %{buildroot}/usr/lib/os.release.d/os-release-silverblue
-sed -i -e "s|(%{release_name})|(Silverblue)|g" %{buildroot}/usr/lib/os.release.d/os-release-silverblue
-sed -i -e 's|DOCUMENTATION_URL=.*|DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora-silverblue/"|' %{buildroot}/usr/lib/os.release.d/os-release-silverblue
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Silverblue/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-silverblue.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.silverblue
+echo "VARIANT=\"Silverblue\"" >> %{buildroot}%{_prefix}/lib/os-release.silverblue
+echo "VARIANT_ID=silverblue" >> %{buildroot}%{_prefix}/lib/os-release.silverblue
+sed -i -e "s|(%{release_name})|(Silverblue)|g" %{buildroot}%{_prefix}/lib/os-release.silverblue
+sed -i -e 's|DOCUMENTATION_URL=.*|DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora-silverblue/"|' %{buildroot}%{_prefix}/lib/os-release.silverblue
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Silverblue/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.silverblue
 
 # Sugar on a Stick
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-soas
-echo "VARIANT=\"Sugar on a Stick\"" >> %{buildroot}/usr/lib/os.release.d/os-release-soas
-echo "VARIANT_ID=soas" >> %{buildroot}/usr/lib/os.release.d/os-release-soas
-sed -i -e "s|(%{release_name})|(Sugar on a Stick)|g" %{buildroot}/usr/lib/os.release.d/os-release-soas
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Sugar/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-soas.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.soas
+echo "VARIANT=\"Sugar on a Stick\"" >> %{buildroot}%{_prefix}/lib/os-release.soas
+echo "VARIANT_ID=soas" >> %{buildroot}%{_prefix}/lib/os-release.soas
+sed -i -e "s|(%{release_name})|(Sugar on a Stick)|g" %{buildroot}%{_prefix}/lib/os-release.soas
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Sugar/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.soas
 
 # Workstation
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-workstation
-echo "VARIANT=\"Workstation Edition\"" >> %{buildroot}/usr/lib/os.release.d/os-release-workstation
-echo "VARIANT_ID=workstation" >> %{buildroot}/usr/lib/os.release.d/os-release-workstation
-sed -i -e "s|(%{release_name})|(Workstation Edition)|g" %{buildroot}/usr/lib/os.release.d/os-release-workstation
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Workstation/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-workstation.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.workstation
+echo "VARIANT=\"Workstation Edition\"" >> %{buildroot}%{_prefix}/lib/os-release.workstation
+echo "VARIANT_ID=workstation" >> %{buildroot}%{_prefix}/lib/os-release.workstation
+sed -i -e "s|(%{release_name})|(Workstation Edition)|g" %{buildroot}%{_prefix}/lib/os-release.workstation
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Workstation/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.workstation
 
 # Xfce
-cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \
-      %{buildroot}/usr/lib/os.release.d/os-release-xfce
-echo "VARIANT=\"Xfce\"" >> %{buildroot}/usr/lib/os.release.d/os-release-xfce
-echo "VARIANT_ID=xfce" >> %{buildroot}/usr/lib/os.release.d/os-release-xfce
-sed -i -e "s|(%{release_name})|(Xfce)|g" %{buildroot}/usr/lib/os.release.d/os-release-xfce
-sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Xfce/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}/usr/lib/os.release.d/Fedora-xfce.swidtag
+cp -p %{buildroot}%{_prefix}/lib/os-release \
+      %{buildroot}%{_prefix}/lib/os-release.xfce
+echo "VARIANT=\"Xfce\"" >> %{buildroot}%{_prefix}/lib/os-release.xfce
+echo "VARIANT_ID=xfce" >> %{buildroot}%{_prefix}/lib/os-release.xfce
+sed -i -e "s|(%{release_name})|(Xfce)|g" %{buildroot}%{_prefix}/lib/os-release.xfce
+sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/Xfce/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.xfce
 
 # Create the symlink for /etc/os-release
-# We don't create the /usr/lib/os-release symlink until %%post
-# so that we can ensure that the right one is referenced.
-ln -s ../usr/lib/os-release %{buildroot}/etc/os-release
+ln -s ../usr/lib/os-release %{buildroot}%{_sysconfdir}/os-release
 
 # Set up the dist tag macros
 install -d -m 755 %{buildroot}%{_rpmconfigdir}/macros.d
@@ -371,23 +478,24 @@ cat >> %{buildroot}%{_rpmconfigdir}/macros.d/macros.dist << EOF
 EOF
 
 # Install licenses
-install -d %{buildroot}%{_datadir}/licenses/%{name}/
-install -pm 0644 %{SOURCE1} %{buildroot}%{_datadir}/licenses/%{name}/LICENSE
-install -pm 0644 %{SOURCE2} %{buildroot}%{_datadir}/licenses/%{name}/Fedora-Legal-README.txt
+mkdir -p licenses
+install -pm 0644 %{SOURCE1} licenses/LICENSE
+install -pm 0644 %{SOURCE2} licenses/Fedora-Legal-README.txt
 
 # Default system wide
 install -Dm0644 %{SOURCE10} -t %{buildroot}%{_prefix}/lib/systemd/system-preset/
 install -Dm0644 %{SOURCE11} -t %{buildroot}%{_prefix}/lib/systemd/system-preset/
-install -Dm0644 %{SOURCE12} -t %{buildroot}/usr/lib/systemd/user-preset/
+install -Dm0644 %{SOURCE12} -t %{buildroot}%{_prefix}/lib/systemd/user-preset/
 install -Dm0644 %{SOURCE13} -t %{buildroot}%{_prefix}/lib/systemd/system-preset/
 
 # Fedora IoT
-install -Dm0644 %{SOURCE18} -t %{buildroot}%{_prefix}/lib/os.release.d/presets/
+install -Dm0644 %{SOURCE18} -t %{buildroot}%{_prefix}/lib/systemd/system-preset/
 
 # Fedora Server
-install -Dm0644 %{SOURCE14} -t %{buildroot}%{_prefix}/lib/os.release.d/presets/
+install -Dm0644 %{SOURCE14} -t %{buildroot}%{_prefix}/lib/systemd/system-preset/
+
 # Fedora Workstation
-install -Dm0644 %{SOURCE15} -t %{buildroot}%{_prefix}/lib/os.release.d/presets/
+install -Dm0644 %{SOURCE15} -t %{buildroot}%{_prefix}/lib/systemd/system-preset/
 
 # Override the list of enabled gnome-shell extensions for Workstation
 install -Dm0644 %{SOURCE16} -t %{buildroot}%{_datadir}/glib-2.0/schemas/
@@ -396,165 +504,34 @@ install -Dm0644 %{SOURCE17} -t %{buildroot}%{_datadir}/polkit-1/rules.d/
 # Create distro-level SWID tag file
 install -d %{buildroot}%{_swidtagdir}
 sed -e "s#\$version#%{bug_version}#g" -e 's/<!--.*-->//;/^$/d' %{SOURCE19} > %{buildroot}%{_swidtagdir}/org.fedoraproject.Fedora-%{bug_version}.swidtag
-install -d %{buildroot}/etc/swid/swidtags.d
-ln -s %{_swidtagdir} %{buildroot}/etc/swid/swidtags.d/fedoraproject.org
-
-%post -p <lua>
-%include %{SOURCE4}
--- On initial installation, we'll at least temporarily put the non-product
--- symlinks in place. It will be overridden by fedora-release-$EDITION
--- %%post sections because we don't write the /usr/lib/variant file until
--- %%posttrans to avoid trumping the fedora-release-$EDITION packages.
--- This is necessary to avoid breaking systemctl scripts since they rely on
--- /usr/lib/os-release being valid. We can't wait until %%posttrans to default
--- to os-release-fedora.
-if arg[2] == "0" then
-    set_release(fedora)
-end
-
--- We also want to forcibly set these paths on upgrade if we are explicitly
--- set to "nonproduct"
-if read_variant() == "nonproduct" then
-    convert_to_edition("nonproduct", false)
-end
-
-%posttrans -p <lua>
-%include %{SOURCE4}
--- If we get to %%posttrans and nothing created /usr/lib/variant, set it to
--- nonproduct.
-install_edition("nonproduct")
-
-%post atomichost -p <lua>
-%include %{SOURCE4}
-install_edition("atomichost")
-
-%preun atomichost -p <lua>
-%include %{SOURCE4}
-uninstall_edition("atomichost")
-
-%post cinnamon -p <lua>
-%include %{SOURCE4}
-install_edition("cinnamon")
-
-%preun cinnamon -p <lua>
-%include %{SOURCE4}
-uninstall_edition("cinnamon")
-
-%post cloud -p <lua>
-%include %{SOURCE4}
-install_edition("cloud")
-
-%preun cloud -p <lua>
-%include %{SOURCE4}
-uninstall_edition("cloud")
-
-%post container -p <lua>
-%include %{SOURCE4}
-install_edition("container")
-
-%preun container -p <lua>
-%include %{SOURCE4}
-uninstall_edition("container")
-
-%post coreos -p <lua>
-%include %{SOURCE4}
-install_edition("coreos")
-
-%preun coreos -p <lua>
-%include %{SOURCE4}
-uninstall_edition("coreos")
-
-%post iot -p <lua>
-%include %{SOURCE4}
-install_edition("iot")
-
-%preun iot -p <lua>
-%include %{SOURCE4}
-uninstall_edition("iot")
-
-%post kde -p <lua>
-%include %{SOURCE4}
-install_edition("kde")
-
-%preun kde -p <lua>
-%include %{SOURCE4}
-uninstall_edition("kde")
-
-%post matecompiz -p <lua>
-%include %{SOURCE4}
-install_edition("matecompiz")
-
-%preun matecompiz -p <lua>
-%include %{SOURCE4}
-uninstall_edition("matecompiz")
-
-%post server -p <lua>
-%include %{SOURCE4}
-install_edition("server")
-
-%preun server -p <lua>
-%include %{SOURCE4}
-uninstall_edition("server")
-
-%post silverblue -p <lua>
-%include %{SOURCE4}
-install_edition("silverblue")
-
-%preun silverblue -p <lua>
-%include %{SOURCE4}
-uninstall_edition("silverblue")
-
-%post soas -p <lua>
-%include %{SOURCE4}
-install_edition("soas")
-
-%preun soas -p <lua>
-%include %{SOURCE4}
-uninstall_edition("soas")
-
-%post workstation -p <lua>
-%include %{SOURCE4}
-install_edition("workstation")
-
-%preun workstation -p <lua>
-%include %{SOURCE4}
-uninstall_edition("workstation")
+install -d %{buildroot}%{_sysconfdir}/swid/swidtags.d
+ln -s %{_swidtagdir} %{buildroot}%{_sysconfdir}/swid/swidtags.d/fedoraproject.org
 
 %postun workstation
 if [ $1 -eq 0 ] ; then
     glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
 fi
 
+
 %posttrans workstation
 glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
 
-%post xfce -p <lua>
-%include %{SOURCE4}
-install_edition("xfce")
-
-%preun xfce -p <lua>
-%include %{SOURCE4}
-uninstall_edition("xfce")
-
 
-%files
-%license LICENSE Fedora-Legal-README.txt
-%ghost /usr/lib/variant
-%dir /usr/lib/os.release.d
-%dir /usr/lib/os.release.d/presets
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-fedora
-%ghost /usr/lib/os-release
-/etc/os-release
-%config %attr(0644,root,root) /etc/fedora-release
-/etc/redhat-release
-/etc/system-release
-%config %attr(0644,root,root) /etc/system-release-cpe
-%attr(0644,root,root) /usr/lib/issue
-%config(noreplace) /etc/issue
-%attr(0644,root,root) /usr/lib/issue.net
-%config(noreplace) /etc/issue.net
+%files common
+%license licenses/LICENSE licenses/Fedora-Legal-README.txt
+%{_prefix}/lib/fedora-release
+%{_prefix}/lib/system-release-cpe
+%{_sysconfdir}/os-release
+%{_sysconfdir}/fedora-release
+%{_sysconfdir}/redhat-release
+%{_sysconfdir}/system-release
+%{_sysconfdir}/system-release-cpe
+%attr(0644,root,root) %{_prefix}/lib/issue
+%config(noreplace) %{_sysconfdir}/issue
+%attr(0644,root,root) %{_prefix}/lib/issue.net
+%config(noreplace) %{_sysconfdir}/issue.net
 %attr(0644,root,root) %{_rpmconfigdir}/macros.d/macros.dist
-%dir /usr/lib/systemd/user-preset/
+%dir %{_prefix}/lib/systemd/user-preset/
 %{_prefix}/lib/systemd/user-preset/90-default-user.preset
 %dir %{_prefix}/lib/systemd/system-preset/
 %{_prefix}/lib/systemd/system-preset/85-display-manager.preset
@@ -562,71 +539,87 @@ uninstall_edition("xfce")
 %{_prefix}/lib/systemd/system-preset/99-default-disable.preset
 %dir %{_swidtagdir}
 %{_swidtagdir}/org.fedoraproject.Fedora-%{bug_version}.swidtag
-%ghost %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag
-/etc/swid/swidtags.d
+%{_sysconfdir}/swid/swidtags.d
+
+
+%files
+%{_prefix}/lib/os-release
 
 
 %files atomichost
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-atomichost
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-atomichost.swidtag
+%{_prefix}/lib/os-release.atomichost
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.atomichost
+
 
 %files cloud
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-cloud
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-cloud.swidtag
+%{_prefix}/lib/os-release.cloud
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.cloud
+
 
 %files cinnamon
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-cinnamon
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-cinnamon.swidtag
+%{_prefix}/lib/os-release.cinnamon
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.cinnamon
+
 
 %files container
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-container
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-container.swidtag
+%{_prefix}/lib/os-release.container
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.container
+
 
 %files coreos
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-coreos
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-coreos.swidtag
+%{_prefix}/lib/os-release.coreos
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.coreos
+
 
 %files iot
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-iot
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-iot.swidtag
-%ghost %{_prefix}/lib/systemd/system-preset/80-iot.preset
-%attr(0644,root,root) /usr/lib/os.release.d/presets/80-iot.preset
+%{_prefix}/lib/os-release.iot
+%{_prefix}/lib/systemd/system-preset/80-iot.preset
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.iot
+
 
 %files kde
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-kde
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-kde.swidtag
+%{_prefix}/lib/os-release.kde
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.kde
+
 
 %files matecompiz
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-matecompiz
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-matecompiz.swidtag
+%{_prefix}/lib/os-release.matecompiz
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.matecompiz
+
 
 %files server
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-server
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-server.swidtag
-%ghost %{_prefix}/lib/systemd/system-preset/80-server.preset
-%attr(0644,root,root) /usr/lib/os.release.d/presets/80-server.preset
+%{_prefix}/lib/os-release.server
+%{_prefix}/lib/systemd/system-preset/80-server.preset
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.server
+
 
 %files silverblue
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-silverblue
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-silverblue.swidtag
+%{_prefix}/lib/os-release.silverblue
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.silverblue
+
 
 %files soas
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-soas
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-soas.swidtag
+%{_prefix}/lib/os-release.soas
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.soas
+
 
 %files workstation
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-workstation
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-workstation.swidtag
+%{_prefix}/lib/os-release.workstation
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.workstation
 %{_datadir}/glib-2.0/schemas/org.gnome.shell.gschema.override
-%ghost %{_prefix}/lib/systemd/system-preset/80-workstation.preset
-%attr(0644,root,root) /usr/lib/os.release.d/presets/80-workstation.preset
-%attr(0644,root,root) /usr/share/polkit-1/rules.d/org.projectatomic.rpmostree1.rules
+%{_prefix}/lib/systemd/system-preset/80-workstation.preset
+%attr(0644,root,root) %{_prefix}/share/polkit-1/rules.d/org.projectatomic.rpmostree1.rules
+
 
 %files xfce
-%attr(0644,root,root) /usr/lib/os.release.d/os-release-xfce
-%attr(0644,root,root) /usr/lib/os.release.d/Fedora-xfce.swidtag
+%{_prefix}/lib/os-release.xfce
+%attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.xfce
+
 
 %changelog
+* Tue Oct 23 2018 Stephen Gallagher <sgallagh@redhat.com> - 30-0.12
+- Convert to more maintainable implementation of variant-handling
+
 * Thu Oct 11 2018 Jan Pazdziora <jpazdziora@redhat.com> 30-0.10
 - Add edition supplemental .swidtag files, and amend convert-to-edition.lua
   to keep symlink to the correct one in sync with os-release.

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-10  9:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-10  9:34 [rpms/fedora-release] f45: Rework edition-handling Stephen Gallagher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox