pgreco / rpms / centos-release

Forked from rpms/centos-release 10 months ago
Blob Blame Raw
%define debug_package %{nil}
%define product_family CentOS Linux
%define variant_titlecase Server
%define variant_lowercase server
%ifarch %{arm}
%define release_name AltArch
%define contentdir   altarch
%define release_name Core
%define contentdir   centos
%ifarch ppc64le
%define tuned_profile :server
%define infra_var stock
%define base_release_version 8
%define full_release_version 8
%define dist_release_version 8
%define upstream_rel_long 8.2-0
%define upstream_rel 8.2
%define centos_rel 2.2004
#define beta Beta
%define dist .el%{dist_release_version}

# The anaconda scripts in %%{_libexecdir} can create false requirements
%global __requires_exclude_from %{_libexecdir}

Name:           centos-release
Version:        %{upstream_rel}
Release:        %{centos_rel}.0.1%{?dist}
Summary:        %{product_family} release file
Group:          System Environment/Base
License:        GPLv2
%ifnarch %{arm}
%define pkg_name %{name}
%define pkg_name centos-userland-release
%package -n %{pkg_name}
Summary:        %{product_family} release file
Provides:       centos-release = %{version}-%{release}
Provides:       centos-release(upstream) = %{upstream_rel}
Provides:       redhat-release = %{upstream_rel_long}
Provides:       system-release = %{upstream_rel_long}
Provides:       system-release(releasever) = %{base_release_version}
Provides:       base-module(platform:el%{base_release_version})

Provides:       centos-release-eula
Provides:       redhat-release-eula

Requires:       centos-gpg-keys = %{version}-%{release}
Requires:       centos-repos >= %{version}-%{release}

Source1:        85-display-manager.preset
Source2:        90-default.preset
Source3:        99-default-disable.preset
Source10:       RPM-GPG-KEY-centosofficial
Source11:       RPM-GPG-KEY-centostesting

Source100:      rootfs-expand

Source200:      EULA
Source201:      GPL
Source202:      Contributors

Source300:      CentOS-Base.repo
Source301:      CentOS-CR.repo
Source302:      CentOS-Debuginfo.repo
Source303:      CentOS-Extras.repo
Source304:      CentOS-fasttrack.repo
Source305:      CentOS-Media.repo
Source306:      CentOS-Sources.repo
Source307:      CentOS-Vault.repo
Source308:      CentOS-AppStream.repo
Source309:      CentOS-PowerTools.repo
Source310:      CentOS-centosplus.repo
Source311:      CentOS-HA.repo
Source312:      CentOS-Devel.repo

%ifarch %{arm}
%description -n %{pkg_name}
%{product_family} release files

%{product_family} release files

%package -n centos-repos
Summary:        %{product_family} package repositories
Group:          System Environment/Base
Provides:       centos-repos(%{base_release_version}) = %{upstream_rel}
Requires:       system-release = %{upstream_rel}
Requires:       centos-gpg-keys = %{version}-%{release}
Conflicts:      %{name} < 8.0-0.1905.0.10

%description -n centos-repos
%{product_family} package repository files for yum and dnf

%package -n centos-gpg-keys
Summary:        %{product_family} RPM keys
Group:          System Environment/Base
Conflicts:      %{name} < 8.0-0.1905.0.10
BuildArch:      noarch

%description -n centos-gpg-keys
%{product_family} RPM signature keys

echo OK

echo OK

rm -rf %{buildroot}

# create skeleton
mkdir -p %{buildroot}/etc
mkdir -p %{buildroot}%{_prefix}/lib

# create /etc/system-release and /etc/redhat-release
echo "%{product_family} release %{full_release_version}.%{centos_rel} (%{release_name}) " > %{buildroot}/etc/centos-release
echo "Derived from Red Hat Enterprise Linux %{upstream_rel} (Source)" > %{buildroot}/etc/centos-release-upstream
ln -s centos-release %{buildroot}/etc/system-release
ln -s centos-release %{buildroot}/etc/redhat-release

# Create the os-release file
cat << EOF >>%{buildroot}%{_prefix}/lib/os-release
VERSION="%{full_release_version} (%{release_name})"
ID_LIKE="rhel fedora"
PRETTY_NAME="%{product_family} %{full_release_version} (%{release_name})"


# 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:centos:centos:%{base_release_version}" > %{buildroot}/etc/system-release-cpe

# create /etc/issue and /etc/
echo '\S' > %{buildroot}/etc/issue
echo 'Kernel \r on an \m' >> %{buildroot}/etc/issue
cp %{buildroot}/etc/issue %{buildroot}/etc/
echo >> %{buildroot}/etc/issue

