diff --git a/SPECS/rocky-release.spec b/SPECS/rocky-release.spec index d4edd2e..80472ec 100644 --- a/SPECS/rocky-release.spec +++ b/SPECS/rocky-release.spec @@ -50,6 +50,11 @@ Provides: centos-release(upstream) = %{full_release_version} ## Required by libdnf Provides: base-module(platform:el%{major}) +## This makes lorax/pungi/anaconda happy +Provides: rocky-release-eula = %{version}-%{release} +Provides: redhat-release-eula = %{version}-%{release} +Provides: centos-release-eula = %{version}-%{release} + # What are our requirements? Requires: rocky-repos(%{major}) Recommends: rocky-release-eula @@ -93,18 +98,6 @@ Source1300: rocky.1.gz # rocky secureboot certs placeholder (1400-1499) -%package eula -Summary: %{product_family} EULA File -Group: System Environment/Base -License: Not Applicable -Provides: rocky-release-eula = %{version}-%{release} -Provides: redhat-release-eula = %{version}-%{release} -Provides: centos-release-eula = %{version}-%{release} -Conflicts: %{name} < 8.0 - -%description eula -%{product_family} EULA File - %description %{distro_name} release files. @@ -299,16 +292,14 @@ install -p -m 0644 %{SOURCE102} %{buildroot}%{_sysconfdir}/pki/rpm-gpg/ %config(noreplace) %{_sysconfdir}/issue.net %dir %{_sysconfdir}/issue.d %{_sysconfdir}/rpm/macros.dist +%{_datadir}/redhat-release +%{_datadir}/rocky-release %{_prefix}/lib/os-release %{_prefix}/lib/systemd/system-preset/* %{_prefix}/lib/systemd/user-preset/* %{_prefix}/lib/sysctl.d/50-redhat.conf %{_mandir}/man1/rocky.1.gz -%files eula -%{_datadir}/redhat-release -%{_datadir}/rocky-release - %files -n rocky-repos %license docs/LICENSE %config(noreplace) %{_sysconfdir}/yum.repos.d/Rocky-*.repo diff --git a/SPECS/rocky-release_with_lh.spec b/SPECS/rocky-release_with_lh.spec new file mode 100644 index 0000000..7fd8faf --- /dev/null +++ b/SPECS/rocky-release_with_lh.spec @@ -0,0 +1,335 @@ +%define debug_package %{nil} + +# Product information +%define product_family Rocky Linux +%define variant_titlecase Server +%define variant_lowercase server + +# Distribution Name and Version +%define distro_name Rocky Linux +%define distro_code Blue Onyx +%define major 9 +%define minor 0 +%define rocky_rel 1.2 +%define rpm_license BSD-3-Clause + +%define contentdir pub/rocky +%define rltype stable + +# Check for lookahead and reset defines - This ensures a "lookahead" system +# will contact the mirrors or set the baseurl to properly use Rocky LookAhead, +# otherwise, the default is "stable" +%if 0%{?rllh} +%define minor 1 +%define contentdir pub/rocky-lh +%define rltype lookahead +%define rlstatement " (LookAhead) " +%endif + +%define base_release_version %{major} +%define dist_release_version %{major} +%define full_release_version %{major}.%{minor} + +%ifarch ppc64le +%define tuned_profile :server +%endif + +# Avoids a weird anaconda problem +%global __requires_exclude_from %{_libexecdir} + +Name: rocky-release +Version: %{major}.%{minor} +Release: %{rocky_rel}.el%{major} +Summary: %{distro_name} release files +License: %{rpm_license} +URL: https://rockylinux.org +BuildArch: noarch + +# What do we provide? Some of these needs are a necesity (think comps and +# groups) and things like EPEL need it. +Provides: rocky-release = %{version}-%{release} +Provides: rocky-release(upstream) = %{full_release_version} +Provides: redhat-release = %{version}-%{release} +Provides: system-release = %{version}-%{release} +Provides: system-release(releasever) = %{major} +Provides: centos-release = %{version}-%{release} +Provides: centos-release(upstream) = %{full_release_version} + +## Required by libdnf +Provides: base-module(platform:el%{major}) + +## This makes lorax/pungi/anaconda happy +Provides: rocky-release-eula +Provides: redhat-release-eula +Provides: centos-release-eula + +# What are our requirements? +Requires: rocky-repos(%{major}) + +# GPG Keys (100-199) +#Source101: RPM-GPG-KEY-rocky-%{major} +Source102: RPM-GPG-KEY-rockytesting + +# Release Sources (200-399) +Source200: EULA +Source201: LICENSE +Source202: Contributors +Source203: COMMUNITY-CHARTER +Source300: 85-display-manager.preset +Source301: 90-default.preset +Source302: 90-default-user.preset +Source303: 99-default-disable.preset +Source304: 50-redhat.conf + +# Repo Sources (1200-1299) +Source1200: Rocky-BaseOS.repo +Source1201: Rocky-AppStream.repo +Source1202: Rocky-CRB.repo +Source1203: Rocky-Extras.repo + +# Rocky Add-ons +Source1210: Rocky-HighAvailability.repo +Source1211: Rocky-ResilientStorage.repo +Source1212: Rocky-RT.repo +Source1213: Rocky-NFV.repo +Source1214: Rocky-SAP.repo + +# Rocky Special Stuff +Source1220: Rocky-Media.repo +Source1223: Rocky-Devel.repo +Source1226: Rocky-Plus.repo + +# Add ons (1300-1399) +Source1300: rocky.1.gz + +# rocky secureboot certs placeholder (1400-1499) + +%description +%{distro_name} release files. + +%package -n rocky-repos +Summary: %{distro_name} Package Repositories +License: %{rpm_license} +Provides: rocky-repos(%{major}) = %{full_release_version} +Requires: system-release = %{full_release_version} +Requires: rocky-gpg-keys +Conflicts: %{name} < 8.0 + +%description -n rocky-repos +%{distro_name} package repository files for yum/dnf + +%package -n rocky-gpg-keys +Summary: Rocky RPM GPG Keys +Conflicts: %{name} < 8.0 + +%description -n rocky-gpg-keys +This package provides the RPM signature keys for Rocky. + +%package -n rocky-sb-certs +Summary: %{distro_name} public secureboot certificates +Group: System Environment/Base +Provides: system-sb-certs = %{version}-%{release} + +%description -n rocky-sb-certs +This package contains the %{distro_name} secureboot public certificates. + +%prep +echo Good. + +%build +echo Good. + +%install +# docs dir for license and contributors +mkdir ./docs +cp %{SOURCE201} %{SOURCE202} %{SOURCE203} ./docs + +################################################################################ +# system-release data +install -d -m 0755 %{buildroot}%{_sysconfdir} +echo "%{distro_name} release %{version} (%{distro_code})%{?rlstatement}" > %{buildroot}%{_sysconfdir}/rocky-release +echo "Derived from Red Hat Enterprise Linux %{version}" > %{buildroot}%{_sysconfdir}/rocky-release-upstream +ln -s rocky-release %{buildroot}%{_sysconfdir}/system-release +ln -s rocky-release %{buildroot}%{_sysconfdir}/redhat-release +ln -s rocky-release %{buildroot}%{_sysconfdir}/centos-release +mkdir -p %{buildroot}%{_mandir}/man1 +install -p -m 0644 %{SOURCE1300} %{buildroot}%{_mandir}/man1/ + +# Create the os-release file +install -d -m 0755 %{buildroot}%{_prefix}/lib +cat > %{buildroot}%{_prefix}/lib/os-release << EOF +NAME="%{distro_name}" +VERSION="%{full_release_version} (%{distro_code})" +ID="rocky" +ID_LIKE="rhel centos fedora" +VERSION_ID="%{full_release_version}" +PLATFORM_ID="platform:el%{major}" +PRETTY_NAME="%{distro_name} %{full_release_version} (%{distro_code})" +ANSI_COLOR="0;32" +CPE_NAME="cpe:/o:rocky:rocky:%{full_release_version}:GA" +HOME_URL="https://rockylinux.org/" +BUG_REPORT_URL="https://bugs.rockylinux.org/" +ROCKY_SUPPORT_PRODUCT="%{distro_name}" +ROCKY_SUPPORT_PRODUCT_VERSION="%{major}" +EOF + +# Create the symlink for /etc/os-release +ln -s ../usr/lib/os-release %{buildroot}%{_sysconfdir}/os-release + +# write cpe to /etc/system/release-cpe +echo "cpe:/o:rocky:rocky:%{full_release_version}:GA" > %{buildroot}%{_sysconfdir}/system-release-cpe + +# create /etc/issue and /etc/issue.net, /etc/issue.d +echo '\S' > %{buildroot}%{_sysconfdir}/issue +echo 'Kernel \r on an \m' >> %{buildroot}%{_sysconfdir}/issue +cp %{buildroot}%{_sysconfdir}/issue{,.net} +echo >> %{buildroot}%{_sysconfdir}/issue +mkdir -p %{buildroot}%{_sysconfdir}/issue.d + +# set up the dist tag macros +install -d -m 0755 %{buildroot}%{_sysconfdir}/rpm +cat > %{buildroot}%{_sysconfdir}/rpm/macros.dist << EOF +# dist macros. + +%%rocky_ver %{major} +%%rocky %{major} +%%centos_ver %{major} +%%centos %{major} +%%rhel %{major} +%%dist .el%{major} +%%el%{major} 1 +EOF + +# Data directory +install -d -m 0755 %{buildroot}%{_datadir}/rocky-release +ln -s rocky-release %{buildroot}%{_datadir}/redhat-release +install -p -m 0644 %{SOURCE200} %{buildroot}%{_datadir}/rocky-release/ + +# end system-release data +################################################################################ + +################################################################################ +# systemd section +install -d -m 0755 %{buildroot}%{_prefix}/lib/systemd/system-preset/ +install -d -m 0755 %{buildroot}%{_prefix}/lib/systemd/user-preset/ +install -m 0644 %{SOURCE300} %{buildroot}/%{_prefix}/lib/systemd/system-preset/ +install -m 0644 %{SOURCE301} %{buildroot}/%{_prefix}/lib/systemd/system-preset/ +install -m 0644 %{SOURCE302} %{buildroot}/%{_prefix}/lib/systemd/system-preset/ + +# same behavior for both presets +install -m 0644 %{SOURCE303} %{buildroot}/%{_prefix}/lib/systemd/system-preset/ +install -m 0644 %{SOURCE303} %{buildroot}/%{_prefix}/lib/systemd/user-preset/ + +# sysctl presets +install -d -m 0755 %{buildroot}%{_prefix}/lib/sysctl.d/ +install -m 0644 %{SOURCE304} %{buildroot}/%{_prefix}/lib/sysctl.d/ + +# systemd section +################################################################################ + +################################################################################ +# start secureboot section +install -d -m 0755 %{buildroot}%{_sysconfdir}/pki/sb-certs/ +install -d -m 0755 %{buildroot}%{_datadir}/pki/sb-certs/ + +# x86_64 +echo "placeholder" > %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-x86_64.crt + +# aarch64 +echo "placeholder" > %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-aarch64.crt + +# ppc64le +echo "placeholder" > %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-ppc64le.crt + +# armhfp +echo "placeholder" > %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-armhfp.crt + +# s390x +echo "placeholder" > %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-s390x.crt + +# symlinks for everybody +for x in $(ls %{buildroot}%{_datadir}/pki/sb-certs); do + ln -sr %{buildroot}%{_datadir}/pki/sb-certs/${x} %{buildroot}%{_sysconfdir}/pki/sb-certs/${x} +done + +# end secureboot section +################################################################################ + +################################################################################ +# dnf repo section +install -d -m 0755 %{buildroot}%{_sysconfdir}/yum.repos.d +install -p -m 0644 %{SOURCE1200} %{buildroot}%{_sysconfdir}/yum.repos.d/ +install -p -m 0644 %{SOURCE1201} %{buildroot}%{_sysconfdir}/yum.repos.d/ +install -p -m 0644 %{SOURCE1202} %{buildroot}%{_sysconfdir}/yum.repos.d/ +install -p -m 0644 %{SOURCE1203} %{buildroot}%{_sysconfdir}/yum.repos.d/ +install -p -m 0644 %{SOURCE1210} %{buildroot}%{_sysconfdir}/yum.repos.d/ +install -p -m 0644 %{SOURCE1211} %{buildroot}%{_sysconfdir}/yum.repos.d/ +install -p -m 0644 %{SOURCE1212} %{buildroot}%{_sysconfdir}/yum.repos.d/ +install -p -m 0644 %{SOURCE1213} %{buildroot}%{_sysconfdir}/yum.repos.d/ +install -p -m 0644 %{SOURCE1214} %{buildroot}%{_sysconfdir}/yum.repos.d/ +install -p -m 0644 %{SOURCE1220} %{buildroot}%{_sysconfdir}/yum.repos.d/ +install -p -m 0644 %{SOURCE1223} %{buildroot}%{_sysconfdir}/yum.repos.d/ +install -p -m 0644 %{SOURCE1226} %{buildroot}%{_sysconfdir}/yum.repos.d/ + +# dnf stuff +install -d -m 0755 %{buildroot}%{_sysconfdir}/dnf/vars +echo "%{contentdir}" > %{buildroot}%{_sysconfdir}/dnf/vars/contentdir +echo "%{rltype}" > %{buildroot}%{_sysconfdir}/dnf/vars/rltype + +# Copy out GPG keys +install -d -m 0755 %{buildroot}%{_sysconfdir}/pki/rpm-gpg +#install -p -m 0644 %{SOURCE101} %{buildroot}%{_sysconfdir}/pki/rpm-gpg/ +install -p -m 0644 %{SOURCE102} %{buildroot}%{_sysconfdir}/pki/rpm-gpg/ +# end dnf repo section +################################################################################ + +%files +%license docs/LICENSE +%doc docs/Contributors docs/COMMUNITY-CHARTER +%dir %{_sysconfdir}/yum.repos.d +%{_sysconfdir}/redhat-release +%{_sysconfdir}/centos-release +%{_sysconfdir}/system-release +%{_sysconfdir}/rocky-release +%{_sysconfdir}/rocky-release-upstream +%config(noreplace) %{_sysconfdir}/os-release +%config %{_sysconfdir}/system-release-cpe +%config(noreplace) %{_sysconfdir}/issue +%config(noreplace) %{_sysconfdir}/issue.net +%dir %{_sysconfdir}/issue.d +%{_sysconfdir}/rpm/macros.dist +%{_datadir}/redhat-release +%{_datadir}/rocky-release +%{_prefix}/lib/os-release +%{_prefix}/lib/systemd/system-preset/* +%{_prefix}/lib/systemd/user-preset/* +%{_prefix}/lib/sysctl.d/50-redhat.conf +%{_mandir}/man1/rocky.1.gz + +%files -n rocky-repos +%license docs/LICENSE +%config(noreplace) %{_sysconfdir}/yum.repos.d/Rocky-*.repo +%config(noreplace) %{_sysconfdir}/dnf/vars/contentdir +%config(noreplace) %{_sysconfdir}/dnf/vars/rltype + +%files -n rocky-gpg-keys +%{_sysconfdir}/pki/rpm-gpg/ + +%files -n rocky-sb-certs +# care: resetting symlinks is intended +%dir %{_sysconfdir}/pki/sb-certs +%dir %{_datadir}/pki/sb-certs +%{_sysconfdir}/pki/sb-certs/*.crt +%{_datadir}/pki/sb-certs/*.crt + +%changelog +* Sun Nov 28 2021 Louis Abel - 9.0-1.2 +- Sync with upstream +- Adding conditionals section for future use + +* Mon Nov 01 2021 Louis Abel - 9.0-1.1 +- Change everything to baseurl for now +- Add LH repository + +* Tue Oct 05 2021 Louis Abel - 9.0-1 +- Init for Rocky Linux 9 (Blue Onyx)