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