#237 Realign release subpackages and have identity variant packages require variant packages
Closed a year ago by sgallagh. Opened 2 years ago by ngompa.
rpms/ ngompa/fedora-release realign-release-files  into  rawhide

file modified
+35 -16
@@ -193,6 +193,7 @@ 

  RemovePathPostfixes: .cinnamon

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-cinnamon = %{version}-%{release}

  

  

  %description identity-cinnamon
@@ -230,6 +231,7 @@ 

  RemovePathPostfixes: .cloud

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-cloud = %{version}-%{release}

  

  

  %description identity-cloud
@@ -267,6 +269,7 @@ 

  RemovePathPostfixes: .compneuro

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-compneuro = %{version}-%{release}

  

  

  %description identity-compneuro
@@ -304,6 +307,7 @@ 

  RemovePathPostfixes: .container

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-container = %{version}-%{release}

  

  

  %description identity-container
@@ -341,6 +345,7 @@ 

  RemovePathPostfixes: .coreos

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-coreos = %{version}-%{release}

  

  

  %description identity-coreos
@@ -379,6 +384,7 @@ 

  RemovePathPostfixes: .designsuite

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-designsuite = %{version}-%{release}

  

  

  %description identity-designsuite
@@ -426,6 +432,7 @@ 

  RemovePathPostfixes: .eln

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-eln = %{version}-%{release}

  

  

  %description identity-eln
@@ -463,6 +470,7 @@ 

  RemovePathPostfixes: .iot

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-iot = %{version}-%{release}

  

  

  %description identity-iot
@@ -500,6 +508,7 @@ 

  RemovePathPostfixes: .kde

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-kde = %{version}-%{release}

  

  

  %description identity-kde
@@ -537,6 +546,7 @@ 

  RemovePathPostfixes: .matecompiz

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-matecompiz = %{version}-%{release}

  

  

  %description identity-matecompiz
@@ -574,6 +584,7 @@ 

  RemovePathPostfixes: .server

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-server = %{version}-%{release}

  

  

  %description identity-server
@@ -618,6 +629,7 @@ 

  RemovePathPostfixes: .silverblue

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-silverblue = %{version}-%{release}

  

  

  %description identity-silverblue
@@ -656,6 +668,7 @@ 

  RemovePathPostfixes: .kinoite

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-kinoite = %{version}-%{release}

  

  

  %description identity-kinoite
@@ -702,6 +715,7 @@ 

  RemovePathPostfixes: .snappy

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-snappy = %{version}-%{release}

  

  

  %description identity-snappy
@@ -739,6 +753,7 @@ 

  RemovePathPostfixes: .soas

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-soas = %{version}-%{release}

  

  

  %description identity-soas
@@ -783,6 +798,7 @@ 

  RemovePathPostfixes: .workstation

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-workstation = %{version}-%{release}

  

  

  %description identity-workstation
@@ -820,6 +836,7 @@ 

  RemovePathPostfixes: .xfce

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-xfce = %{version}-%{release}

  

  

  %description identity-xfce
@@ -857,6 +874,7 @@ 

  RemovePathPostfixes: .i3

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-i3 = %{version}-%{release}

  

  

  %description identity-i3
@@ -894,6 +912,7 @@ 

  RemovePathPostfixes: .lxqt

  Provides:       fedora-release-identity = %{version}-%{release}

  Conflicts:      fedora-release-identity

+ Requires:       fedora-release-lxqt = %{version}-%{release}

  

  

  %description identity-lxqt
@@ -1387,24 +1406,24 @@ 

  

  %if %{with iot}

  %files iot

- %files identity-iot

- %{_prefix}/lib/os-release.iot

  %{_prefix}/lib/systemd/system-preset/80-iot.preset

  %{_prefix}/lib/systemd/user-preset/80-iot-user.preset

- %attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.iot

  %{_prefix}/lib/zezere-ignition-url

  %{_unitdir}/timers.target.wants/rpm-ostree-countme.timer

+ %files identity-iot

