diff --git a/convert-to-edition.lua b/convert-to-edition.lua index 99633a2..0ad7b09 100644 --- a/convert-to-edition.lua +++ b/convert-to-edition.lua @@ -100,6 +100,14 @@ 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 @@ -152,6 +160,13 @@ local function convert_to_edition(edition, apply_presets) 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) diff --git a/distro-edition-template.swidtag b/distro-edition-template.swidtag new file mode 100644 index 0000000..8d58d67 --- /dev/null +++ b/distro-edition-template.swidtag @@ -0,0 +1,24 @@ + + + + + + + diff --git a/fedora-release.spec b/fedora-release.spec index c2f5370..31e1dbb 100644 --- a/fedora-release.spec +++ b/fedora-release.spec @@ -14,7 +14,7 @@ Summary: Fedora release files Name: fedora-release Version: 30 -Release: 0.10 +Release: 0.11 License: MIT URL: https://fedoraproject.org/ @@ -32,6 +32,7 @@ Source16: org.gnome.shell.gschema.override Source17: org.projectatomic.rpmostree1.rules Source18: 80-iot.preset Source19: distro-template.swidtag +Source20: distro-edition-template.swidtag Obsoletes: redhat-release Obsoletes: convert-to-edition < 30-0.7 @@ -255,6 +256,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # Cinnamon cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -262,6 +264,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # Cloud cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -269,6 +272,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # Container cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -276,6 +280,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # CoreOS cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -283,6 +288,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # IoT cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -290,6 +296,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # KDE Plasma cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -297,6 +304,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # MATE-Compiz cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -304,6 +312,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # Server cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -311,6 +320,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # Silverblue cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -319,6 +329,7 @@ echo "VARIANT=\"Silverblue\"" >> %{buildroot}/usr/lib/os.release.d/os-release-si 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 # Sugar on a Stick cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -326,6 +337,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # Workstation cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -333,6 +345,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # Xfce cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ @@ -340,6 +353,7 @@ cp -p %{buildroot}/usr/lib/os.release.d/os-release-fedora \ 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 # Create the symlink for /etc/os-release # We don't create the /usr/lib/os-release symlink until %%post @@ -548,48 +562,61 @@ 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 %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 %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 %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 %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 %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 %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 %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 %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 %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 %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 %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 %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 %{_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 @@ -597,8 +624,13 @@ uninstall_edition("xfce") %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 %changelog +* Thu Oct 11 2018 Jan Pazdziora 30-0.11 +- Add edition supplemental .swidtag files, and amend convert-to-edition.lua + to keep symlink to the correct one in sync with os-release. + * Thu Oct 11 2018 Jan Pazdziora 30-0.10 - Produce distro-level SWID tag in /usr/lib/swidtag/fedoraproject.org.