rocky-release/SPECS/rocky-release.spec

366 lines
13 KiB
RPMSpec
Raw Normal View History

2021-11-30 08:24:40 +00:00
# Note to packagers/builders:
#
# If you wish to build the LookAhead variant of this package, ensure that the
# rllh macro is set either in your build or in the build system. Please see
# the git repository readme for more information.
2021-04-09 03:50:23 +00:00
%define debug_package %{nil}
# Product information
%define product_family Rocky Linux
%define variant_titlecase Server
%define variant_lowercase server
# Distribution Name and Version
2021-05-25 00:36:03 +00:00
%define distro_name Rocky Linux
2021-10-19 08:39:56 +00:00
%define distro_code Blue Onyx
2021-11-30 02:37:33 +00:00
%define major 9
%define minor 0
2021-11-30 08:24:40 +00:00
%define rocky_rel 1.%{!?rllh:0}
2021-07-10 22:01:25 +00:00
%define rpm_license BSD-3-Clause
2021-04-09 03:50:23 +00:00
2021-11-30 02:37:33 +00:00
%define contentdir pub/rocky
2021-11-30 08:24:40 +00:00
%define rltype stable
################################################################################
# Rocky LookAhead Section
#
# 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 rlpkg -lookahead
%define rlstatement (LookAhead)
%endif
# End Rocky LookAhead Section
################################################################################
2021-11-30 02:37:33 +00:00
2021-04-09 03:50:23 +00:00
%define base_release_version %{major}
%define dist_release_version %{major}
%define full_release_version %{major}.%{minor}
2021-04-09 03:50:23 +00:00
%ifarch ppc64le
%define tuned_profile :server
%endif
# Avoids a weird anaconda problem
%global __requires_exclude_from %{_libexecdir}
2021-02-01 07:12:25 +00:00
# conditional section for future use
2021-11-30 08:24:40 +00:00
Name: rocky-release%{?rlpkg}
2021-02-01 07:12:25 +00:00
Version: %{major}.%{minor}
2021-10-05 07:52:23 +00:00
Release: %{rocky_rel}.el%{major}
2021-05-25 00:36:03 +00:00
Summary: %{distro_name} release files
2021-11-30 02:37:33 +00:00
Group: System Environment/Base
2021-07-10 22:01:25 +00:00
License: %{rpm_license}
2021-02-01 07:12:25 +00:00
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.
2021-04-09 03:52:11 +00:00
Provides: rocky-release = %{version}-%{release}
2021-10-20 23:21:00 +00:00
Provides: rocky-release(upstream) = %{full_release_version}
2021-04-09 03:59:11 +00:00
Provides: redhat-release = %{version}-%{release}
Provides: system-release = %{version}-%{release}
2021-04-09 03:50:23 +00:00
Provides: system-release(releasever) = %{major}
2021-09-13 22:28:39 +00:00
Provides: centos-release = %{version}-%{release}
2021-10-20 23:21:00 +00:00
Provides: centos-release(upstream) = %{full_release_version}
2021-02-01 07:12:25 +00:00
2021-04-09 03:50:23 +00:00
## Required by libdnf
Provides: base-module(platform:el%{major})
2021-11-30 02:55:46 +00:00
## This makes lorax/pungi/anaconda happy
Provides: rocky-release-eula = %{version}-%{release}
Provides: redhat-release-eula = %{version}-%{release}
Provides: centos-release-eula = %{version}-%{release}
2021-04-09 03:50:23 +00:00
# What are our requirements?
2021-05-28 05:29:55 +00:00
Requires: rocky-repos(%{major})
2021-02-01 07:12:25 +00:00
2021-10-20 03:10:35 +00:00
# GPG Keys (100-199)
2021-11-30 02:37:33 +00:00
Source101: RPM-GPG-KEY-rocky-%{major}
2021-04-09 03:50:23 +00:00
Source102: RPM-GPG-KEY-rockytesting
2021-02-01 07:12:25 +00:00
2021-11-30 08:24:40 +00:00
# Release Sources (200-499)
2021-02-01 07:12:25 +00:00
Source200: EULA
Source201: LICENSE
Source202: Contributors
Source203: COMMUNITY-CHARTER
2021-11-30 08:24:40 +00:00
# !! Stable !!
2021-02-01 07:12:25 +00:00
Source300: 85-display-manager.preset
Source301: 90-default.preset
2021-10-05 07:52:23 +00:00
Source302: 90-default-user.preset
Source303: 99-default-disable.preset
Source304: 50-redhat.conf
2021-02-01 07:12:25 +00:00
2021-11-30 08:24:40 +00:00
# !! LookAhead !!
Source400: 85-display-manager.preset.lh
Source401: 90-default.preset.lh
Source402: 90-default-user.preset.lh
Source403: 99-default-disable.preset.lh
Source404: 50-redhat.conf.lh
2021-10-20 03:10:35 +00:00
# Repo Sources (1200-1299)
2021-04-09 03:50:23 +00:00
Source1200: Rocky-BaseOS.repo
Source1201: Rocky-AppStream.repo
2021-10-12 22:09:30 +00:00
Source1202: Rocky-CRB.repo
2021-04-09 03:50:23 +00:00
Source1203: Rocky-Extras.repo
# Rocky Add-ons
Source1210: Rocky-HighAvailability.repo
2021-05-01 16:44:14 +00:00
Source1211: Rocky-ResilientStorage.repo
2021-05-28 05:29:55 +00:00
Source1212: Rocky-RT.repo
2021-06-30 06:07:04 +00:00
Source1213: Rocky-NFV.repo
2021-10-20 03:10:35 +00:00
Source1214: Rocky-SAP.repo
2021-04-09 03:50:23 +00:00
# Rocky Special Stuff
Source1220: Rocky-Media.repo
Source1223: Rocky-Devel.repo
2021-05-05 08:45:26 +00:00
Source1226: Rocky-Plus.repo
2021-10-20 03:10:35 +00:00
# Add ons (1300-1399)
2021-05-26 15:09:34 +00:00
Source1300: rocky.1.gz
2021-04-09 03:50:23 +00:00
2021-10-20 03:10:35 +00:00
# rocky secureboot certs placeholder (1400-1499)
2021-10-19 04:47:21 +00:00
2021-02-01 07:12:25 +00:00
%description
2021-05-25 00:36:03 +00:00
%{distro_name} release files.
2021-02-01 07:12:25 +00:00
2021-11-30 08:24:40 +00:00
%package -n rocky-repos%{?rlpkg}
2021-05-25 00:36:03 +00:00
Summary: %{distro_name} Package Repositories
2021-07-10 22:01:25 +00:00
License: %{rpm_license}
2021-10-20 23:21:00 +00:00
Provides: rocky-repos(%{major}) = %{full_release_version}
Requires: system-release = %{full_release_version}
2021-04-09 03:50:23 +00:00
Requires: rocky-gpg-keys
2021-04-09 03:59:11 +00:00
Conflicts: %{name} < 8.0
2021-04-09 03:50:23 +00:00
2021-11-30 08:24:40 +00:00
%description -n rocky-repos%{?rlpkg}
2021-05-25 00:36:03 +00:00
%{distro_name} package repository files for yum/dnf
2021-04-09 03:50:23 +00:00
2021-11-30 08:24:40 +00:00
%package -n rocky-gpg-keys%{?rlpkg}
2021-04-09 03:50:23 +00:00
Summary: Rocky RPM GPG Keys
Conflicts: %{name} < 8.0
2021-11-30 08:24:40 +00:00
%description -n rocky-gpg-keys%{?rlpkg}
2021-04-09 03:50:23 +00:00
This package provides the RPM signature keys for Rocky.
2021-11-30 08:24:40 +00:00
%package -n rocky-sb-certs%{?rlpkg}
2021-10-19 04:47:21 +00:00
Summary: %{distro_name} public secureboot certificates
Group: System Environment/Base
Provides: system-sb-certs = %{version}-%{release}
2021-11-30 08:24:40 +00:00
%description -n rocky-sb-certs%{?rlpkg}
2021-10-19 04:47:21 +00:00
This package contains the %{distro_name} secureboot public certificates.
2021-04-09 03:50:23 +00:00
%prep
echo Good.
%build
echo Good.
2021-02-01 07:12:25 +00:00
%install
2021-10-19 04:47:21 +00:00
# docs dir for license and contributors
mkdir ./docs
cp %{SOURCE201} %{SOURCE202} %{SOURCE203} ./docs
2021-02-01 07:12:25 +00:00
2021-10-19 08:39:56 +00:00
################################################################################
# system-release data
2021-02-01 07:12:25 +00:00
install -d -m 0755 %{buildroot}%{_sysconfdir}
2021-11-30 08:24:40 +00:00
echo "%{distro_name} release %{version} (%{distro_code})%{?rlstatement: %{rlstatement}}" > %{buildroot}%{_sysconfdir}/rocky-release
2021-02-01 07:12:25 +00:00
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
2021-09-13 22:28:39 +00:00
ln -s rocky-release %{buildroot}%{_sysconfdir}/centos-release
2021-05-26 03:23:29 +00:00
mkdir -p %{buildroot}%{_mandir}/man1
2021-05-26 03:07:44 +00:00
install -p -m 0644 %{SOURCE1300} %{buildroot}%{_mandir}/man1/
2021-02-01 07:12:25 +00:00
# Create the os-release file
install -d -m 0755 %{buildroot}%{_prefix}/lib
cat > %{buildroot}%{_prefix}/lib/os-release << EOF
2021-05-25 00:36:03 +00:00
NAME="%{distro_name}"
2021-10-20 23:21:00 +00:00
VERSION="%{full_release_version} (%{distro_code})"
2021-02-01 07:12:25 +00:00
ID="rocky"
2021-09-13 22:28:39 +00:00
ID_LIKE="rhel centos fedora"
2021-10-20 23:21:00 +00:00
VERSION_ID="%{full_release_version}"
2021-02-01 07:12:25 +00:00
PLATFORM_ID="platform:el%{major}"
2021-11-30 08:24:40 +00:00
PRETTY_NAME="%{distro_name} %{full_release_version} (%{distro_code})%{?rlstatement: %{rlstatement}}"
2021-05-25 00:36:03 +00:00
ANSI_COLOR="0;32"
2021-10-20 23:21:00 +00:00
CPE_NAME="cpe:/o:rocky:rocky:%{full_release_version}:GA"
2021-02-01 07:12:25 +00:00
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
2021-05-25 00:36:03 +00:00
ROCKY_SUPPORT_PRODUCT="%{distro_name}"
2021-04-25 07:17:20 +00:00
ROCKY_SUPPORT_PRODUCT_VERSION="%{major}"
2021-02-01 07:12:25 +00:00
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
2021-10-20 23:21:00 +00:00
echo "cpe:/o:rocky:rocky:%{full_release_version}:GA" > %{buildroot}%{_sysconfdir}/system-release-cpe
2021-02-01 07:12:25 +00:00
# create /etc/issue and /etc/issue.net, /etc/issue.d
2021-05-20 00:06:30 +00:00
echo '\S' > %{buildroot}%{_sysconfdir}/issue
echo 'Kernel \r on an \m' >> %{buildroot}%{_sysconfdir}/issue
cp %{buildroot}%{_sysconfdir}/issue{,.net}
2021-02-01 07:12:25 +00:00
echo >> %{buildroot}%{_sysconfdir}/issue
mkdir -p %{buildroot}%{_sysconfdir}/issue.d
2021-02-01 07:12:25 +00:00
# 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}
2021-09-13 23:05:19 +00:00
%%centos_ver %{major}
%%centos %{major}
2021-02-01 07:12:25 +00:00
%%rhel %{major}
%%dist .el%{major}
%%el%{major} 1
EOF
2021-04-09 18:14:55 +00:00
# Data directory
2021-02-01 07:12:25 +00:00
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/
2021-10-19 08:39:56 +00:00
# end system-release data
################################################################################
2021-10-19 04:47:21 +00:00
################################################################################
# systemd section
2021-02-01 07:12:25 +00:00
install -d -m 0755 %{buildroot}%{_prefix}/lib/systemd/system-preset/
2021-10-05 07:52:23 +00:00
install -d -m 0755 %{buildroot}%{_prefix}/lib/systemd/user-preset/
2021-11-30 08:24:40 +00:00
2021-04-09 03:50:23 +00:00
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/
2021-02-01 07:12:25 +00:00
2021-10-19 04:47:21 +00:00
# same behavior for both presets
install -m 0644 %{SOURCE303} %{buildroot}/%{_prefix}/lib/systemd/system-preset/
2021-10-05 07:52:23 +00:00
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/
2021-11-30 08:24:40 +00:00
# lookahead replacements
%if 0%{?rllh}
install -m 0644 %{SOURCE400} %{buildroot}/%{_prefix}/lib/systemd/system-preset/
install -m 0644 %{SOURCE401} %{buildroot}/%{_prefix}/lib/systemd/system-preset/
install -m 0644 %{SOURCE402} %{buildroot}/%{_prefix}/lib/systemd/system-preset/
install -m 0644 %{SOURCE403} %{buildroot}/%{_prefix}/lib/systemd/system-preset/
install -m 0644 %{SOURCE403} %{buildroot}/%{_prefix}/lib/systemd/user-preset/
install -m 0644 %{SOURCE404} %{buildroot}/%{_prefix}/lib/sysctl.d/
%endif
2021-10-19 08:39:56 +00:00
# systemd section
################################################################################
2021-10-19 04:47:21 +00:00
################################################################################
# start secureboot section
install -d -m 0755 %{buildroot}%{_sysconfdir}/pki/sb-certs/
install -d -m 0755 %{buildroot}%{_datadir}/pki/sb-certs/
2021-04-09 03:50:23 +00:00
2021-10-19 04:47:21 +00:00
# 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
2021-04-09 03:50:23 +00:00
2021-10-19 04:47:21 +00:00
# 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
2021-04-09 03:50:23 +00:00
install -d -m 0755 %{buildroot}%{_sysconfdir}/yum.repos.d
2021-04-19 03:21:16 +00:00
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/
2021-05-01 16:44:14 +00:00
install -p -m 0644 %{SOURCE1211} %{buildroot}%{_sysconfdir}/yum.repos.d/
2021-05-28 05:29:55 +00:00
install -p -m 0644 %{SOURCE1212} %{buildroot}%{_sysconfdir}/yum.repos.d/
2021-06-30 06:07:04 +00:00
install -p -m 0644 %{SOURCE1213} %{buildroot}%{_sysconfdir}/yum.repos.d/
2021-10-20 03:10:35 +00:00
install -p -m 0644 %{SOURCE1214} %{buildroot}%{_sysconfdir}/yum.repos.d/
2021-04-19 03:21:16 +00:00
install -p -m 0644 %{SOURCE1220} %{buildroot}%{_sysconfdir}/yum.repos.d/
install -p -m 0644 %{SOURCE1223} %{buildroot}%{_sysconfdir}/yum.repos.d/
2021-05-05 08:45:26 +00:00
install -p -m 0644 %{SOURCE1226} %{buildroot}%{_sysconfdir}/yum.repos.d/
2021-02-01 07:12:25 +00:00
2021-10-19 04:47:21 +00:00
# dnf stuff
install -d -m 0755 %{buildroot}%{_sysconfdir}/dnf/vars
2021-10-20 23:21:00 +00:00
echo "%{contentdir}" > %{buildroot}%{_sysconfdir}/dnf/vars/contentdir
2021-11-30 08:24:40 +00:00
echo "%{rltype}" > %{buildroot}%{_sysconfdir}/dnf/vars/rltype
2021-10-19 04:47:21 +00:00
# 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
################################################################################
2021-02-01 07:12:25 +00:00
%files
2021-10-19 04:47:21 +00:00
%license docs/LICENSE
%doc docs/Contributors docs/COMMUNITY-CHARTER
%dir %{_sysconfdir}/yum.repos.d
2021-02-01 07:12:25 +00:00
%{_sysconfdir}/redhat-release
2021-09-13 22:28:39 +00:00
%{_sysconfdir}/centos-release
2021-02-01 07:12:25 +00:00
%{_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
2021-02-01 07:12:25 +00:00
%{_sysconfdir}/rpm/macros.dist
2021-11-30 02:55:46 +00:00
%{_datadir}/redhat-release
%{_datadir}/rocky-release
2021-02-01 07:12:25 +00:00
%{_prefix}/lib/os-release
%{_prefix}/lib/systemd/system-preset/*
2021-10-05 07:52:23 +00:00
%{_prefix}/lib/systemd/user-preset/*
2021-10-19 04:47:21 +00:00
%{_prefix}/lib/sysctl.d/50-redhat.conf
2021-05-26 15:09:34 +00:00
%{_mandir}/man1/rocky.1.gz
2021-02-01 07:12:25 +00:00
2021-11-30 08:24:40 +00:00
%files -n rocky-repos%{?rlpkg}
2021-10-19 05:03:01 +00:00
%license docs/LICENSE
2021-04-09 03:50:23 +00:00
%config(noreplace) %{_sysconfdir}/yum.repos.d/Rocky-*.repo
%config(noreplace) %{_sysconfdir}/dnf/vars/contentdir
2021-11-30 08:24:40 +00:00
%config(noreplace) %{_sysconfdir}/dnf/vars/rltype
2021-04-09 03:50:23 +00:00
2021-11-30 08:24:40 +00:00
%files -n rocky-gpg-keys%{?rlpkg}
2021-04-09 03:50:23 +00:00
%{_sysconfdir}/pki/rpm-gpg/
2021-02-01 07:12:25 +00:00
2021-11-30 08:24:40 +00:00
%files -n rocky-sb-certs%{?rlpkg}
2021-10-19 04:47:21 +00:00
# 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
2021-02-01 07:12:25 +00:00
%changelog
2021-11-30 08:24:40 +00:00
* Tue Nov 30 2021 Louis Abel <label@rockylinux.org> - 9.0-1.0
2021-10-05 07:52:23 +00:00
- Init for Rocky Linux 9 (Blue Onyx)
2021-11-30 08:24:40 +00:00
- Sync with upstream
- Add direct LookAhead support
- Add spec file notes for packagers