diff --git a/fedora-release.spec b/fedora-release.spec index b3c481e..a4c58fc 100644 --- a/fedora-release.spec +++ b/fedora-release.spec @@ -5,7 +5,7 @@ Summary: Fedora release files Name: fedora-release Version: 23 -Release: 0.3 +Release: 0.4 License: MIT Group: System Environment/Base URL: http://fedoraproject.org @@ -14,38 +14,26 @@ Obsoletes: redhat-release Provides: redhat-release Provides: system-release Provides: system-release(%{version}) + +# Kill off the fedora-release-nonproduct package +Provides: fedora-release-nonproduct = %{version} +Obsoletes: fedora-release-nonproduct <= 23-0.3 +Provides: fedora-release-standard = 22-0.8 +Obsoletes: fedora-release-standard < 22-0.8 + + Requires: fedora-repos(%{version}) BuildArch: noarch %description Fedora release files such as various /etc/ files that define the release. -%package nonproduct -Summary: Base package for non-product-specific default configurations -Provides: system-release-nonproduct -Provides: system-release-nonproduct(%{version}) -Provides: system-release-product -# turned out to be a bad name -Provides: fedora-release-standard = 22-0.8 -Obsoletes: fedora-release-standard < 22-0.8 -Requires: fedora-release = %{version}-%{release} -Conflicts: fedora-release-cloud -Conflicts: fedora-release-server -Conflicts: fedora-release-workstation - -%description nonproduct -Provides a base package for non-product-specific configuration files to -depend on. - %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} -Conflicts: fedora-release-server -Conflicts: fedora-release-nonproduct -Conflicts: fedora-release-workstation %description cloud Provides a base package for Fedora Cloud-specific configuration files to @@ -62,9 +50,6 @@ Requires: cockpit Requires: rolekit Requires(post): sed Requires(post): systemd -Conflicts: fedora-release-cloud -Conflicts: fedora-release-nonproduct -Conflicts: fedora-release-workstation %description server Provides a base package for Fedora Server-specific configuration files to @@ -76,9 +61,6 @@ Provides: system-release-workstation Provides: system-release-workstation(%{version}) Provides: system-release-product Requires: fedora-release = %{version}-%{release} -Conflicts: fedora-release-cloud -Conflicts: fedora-release-server -Conflicts: fedora-release-nonproduct # needed for captive portal support Requires: NetworkManager-config-connectivity-fedora Requires(post): /usr/bin/glib-compile-schemas @@ -105,8 +87,9 @@ echo >> $RPM_BUILD_ROOT/etc/issue ln -s fedora-release $RPM_BUILD_ROOT/etc/redhat-release ln -s fedora-release $RPM_BUILD_ROOT/etc/system-release -install -d $RPM_BUILD_ROOT/usr/lib -cat << EOF >>$RPM_BUILD_ROOT/usr/lib/os-release +# Create the common os-release file +install -d $RPM_BUILD_ROOT/usr/lib/os.release.d/ +cat << EOF >>$RPM_BUILD_ROOT/usr/lib/os.release.d/os-release-fedora NAME=Fedora VERSION="%{dist_version} (%{release_name})" ID=fedora @@ -123,6 +106,26 @@ REDHAT_SUPPORT_PRODUCT_VERSION=%{bug_version} PRIVACY_POLICY=https://fedoraproject.org/wiki/Legal:PrivacyPolicy EOF +# Create os-release files for the different editions +# Cloud +cp -p $RPM_BUILD_ROOT/usr/lib/os.release.d/os-release-fedora \ + $RPM_BUILD_ROOT/usr/lib/os.release.d/os-release-cloud +echo "VARIANT=Cloud" >> $RPM_BUILD_ROOT/usr/lib/os.release.d/os-release-cloud + +# Server +cp -p $RPM_BUILD_ROOT/usr/lib/os.release.d/os-release-fedora \ + $RPM_BUILD_ROOT/usr/lib/os.release.d/os-release-server +echo "VARIANT=Server" >> $RPM_BUILD_ROOT/usr/lib/os.release.d/os-release-server + +# Workstation +cp -p $RPM_BUILD_ROOT/usr/lib/os.release.d/os-release-fedora \ + $RPM_BUILD_ROOT/usr/lib/os.release.d/os-release-workstation +echo "VARIANT=Workstation" >> $RPM_BUILD_ROOT/usr/lib/os.release.d/os-release-workstation + +# Create the symlink for /etc/os-release +# This will be dangling until %post[trans] when the +# release packages will link the appropriate one into +# /usr/lib/os-release ln -s ../usr/lib/os-release $RPM_BUILD_ROOT/etc/os-release # Set up the dist tag macros @@ -139,23 +142,107 @@ EOF mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-preset/ # Fedora Server install -m 0644 80-server.preset %{buildroot}%{_prefix}/lib/systemd/system-preset/ +# Fedora Workstation +install -m 0644 80-workstation.preset %{buildroot}%{_prefix}/lib/systemd/system-preset/ # Override the list of enabled gnome-shell extensions for Workstation mkdir -p %{buildroot}%{_datadir}/glib-2.0/schemas/ install -m 0644 org.gnome.shell.gschema.override %{buildroot}%{_datadir}/glib-2.0/schemas/ + +%posttrans +# Only on installation +if [ $1 = 0 ]; then + # If no fedora-release-$edition subpackage was installed, + # make sure to link /etc/os-release to the standard version + test -e /usr/lib/os-release || \ + ln -sf /usr/lib/os-release.d/os-release-fedora /usr/lib/os-release +fi + +%post cloud +if [ $1 -eq 1 ] ; then + # Initial installation + + # If there is no link to os-release yet from some other + # release package, create it + test -e /usr/lib/os-release || \ + ln -sf /usr/lib/os.release.d/os-release-cloud /usr/lib/os-release + + # If the link exists but it points to a non-productized version, + # replace it with this one + test \! -h /usr/lib/os-release -o "x$(readlink /usr/lib/os-release)" != "xos-release-fedora" || + ln -sf /usr/lib/os.release.d/os-release-cloud /usr/lib/os-release || : +fi + +%postun cloud +# Uninstall +if [ $1 = 0 ]; then + # If os-release is now a broken symlink or missing replace it + # with a symlink to basic version + test -e /usr/lib/os-release || \ + ln -sf /usr/lib/os.release.d/os-release-fedora /usr/lib/os-release || : +fi + + %post server if [ $1 -eq 1 ] ; then - # Initial installation; fix up after %%systemd_post in packages - # possibly installed before our preset file was added - units=$(sed -n 's/^enable//p' \ - < %{_prefix}/lib/systemd/system-preset/80-server.preset) + # Initial installation + + # If there is no link to os-release yet from some other + # release package, create it + test -e /usr/lib/os-release || \ + ln -sf /usr/lib/os.release.d/os-release-server /usr/lib/os-release + + # If the link exists but it points to a non-productized version, + # replace it with this one + test \! -h /usr/lib/os-release -o "x$(readlink /usr/lib/os-release)" != "xos-release-fedora" || + ln -sf /usr/lib/os.release.d/os-release-server /usr/lib/os-release || : + + # fix up after %%systemd_post in packages + # possibly installed before our preset file was added + units=$(sed -n 's/^enable//p' \ + < %{_prefix}/lib/systemd/system-preset/80-server.preset) /usr/bin/systemctl preset $units >/dev/null 2>&1 || : fi +%postun server +# Uninstall +if [ $1 = 0 ]; then + # If os-release is now a broken symlink or missing replace it + # with a symlink to basic version + test -e /usr/lib/os-release || \ + ln -sf /usr/lib/os.release.d/os-release-fedora /usr/lib/os-release || : +fi + +%post workstation +if [ $1 -eq 1 ] ; then + # Initial installation + + # If there is no link to os-release yet from some other + # release package, create it + test -e /usr/lib/os-release || \ + ln -sf /usr/lib/os.release.d/os-release-workstation/usr/lib/os-release + + # If the link exists but it points to a non-productized version, + # replace it with this one + test \! -h /usr/lib/os-release -o "x$(readlink /usr/lib/os-release)" != "xos-release-fedora" || + ln -sf /usr/lib/os.release.d/os-release-workstation /usr/lib/os-release || : + + # fix up after %%systemd_post in packages + # possibly installed before our preset file was added + units=$(sed -n 's/^disable//p' \ + < %{_prefix}/lib/systemd/system-preset/80-workstation.preset) + /usr/bin/systemctl preset $units >/dev/null 2>&1 || : +fi + %postun workstation if [ $1 -eq 0 ] ; then glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : + + # If os-release is now a broken symlink or missing replace it + # with a symlink to basic version + test -e /usr/lib/os-release || \ + ln -sf /usr/lib/os.release.d/os-release-fedora /usr/lib/os-release || : fi %posttrans workstation @@ -166,7 +253,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %defattr(-,root,root,-) %{!?_licensedir:%global license %%doc} %license LICENSE Fedora-Legal-README.txt -%config %attr(0644,root,root) /usr/lib/os-release +%dir /usr/lib/os.release.d +%config %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 @@ -176,25 +265,34 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %config(noreplace) %attr(0644,root,root) /etc/issue.net %attr(0644,root,root) %{_rpmconfigdir}/macros.d/macros.dist -%files nonproduct -%{!?_licensedir:%global license %%doc} -%license LICENSE - %files cloud %{!?_licensedir:%global license %%doc} %license LICENSE +%config %attr(0644,root,root) /usr/lib/os.release.d/os-release-cloud + %files server %{!?_licensedir:%global license %%doc} %license LICENSE +%config %attr(0644,root,root) /usr/lib/os.release.d/os-release-server %{_prefix}/lib/systemd/system-preset/80-server.preset %files workstation %{!?_licensedir:%global license %%doc} %license LICENSE +%config %attr(0644,root,root) /usr/lib/os.release.d/os-release-workstation %{_datadir}/glib-2.0/schemas/org.gnome.shell.gschema.override +%{_prefix}/lib/systemd/system-preset/80-workstation.preset %changelog +* Fri Mar 13 2015 Dennis Gilmore - 23-0.4 +- add preset file for workstation to disable sshd + +* Thu Mar 12 2015 Stephen Gallagher 23-0.3.1 +- Generate os-release based on product subpackages +- Remove the -nonproduct subpackage +- Eliminate Conflicts between subpackages + * Tue Feb 24 2015 Dennis Gilmore - 23-0.3 - make the /etc/os-release symlink relative rhbz#1192276 diff --git a/sources b/sources index c9b49ce..95a155e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3df6d598c8775c0f88ffa6fab390f461 fedora-release-23.tar.bz2 +fdf186e711f503cd08417c7ed853c882 fedora-release-23.tar.bz2