# copy GPG keys
mkdir -p -m 755 %{buildroot}/etc/pki/rpm-gpg
install -m 644 %{SOURCE10} %{buildroot}/etc/pki/rpm-gpg
install -m 644 %{SOURCE11} %{buildroot}/etc/pki/rpm-gpg

# copy yum repos
mkdir -p -m 755 %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE300} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE301} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE302} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE303} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE304} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE305} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE306} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE307} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE308} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE309} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE310} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE311} %{buildroot}/etc/yum.repos.d
install -m 644 %{SOURCE312} %{buildroot}/etc/yum.repos.d

mkdir -p -m 755 %{buildroot}/etc/dnf/vars
echo "%{infra_var}" > %{buildroot}/etc/dnf/vars/infra
echo "%{contentdir}" >%{buildroot}/etc/dnf/vars/contentdir
%ifarch %{arm}
echo %{base_release_version} > %{buildroot}/etc/dnf/vars/releasever

# set up the dist tag macros
install -d -m 755 %{buildroot}/etc/rpm
cat >> %{buildroot}/etc/rpm/macros.dist << EOF
# dist macros.

%%centos_ver %{base_release_version}
%%centos %{base_release_version}
%%rhel %{base_release_version}
%%dist .el%{base_release_version}
%%el%{base_release_version} 1

# use unbranded datadir
mkdir -p -m 755 %{buildroot}/%{_datadir}/centos-release
ln -s centos-release %{buildroot}/%{_datadir}/redhat-release
install -m 644 %{SOURCE200} %{buildroot}/%{_datadir}/centos-release

# use unbranded docdir
mkdir -p -m 755 %{buildroot}/%{_docdir}/centos-release
ln -s centos-release %{buildroot}/%{_docdir}/redhat-release
install -m 644 %{SOURCE201} %{buildroot}/%{_docdir}/centos-release
install -m 644 %{SOURCE202} %{buildroot}/%{_docdir}/centos-release

# copy systemd presets
mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system-preset/
install -m 0644 %{SOURCE1} %{buildroot}/%{_prefix}/lib/systemd/system-preset/
install -m 0644 %{SOURCE2} %{buildroot}/%{_prefix}/lib/systemd/system-preset/
install -m 0644 %{SOURCE3} %{buildroot}/%{_prefix}/lib/systemd/system-preset/

%ifarch %{arm} aarch64
# Install armhfp/aarch64 specific tools
install -D -m 0755 %{SOURCE100} %{buildroot}%{_bindir}/rootfs-expand

rm -rf %{buildroot}

%files -n %{pkg_name}
%config(noreplace) /etc/os-release
%config /etc/system-release-cpe
%config(noreplace) /etc/issue
%config(noreplace) /etc/
%ifarch %{arm} aarch64
%attr(0755,root,root) %{_bindir}/rootfs-expand

%files -n centos-repos
%config(noreplace) /etc/yum.repos.d/*
%config(noreplace) /etc/dnf/vars/*

%files -n centos-gpg-keys

* Fri May 15 2020 Pablo Greco <> - 8-2.0.1
- Relax dependency for centos-repos
- Remove update_boot, it was never used in 8
- Add rootfs_expand to aarch64
- Bump release for 8.2

* Thu Mar 12 2020 - 8-1.0.9
- Add the Devel repo to centos-release
- Install os-release(5) content to /usr/lib and have /etc/os-release be a symlink (ngompa)pr#9

* Thu Jan 02 2020 Brian Stinson <> - 8-1.0.8
- Add base module platform Provides so DNF can auto-discover modular platform (ngompa)pr#6
- Switched CR repo to mirrorlist to spread the load (arrfab)pr#5

* Thu Dec 19 2019 - 8-1.0.7
- Typo fixes
- Disable the HA repo by default

* Wed Dec 18 2019 Pablo Greco <> - 8-1.el8
- Fix requires in armhfp

* Tue Dec 17 2019 - 8-1.el8
- Add the HighAvailability repository

* Wed Aug 14 2019 Neal Gompa <> 8-1.el8
- Split repositories and GPG keys out into subpackages

* Sat Aug 10 2019 Fabian Arrotin <> 8-0.el8
- modified baseurl paths, even if disabled

* Sat Aug 10 2019 Fabian Arrotin <> 8-0.el8
- Enabled Extras by default.
- Fixed sources paths for BaseOS/AppStream

* Sat Aug 10 2019 Brian Stinson <> 8-0.el7
- Update Debuginfo and fasttrack to use releasever
- Fix CentOS-media.repo to include appstream

* Wed May  8 2019 Pablo Greco <> 8-0.el7
- Initial setup for CentOS-8