almalinux-release/almalinux-release.spec

359 lines
15 KiB
RPMSpec
Raw Normal View History

2022-01-24 09:22:43 +00:00
%global distro AlmaLinux
2024-11-25 10:35:27 +00:00
%define release_name Purple Lion
%global major 10
%global minor 0
%global eol_date 2035-06-01
%global beta Beta
2022-01-24 09:22:43 +00:00
Name: almalinux-release
Version: %{major}.%{minor}
2024-11-25 10:35:27 +00:00
Release: 14.4%{?dist}
2022-01-24 09:22:43 +00:00
Summary: %{distro} release files
2024-11-25 10:35:27 +00:00
License: GPL-2.0-or-later
2022-01-24 09:22:43 +00:00
URL: https://almalinux.org
Provides: centos-release = %{version}-%{release}
2024-11-25 10:35:27 +00:00
# When running a compose for ELN, we want to make sure that we pull in the
# correct templates when lorax is installed. This Suggests: will clue
# libdnf to use this set of templates instead of lorax-templates-generic.
Suggests: lorax-templates-almalinux
2022-01-24 09:22:43 +00:00
# Required for a lorax run (to generate install media)
Requires: almalinux-repos = %{version}-%{release}
Provides: centos-release-eula
Provides: redhat-release-eula
# required by epel-release
Provides: redhat-release = %{version}-%{release}
# required by dnf
# https://github.com/rpm-software-management/dnf/blob/4.2.23/dnf/const.py.in#L26
Provides: system-release = %{version}-%{release}
Provides: system-release(releasever) = %{major}
2024-11-25 10:35:27 +00:00
Conflicts: system-release
2022-01-24 09:22:43 +00:00
# required by libdnf
# https://github.com/rpm-software-management/libdnf/blob/0.48.0/libdnf/module/ModulePackage.cpp#L472
Provides: base-module(platform:el%{major})
Source200: EULA
Source201: LICENSE
Source300: 85-display-manager.preset
Source301: 90-default.preset
Source302: 90-default-user.preset
Source303: 99-default-disable.preset
Source304: 50-redhat.conf
2023-05-09 14:08:40 +00:00
Source400: alsecureboot001.cer
2022-01-24 09:22:43 +00:00
Source500: almalinux-appstream.repo
Source501: almalinux-baseos.repo
Source502: almalinux-crb.repo
Source503: almalinux-extras.repo
Source504: almalinux-highavailability.repo
Source505: almalinux-resilientstorage.repo
Source506: almalinux-sap.repo
Source507: almalinux-saphana.repo
# Only for x86_64
2022-05-24 12:20:58 +00:00
Source510: almalinux-nfv.repo
Source511: almalinux-rt.repo
2022-01-24 09:22:43 +00:00
2024-11-25 10:35:27 +00:00
Source600: RPM-GPG-KEY-AlmaLinux-10
2022-01-24 09:22:43 +00:00
%package -n almalinux-sb-certs
Summary: %{distro} public secureboot certificates
Group: System Environment/Base
Provides: system-sb-certs = %{version}-%{release}
Provides: redhat-sb-certs = %{version}-%{release}
2024-04-30 21:30:28 +00:00
Provides: centos-sb-certs = %{version}-%{release}
2024-11-25 10:35:27 +00:00
Provides: almalinux-sb-certs = %{version}-%{release}
2022-01-24 09:22:43 +00:00
%package -n almalinux-repos
Summary: %{distro} package repositories
Requires: almalinux-release = %{version}-%{release}
Requires: almalinux-gpg-keys = %{version}-%{release}
2024-11-25 10:35:27 +00:00
# Required by CentOS SIGs release packages
Provides: centos-stream-repos = %{version}-%{release}
2022-01-24 09:22:43 +00:00
%package -n almalinux-gpg-keys
Summary: %{distro} RPM keys
2024-11-25 10:35:27 +00:00
# Required by CentOS SIGs release packages
Provides: centos-gpg-keys = %{version}-%{release}
2022-01-24 09:22:43 +00:00
%description
%{distro} release files.
%description -n almalinux-sb-certs
%{distro} secureboot certificates
%description -n almalinux-repos
This package provides the package repository files for %{distro}.
%description -n almalinux-gpg-keys
This package provides the RPM signature keys for %{distro}.
%install
# copy license and contributors doc here for %%license and %%doc macros
mkdir -p ./docs
cp %{SOURCE201} ./docs
# create /etc/system-release and /etc/redhat-release
install -d -m 0755 %{buildroot}%{_sysconfdir}
2022-03-22 22:04:54 +00:00
echo "%{distro} release %{major}.%{minor}%{?beta: %{beta}} (%{release_name})" > %{buildroot}%{_sysconfdir}/almalinux-release
2022-01-24 09:22:43 +00:00
ln -s almalinux-release %{buildroot}%{_sysconfdir}/system-release
ln -s almalinux-release %{buildroot}%{_sysconfdir}/redhat-release
2023-05-09 14:08:40 +00:00
# -------------------------------------------------------------------------
# Definitions for /etc/os-release and for macros in macros.dist. These
# macros are useful for spec files where distribution-specific identifiers
# are used to customize packages.
# Name of vendor / name of distribution. Typically used to identify where
# the binary comes from in --help or --version messages of programs.
# Examples: gdb.spec, clang.spec
%global dist_vendor AlmaLinux OS Foundation
%global dist_name %{distro}
# URL of the homepage of the distribution
# Example: gstreamer1-plugins-base.spec
%global dist_home_url https://almalinux.org/
# Bugzilla / bug reporting URLs shown to users.
# Examples: gcc.spec
%global dist_bug_report_url https://bugs.almalinux.org/
# debuginfod server, as used in elfutils.spec.
2024-11-25 10:35:27 +00:00
# %global dist_debuginfod_url https://debuginfod.centos.org/
2023-05-09 14:08:40 +00:00
# -------------------------------------------------------------------------
2024-11-25 10:35:27 +00:00
2022-01-24 09:22:43 +00:00
# Create the os-release file
install -d -m 0755 %{buildroot}%{_prefix}/lib
cat > %{buildroot}%{_prefix}/lib/os-release << EOF
2024-11-25 10:35:27 +00:00
NAME="%{dist_name}"
2023-05-09 14:08:40 +00:00
VERSION="%{major}.%{minor} (%{release_name})"
2022-01-24 09:22:43 +00:00
ID="almalinux"
ID_LIKE="rhel centos fedora"
2022-03-22 22:04:54 +00:00
VERSION_ID="%{major}.%{minor}"
2022-01-24 09:22:43 +00:00
PLATFORM_ID="platform:el%{major}"
2022-03-22 22:04:54 +00:00
PRETTY_NAME="%{distro} %{major}.%{minor}%{?beta: %{beta}} (%{release_name})"
ANSI_COLOR="0;34"
2022-01-24 09:22:43 +00:00
LOGO="fedora-logo-icon"
2022-03-22 22:04:54 +00:00
CPE_NAME="cpe:/o:almalinux:almalinux:%{major}::baseos"
2023-05-09 14:08:40 +00:00
HOME_URL="%{dist_home_url}"
2022-05-23 23:56:04 +00:00
DOCUMENTATION_URL="https://wiki.almalinux.org/"
2024-11-25 10:35:27 +00:00
VENDOR_NAME="AlmaLinux"
VENDOR_URL="%{dist_home_url}"
2023-05-09 14:08:40 +00:00
BUG_REPORT_URL="%{dist_bug_report_url}"
2022-05-23 23:56:04 +00:00
2022-03-22 22:04:54 +00:00
ALMALINUX_MANTISBT_PROJECT="AlmaLinux-%{major}"
ALMALINUX_MANTISBT_PROJECT_VERSION="%{major}.%{minor}"
2022-05-23 23:56:04 +00:00
REDHAT_SUPPORT_PRODUCT="%{distro}"
REDHAT_SUPPORT_PRODUCT_VERSION="%{major}.%{minor}%{?beta: %{beta}}"
SUPPORT_END=%{eol_date}
2022-01-24 09:22:43 +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
2022-03-22 22:04:54 +00:00
echo "cpe:/o:almalinux:almalinux:%{major}::baseos" > %{buildroot}%{_sysconfdir}/system-release-cpe
2022-01-24 09:22:43 +00:00
# create /etc/issue, /etc/issue.net and /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
mkdir -p %{buildroot}%{_rpmmacrodir}
cat > %{buildroot}%{_rpmmacrodir}/macros.dist << EOF
# dist macros.
%%__bootstrap ~bootstrap
%%almalinux_ver %{major}
%%almalinux %{major}
2022-01-24 09:22:43 +00:00
%%centos_ver %{major}
%%centos %{major}
%%rhel %{major}
%%el%{major} 1
2024-11-25 10:35:27 +00:00
%%distcore .el%{major}
%%dist %%{!?distprefix0:%%{?distprefix}}%%{expand:%%{lua:for i=0,9999 do print("%%{?distprefix" .. i .."}") end}}%%{distcore}%%{?distsuffix}%%{?with_bootstrap:%{__bootstrap}}
2023-05-09 14:08:40 +00:00
%%dist_vendor %{dist_vendor}
%%dist_name %{dist_name}
%%dist_home_url %{dist_home_url}
%%dist_bug_report_url %{dist_bug_report_url}
2022-01-24 09:22:43 +00:00
EOF
# use unbranded datadir
install -d -m 0755 %{buildroot}%{_datadir}/almalinux-release
ln -s almalinux-release %{buildroot}%{_datadir}/redhat-release
install -p -m 0644 %{SOURCE200} %{buildroot}%{_datadir}/almalinux-release/
# copy systemd presets
install -d -m 0755 %{buildroot}%{_prefix}/lib/systemd/system-preset/
install -d -m 0755 %{buildroot}%{_prefix}/lib/systemd/user-preset
install -p -m 0644 %{SOURCE300} %{buildroot}%{_prefix}/lib/systemd/system-preset/
install -p -m 0644 %{SOURCE301} %{buildroot}%{_prefix}/lib/systemd/system-preset/
install -p -m 0644 %{SOURCE302} %{buildroot}%{_prefix}/lib/systemd/user-preset/
# installing the same file for both system and user presets to set the same behavior for both
install -p -m 0644 %{SOURCE303} %{buildroot}%{_prefix}/lib/systemd/system-preset/
install -p -m 0644 %{SOURCE303} %{buildroot}%{_prefix}/lib/systemd/user-preset/
# copy sysctl presets
mkdir -p %{buildroot}/%{_prefix}/lib/sysctl.d/
install -m 0644 %{SOURCE304} %{buildroot}/%{_prefix}/lib/sysctl.d/
# Create stub yum repos
mkdir %{buildroot}%{_sysconfdir}/yum.repos.d
touch %{buildroot}%{_sysconfdir}/yum.repos.d/redhat.repo
# Copy secureboot certificates
install -d -m 0755 %{buildroot}%{_sysconfdir}/pki/sb-certs/
install -d -m 0755 %{buildroot}%{_datadir}/pki/sb-certs/
# Install aarch64 certs
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-aarch64.cer
2024-11-25 10:35:27 +00:00
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-kernel-aarch64.cer
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-grub2-aarch64.cer
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-fwupd-aarch64.cer
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-aarch64.cer
2022-01-24 09:22:43 +00:00
# Install x86_64 certs
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-x86_64.cer
2024-11-25 10:35:27 +00:00
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-kernel-x86_64.cer
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-grub2-x86_64.cer
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-fwupd-x86_64.cer
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-x86_64.cer
2022-01-24 09:22:43 +00:00
# Install ppc64le certs
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-ppc64le.cer
2024-11-25 10:35:27 +00:00
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-kernel-ppc64le.cer
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-grub2-ppc64le.cer
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-ppc64le.cer
2022-01-24 09:22:43 +00:00
# Install s390x certs
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-s390x.cer
2024-11-25 10:35:27 +00:00
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-kernel-s390x.cer
install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-s390x.cer
2022-01-24 09:22:43 +00:00
# Link x86_64 certs
2023-05-09 14:08:40 +00:00
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-x86_64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-ca-x86_64.cer
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-kernel-x86_64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-kernel-x86_64.cer
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-grub2-x86_64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-grub2-x86_64.cer
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-fwupd-x86_64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-fwupd-x86_64.cer
2023-11-07 19:45:52 +00:00
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-x86_64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-uki-virt-x86_64.cer
2022-01-24 09:22:43 +00:00
# Link aarch64 certs
2023-05-09 14:08:40 +00:00
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-aarch64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-ca-aarch64.cer
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-kernel-aarch64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-kernel-aarch64.cer
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-grub2-aarch64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-grub2-aarch64.cer
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-fwupd-aarch64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-fwupd-aarch64.cer
2023-11-07 19:45:52 +00:00
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-aarch64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-uki-virt-aarch64.cer
2022-01-24 09:22:43 +00:00
# Link ppc64le certs
2023-05-09 14:08:40 +00:00
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-ppc64le.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-ca-ppc64le.cer
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-kernel-ppc64le.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-kernel-ppc64le.cer
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-grub2-ppc64le.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-grub2-ppc64le.cer
2023-11-07 19:45:52 +00:00
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-ppc64le.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-uki-virt-ppc64le.cer
2022-01-24 09:22:43 +00:00
# Link s390x certs
2023-05-09 14:08:40 +00:00
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-s390x.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-ca-s390x.cer
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-kernel-s390x.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-kernel-s390x.cer
2023-11-07 19:45:52 +00:00
ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-s390x.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-uki-virt-s390x.cer
2022-01-24 09:22:43 +00:00
# copy yum repos
install -d -m 0755 %{buildroot}%{_sysconfdir}/yum.repos.d
install -p -m 0644 %{SOURCE500} %{buildroot}%{_sysconfdir}/yum.repos.d/
install -p -m 0644 %{SOURCE501} %{buildroot}%{_sysconfdir}/yum.repos.d/
install -p -m 0644 %{SOURCE502} %{buildroot}%{_sysconfdir}/yum.repos.d/
install -p -m 0644 %{SOURCE503} %{buildroot}%{_sysconfdir}/yum.repos.d/
install -p -m 0644 %{SOURCE504} %{buildroot}%{_sysconfdir}/yum.repos.d/
install -p -m 0644 %{SOURCE505} %{buildroot}%{_sysconfdir}/yum.repos.d/
install -p -m 0644 %{SOURCE506} %{buildroot}%{_sysconfdir}/yum.repos.d/
install -p -m 0644 %{SOURCE507} %{buildroot}%{_sysconfdir}/yum.repos.d/
# RT and NFV are only for x86_64
%ifarch x86_64
2022-05-24 12:20:58 +00:00
install -p -m 0644 %{SOURCE510} %{buildroot}%{_sysconfdir}/yum.repos.d/
install -p -m 0644 %{SOURCE511} %{buildroot}%{_sysconfdir}/yum.repos.d/
%endif
2022-01-24 09:22:43 +00:00
2024-11-25 10:35:27 +00:00
# Replace basearch to x86_64_v2
%ifarch x86_64_v2
sed -i "s/\$basearch/x86_64_v2/g" %{buildroot}%{_sysconfdir}/yum.repos.d/*.repo
sed -i '/^mirrorlist=/ s|$|?arch=x86_64_v2|g' %{buildroot}%{_sysconfdir}/yum.repos.d/*.repo
%endif
2022-01-24 09:22:43 +00:00
# dnf variables
install -d -m 0755 %{buildroot}%{_sysconfdir}/dnf/vars
echo "%{major}-stream" > %{buildroot}%{_sysconfdir}/dnf/vars/stream
2022-01-24 09:22:43 +00:00
# copy GPG keys
install -d -m 0755 %{buildroot}%{_sysconfdir}/pki/rpm-gpg
install -p -m 0644 %{SOURCE600} %{buildroot}%{_sysconfdir}/pki/rpm-gpg/
2024-11-25 10:35:27 +00:00
# These variables should be set in the build environment to change rpm names
mkdir -p %{buildroot}%{_sysconfdir}/rpm
%ifarch x86_64_v2
echo '%%_target_platform x86_64-%%{_vendor}-%%{_target_os}%%{?_gnu}' >> %{buildroot}%{_sysconfdir}/rpm/macros.x86_64_v2
echo '%%x86_64_v2 1' >> %{buildroot}%{_sysconfdir}/rpm/macros.x86_64_v2
%endif
2022-01-24 09:22:43 +00:00
%files
%license docs/LICENSE
%{_sysconfdir}/redhat-release
%{_sysconfdir}/system-release
%{_sysconfdir}/almalinux-release
%config(noreplace) %{_sysconfdir}/os-release
%config %{_sysconfdir}/system-release-cpe
%config(noreplace) %{_sysconfdir}/issue
%config(noreplace) %{_sysconfdir}/issue.net
%dir %{_sysconfdir}/issue.d
%dir %{_sysconfdir}/yum.repos.d
%ghost %{_sysconfdir}/yum.repos.d/redhat.repo
%{_rpmmacrodir}/macros.dist
%{_datadir}/redhat-release
%{_datadir}/almalinux-release
%{_prefix}/lib/os-release
%{_prefix}/lib/systemd/system-preset/*
%{_prefix}/lib/systemd/user-preset/*
%{_prefix}/lib/sysctl.d/50-redhat.conf
2024-11-25 10:35:27 +00:00
%ifarch x86_64_v2
%config(noreplace) %{_sysconfdir}/rpm/macros.x86_64_v2
%endif
2022-01-24 09:22:43 +00:00
%files -n almalinux-sb-certs
# Note to future packagers:
# resetting the symlinks in /etc/pki/sb-certs on upgrade is the intended behavior here
%dir %{_sysconfdir}/pki/sb-certs
%dir %{_datadir}/pki/sb-certs/
%{_sysconfdir}/pki/sb-certs/*.cer
%{_datadir}/pki/sb-certs/*.cer
2022-01-25 13:12:19 +00:00
%files -n almalinux-repos
2022-05-23 21:02:16 +00:00
%config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-appstream.repo
%config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-baseos.repo
%config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-crb.repo
2024-11-25 10:35:27 +00:00
%config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-extras-common.repo
2022-05-23 21:02:16 +00:00
%config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-highavailability.repo
%config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-resilientstorage.repo
%config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-sap.repo
%config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-saphana.repo
%ifarch x86_64
%config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-nfv.repo
%config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-rt.repo
%endif
%config(noreplace) %{_sysconfdir}/dnf/vars/stream
2022-01-24 09:22:43 +00:00
%files -n almalinux-gpg-keys
%{_sysconfdir}/pki/rpm-gpg
%changelog
2024-11-25 10:35:27 +00:00
* Mon Nov 25 2024 Eduard Abdullin <eabdullin@almalinux.org> - 10.0-14.4
- Initial release