From 7c1e961e6b38716a2f163a0068a430bed645602f Mon Sep 17 00:00:00 2001 From: Funda Wang Date: Sun, 29 Jun 2025 20:08:52 +0800 Subject: [PATCH] Unify version declaration --- generic-release.spec | 76 +++++++++++++++++++++++++++++++------------- 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/generic-release.spec b/generic-release.spec index 6b4035c..eb0a585 100644 --- a/generic-release.spec +++ b/generic-release.spec @@ -1,11 +1,31 @@ %define debug_package %{nil} + %define product_family %{?_vendor:%{_vendor}}%{!?_vendor:openEuler} +%define product_family_lowercase $(echo %{product_family} | tr "[:upper:]" "[:lower:]") +%if "%{product_family}" == "openEuler" +%define rpm_release_suffix_product oe +%endif + +%define product_vendor %{?_vendor:%{_vendor}}%{!?_vendor:openEuler} + %define variant_titlecase Server -%define variant_lowercase server -%define dist_release_version 8 -%define generic_version 20.03 -%define generic_patch_level LTS -%define generic_release 55 +%define variant_lowercase $(echo %{variant_titlecase} | tr "[:upper:]" "[:lower:]") + +%define generic_version 25.09 +%define rpm_release_suffix_product_version $(echo %{generic_version} | tr -d '\\.') + +# Define is_lts_branch for LTS branches +#define is_lts_branch 1 +%{?is_lts_branch: %define generic_patch_level LTS} + +# Define generic_patch_level_extend for Service Packs +#define generic_patch_level_extend SP1 +%{?generic_patch_level_extend: %define rpm_release_suffix_product_patch_level_extend $(echo %{generic_patch_level_extend} | tr "A-Z" "a-z")} + +# define preversion for pre releases +%define preversion alpha0 + +%define generic_release 1 %define builtin_release_version 1.0 %define current_arch %{_arch} @@ -14,21 +34,21 @@ %endif Name: %{product_family}-release -Version: %{generic_version}%{generic_patch_level} +Version: %{generic_version}%{?generic_patch_level}%{?generic_patch_level_extend:_%{generic_patch_level_extend}}%{?preversion:~%{preversion}} Release: %{generic_release} Summary: %{product_family} release file License: Mulan PSL v2 Provides: %{product_family}-release -Provides: %{_vendor}-release Provides: generic-release -Provides: system-release = %{generic_version}%{generic_patch_level} +Provides: system-release = %{generic_version}%{?generic_patch_level}%{?generic_patch_level_extend:_%{generic_patch_level_extend}}%{?preversion:~%{preversion}} Source0: generic-release-%{builtin_release_version}.tar.gz Source1: 85-display-manager.preset Source2: 90-default.preset Source3: 99-default-disable.preset -BuildRequires: python3 Requires: %{product_family}-repos bc +Requires(post): coreutils rpm +BuildRequires: /usr/bin/tr Obsoletes: yum-utils yum-utils-help yum-utils-plugins %{product_family}-performance %description @@ -41,18 +61,18 @@ Obsoletes: yum-utils yum-utils-help yum-utils-plugins %{product_family}-perform echo OK %install -rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/etc -echo "%{product_family} release %{generic_version} (%{generic_patch_level})" > $RPM_BUILD_ROOT/etc/%{product_family}-release +echo "%{product_family} release %{generic_version}%{?generic_patch_level: (%{generic_patch_level}%{?generic_patch_level_extend:-%{generic_patch_level_extend}})}" > $RPM_BUILD_ROOT/etc/%{product_family}-release ln -sf %{product_family}-release $RPM_BUILD_ROOT/etc/system-release # create /etc/os-release cat << EOF >>$RPM_BUILD_ROOT/etc/os-release NAME="%{product_family}" -VERSION="%{generic_version} (%{generic_patch_level})" +VERSION="%{generic_version}%{?generic_patch_level: (%{generic_patch_level}%{?generic_patch_level_extend:-%{generic_patch_level_extend}})}" ID="%{product_family}" +ID_LIKE=openEuler VERSION_ID="%{generic_version}" -PRETTY_NAME="%{product_family} %{generic_version} (%{generic_patch_level})" +PRETTY_NAME="%{product_family} %{generic_version}%{?generic_patch_level: (%{generic_patch_level}%{?generic_patch_level_extend:-%{generic_patch_level_extend}})}" ANSI_COLOR="0;31" EOF @@ -61,7 +81,7 @@ mkdir -p -m 755 $RPM_BUILD_ROOT/etc/profile.d cp -a system-info.sh $RPM_BUILD_ROOT/etc/profile.d/ # write cpe to /etc/system/release-cpe -echo "cpe:/o:%{product_family}:%{product_family}:%{version}:ga:server" > $RPM_BUILD_ROOT/etc/system-release-cpe +echo "cpe:/o:%{product_vendor}:%{product_family}:%{version}:%{?!preversion:ga}:%{variant_lowercase}" > $RPM_BUILD_ROOT/etc/system-release-cpe # create /etc/issue and /etc/issue.net echo '\S' > $RPM_BUILD_ROOT/etc/issue @@ -76,12 +96,21 @@ mkdir -p $RPM_BUILD_ROOT/var/lib cp supportinfo $RPM_BUILD_ROOT/var/lib/supportinfo # set up the dist tag macros -install -d -m 755 $RPM_BUILD_ROOT/etc/rpm -cat >> $RPM_BUILD_ROOT/etc/rpm/macros.dist << EOF +install -d -m 755 $RPM_BUILD_ROOT/usr/lib/rpm/macros.d +cat >> $RPM_BUILD_ROOT/usr/lib/rpm/macros.d/macros.dist << EOF # dist macros. -%%dist %%{nil} -%%%{product_family} 2 +%%dist %{?rpm_release_suffix_product:.%{rpm_release_suffix_product}}%{rpm_release_suffix_product_version}%{?rpm_release_suffix_product_patch_level_extend} +%%dist_vendor %{product_vendor} +%%_vendor %{product_vendor} +%%dist_name %{product_family} +%%dist_version %{generic_version}%{?generic_patch_level: (%{generic_patch_level}%{?generic_patch_level_extend:-%{generic_patch_level_extend}})} +%%dist_version_generic %{generic_version} +%{?generic_patch_level:%%dist_version_generic_patch_level %{generic_patch_level}} +%{?generic_patch_level_extend:%%dist_version_generic_patch_level_extend %{generic_patch_level_extend}} + +%%%{product_family} %{rpm_release_suffix_product_version} +%%%{product_family_lowercase} %{rpm_release_suffix_product_version} EOF # use unbranded datadir @@ -98,9 +127,6 @@ 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/ -%clean -rm -rf $RPM_BUILD_ROOT - %post rpm -q openEuler-performance > /dev/null @@ -118,7 +144,7 @@ fi %config /etc/system-release-cpe %config(noreplace) /etc/issue %config(noreplace) /etc/issue.net -/etc/rpm/macros.dist +/usr/lib/rpm/macros.d/macros.dist %{_docdir}/%{product_family}-release/* %{_datadir}/%{product_family}-release/* %{_prefix}/lib/systemd/system-preset/* @@ -126,6 +152,12 @@ fi /usr/share/eula/eula.* %changelog +* Sat Jun 28 2025 Funda Wang - 25.09~alpha0-1 +- Unify version declaration +- Produce distsuffix via generic-release +- Add more macros for packagers to determine current distro version +- Distingush product name and product vendor + * Sat Mar 22 2025 Funda Wang - 1.0-55 - Enable logrotate.timer by default -- Gitee