%global distro AlmaLinux %define release_name Purple Lion %global major 10 %global minor 0 %global eol_date 2035-06-01 %global beta Beta Name: almalinux-release Version: %{major}.%{minor} Release: 14.4%{?dist} Summary: %{distro} release files License: GPL-2.0-or-later URL: https://almalinux.org Provides: centos-release = %{version}-%{release} # 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 # 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} Conflicts: system-release # 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 Source400: alsecureboot001.cer Source500: almalinux-appstream.repo Source501: almalinux-baseos.repo Source502: almalinux-crb.repo Source503: almalinux-extras.repo Source504: almalinux-highavailability.repo Source505: almalinux-sap.repo Source506: almalinux-saphana.repo # Only for x86_64 Source510: almalinux-nfv.repo Source511: almalinux-rt.repo Source600: RPM-GPG-KEY-AlmaLinux-10 %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} Provides: centos-sb-certs = %{version}-%{release} Provides: almalinux-sb-certs = %{version}-%{release} %package -n almalinux-repos Summary: %{distro} package repositories Requires: almalinux-release = %{version}-%{release} Requires: almalinux-gpg-keys = %{version}-%{release} # Required by CentOS SIGs release packages Provides: centos-stream-repos = %{version}-%{release} %package -n almalinux-gpg-keys Summary: %{distro} RPM keys # Required by CentOS SIGs release packages Provides: centos-gpg-keys = %{version}-%{release} %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} echo "%{distro} release %{major}.%{minor}%{?beta: %{beta}} (%{release_name})" > %{buildroot}%{_sysconfdir}/almalinux-release ln -s almalinux-release %{buildroot}%{_sysconfdir}/system-release ln -s almalinux-release %{buildroot}%{_sysconfdir}/redhat-release # ------------------------------------------------------------------------- # 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. # %global dist_debuginfod_url https://debuginfod.centos.org/ # ------------------------------------------------------------------------- # Create the os-release file install -d -m 0755 %{buildroot}%{_prefix}/lib cat > %{buildroot}%{_prefix}/lib/os-release << EOF NAME="%{dist_name}" VERSION="%{major}.%{minor} (%{release_name})" ID="almalinux" ID_LIKE="rhel centos fedora" VERSION_ID="%{major}.%{minor}" PLATFORM_ID="platform:el%{major}" PRETTY_NAME="%{distro} %{major}.%{minor}%{?beta: %{beta}} (%{release_name})" ANSI_COLOR="0;34" LOGO="fedora-logo-icon" CPE_NAME="cpe:/o:almalinux:almalinux:%{major}::baseos" HOME_URL="%{dist_home_url}" DOCUMENTATION_URL="https://wiki.almalinux.org/" VENDOR_NAME="AlmaLinux" VENDOR_URL="%{dist_home_url}" BUG_REPORT_URL="%{dist_bug_report_url}" ALMALINUX_MANTISBT_PROJECT="AlmaLinux-%{major}" ALMALINUX_MANTISBT_PROJECT_VERSION="%{major}.%{minor}" REDHAT_SUPPORT_PRODUCT="%{distro}" REDHAT_SUPPORT_PRODUCT_VERSION="%{major}.%{minor}%{?beta: %{beta}}" SUPPORT_END=%{eol_date} 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:almalinux:almalinux:%{major}::baseos" > %{buildroot}%{_sysconfdir}/system-release-cpe # 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} %%centos_ver %{major} %%centos %{major} %%rhel %{major} %%el%{major} 1 %%distcore .el%{major} %%dist %%{!?distprefix0:%%{?distprefix}}%%{expand:%%{lua:for i=0,9999 do print("%%{?distprefix" .. i .."}") end}}%%{distcore}%%{?distsuffix}%%{?with_bootstrap:%{__bootstrap}} %%dist_vendor %{dist_vendor} %%dist_name %{dist_name} %%dist_home_url %{dist_home_url} %%dist_bug_report_url %{dist_bug_report_url} 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 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 # Install x86_64 certs install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-x86_64.cer 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 # Install ppc64le certs install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-ppc64le.cer 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 # Install s390x certs install -m 644 %{SOURCE400} %{buildroot}%{_datadir}/pki/sb-certs/secureboot-ca-s390x.cer 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 # Link x86_64 certs 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 ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-x86_64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-uki-virt-x86_64.cer # Link aarch64 certs 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 ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-aarch64.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-uki-virt-aarch64.cer # Link ppc64le certs 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 ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-ppc64le.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-uki-virt-ppc64le.cer # Link s390x certs 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 ln -sr %{buildroot}%{_datadir}/pki/sb-certs/secureboot-uki-virt-s390x.cer %{buildroot}%{_sysconfdir}/pki/sb-certs/secureboot-uki-virt-s390x.cer # 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 install -p -m 0644 %{SOURCE510} %{buildroot}%{_sysconfdir}/yum.repos.d/ install -p -m 0644 %{SOURCE511} %{buildroot}%{_sysconfdir}/yum.repos.d/ %endif # 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 # Replace $releasever variable with beta if it is set %if %{defined beta} sed -i "s/\$releasever/%{major}.%{minor}-beta/g" %{buildroot}%{_sysconfdir}/yum.repos.d/*.repo sed -i "s|https://repo.almalinux.org/almalinux/|https://vault.almalinux.org/|g" %{buildroot}%{_sysconfdir}/yum.repos.d/*.repo %endif # dnf variables install -d -m 0755 %{buildroot}%{_sysconfdir}/dnf/vars echo "%{major}-stream" > %{buildroot}%{_sysconfdir}/dnf/vars/stream # copy GPG keys install -d -m 0755 %{buildroot}%{_sysconfdir}/pki/rpm-gpg install -p -m 0644 %{SOURCE600} %{buildroot}%{_sysconfdir}/pki/rpm-gpg/ # 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 %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 %ifarch x86_64_v2 %config(noreplace) %{_sysconfdir}/rpm/macros.x86_64_v2 %endif %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 %files -n almalinux-repos %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 %config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-extras.repo %config(noreplace) %{_sysconfdir}/yum.repos.d/almalinux-highavailability.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 %files -n almalinux-gpg-keys %{_sysconfdir}/pki/rpm-gpg %changelog * Mon Nov 25 2024 Eduard Abdullin - 10.0-14.4 - Initial release