+ %{_prefix}/lib/os-release.iot

+ %attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.iot

  %endif

  

  

  %if %{with kde}

  %files kde

- %files identity-kde

- %{_prefix}/lib/os-release.kde

  %{_prefix}/lib/systemd/system-preset/80-kde.preset

  %{_prefix}/lib/systemd/system-preset/81-desktop.preset

- %attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.kde

  %{_sysconfdir}/dnf/protected.d/plasma-desktop.conf

+ %files identity-kde

+ %{_prefix}/lib/os-release.kde

+ %attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.kde

  %endif

  

  
@@ -1418,34 +1437,34 @@ 

  

  %if %{with server}

  %files server

+ %{_prefix}/lib/systemd/system-preset/80-server.preset

  %files identity-server

  %{_prefix}/lib/os-release.server

- %{_prefix}/lib/systemd/system-preset/80-server.preset

  %attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.server

  %endif

  

  

  %if %{with silverblue}

  %files silverblue

- %files identity-silverblue

- %{_prefix}/lib/os-release.silverblue

- %attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.silverblue

  # Keep this in sync with workstation below

  %{_datadir}/glib-2.0/schemas/org.gnome.shell.gschema.override

  %{_prefix}/lib/systemd/system-preset/80-workstation.preset

  %{_prefix}/lib/systemd/system-preset/81-desktop.preset

  %{_unitdir}/timers.target.wants/rpm-ostree-countme.timer

+ %files identity-silverblue

+ %{_prefix}/lib/os-release.silverblue

+ %attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.silverblue

  %endif

  

  

  %if %{with kinoite}

  %files kinoite

- %files identity-kinoite

- %{_prefix}/lib/os-release.kinoite

  %{_prefix}/lib/systemd/system-preset/80-kde.preset

  %{_prefix}/lib/systemd/system-preset/81-desktop.preset

- %attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.kinoite

  %{_unitdir}/timers.target.wants/rpm-ostree-countme.timer

+ %files identity-kinoite

+ %{_prefix}/lib/os-release.kinoite

+ %attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.kinoite

  %endif

  

  
@@ -1473,14 +1492,14 @@ 

  

  %if %{with workstation}

  %files workstation

- %files identity-workstation

- %{_prefix}/lib/os-release.workstation

- %attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.workstation

  %{_sysconfdir}/dnf/protected.d/fedora-workstation.conf

  # Keep this in sync with silverblue above

  %{_datadir}/glib-2.0/schemas/org.gnome.shell.gschema.override

  %{_prefix}/lib/systemd/system-preset/80-workstation.preset

  %{_prefix}/lib/systemd/system-preset/81-desktop.preset

+ %files identity-workstation

+ %{_prefix}/lib/os-release.workstation

+ %attr(0644,root,root) %{_swidtagdir}/org.fedoraproject.Fedora-edition.swidtag.workstation

  %endif

  

  

When the fedora-release-identity-<variant> packages were added, all
the content was moved indiscriminately from the fedora-release-<variant>
packages to the new fedora-release-identity-<variant> packages. This
meant that if someone installed one environment over another, the
necessary presets and system configuration files for the environment
to functionally work were not installed.

Fortunately, most of the fedora-release-<variant> packages previously
only contained identity information, so this wasn't a huge problem.
But, some of them contained environment presets and other configuration,
so let's fix this by shuffling things around so that this makes sense again.

Fixes: 6be4dd9

Resolves: rhbz#2148648

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci

NACK

For a detailed explanation about the presets, see https://bugzilla.redhat.com/show_bug.cgi?id=2148648#c2

As for the Requires: fedora-*-release portion, there's actually a reason why those aren't there today: it introduces an install-ordering conflict that DNF has a difficult time with. We originally left those out until Requires(meta) became available, which specifies a requirement that doesn't need to be installed before the package requesting it. Now would probably be a good time to get that added, finally. I'd accept a version of this patch that does so.

Pull-Request has been closed by sgallagh

a year ago
Metadata