Revert "Generate only versioned rpms"

Breaks too many other packages in the distribution.

This reverts commit b57548da40.

Related: RHEL-67814
This commit is contained in:
Jan Staněk 2025-03-06 12:12:02 +01:00
parent bb7c0670b2
commit 4f93821a09
No known key found for this signature in database
GPG Key ID: 2972F2037B243B6D

View File

@ -2,6 +2,10 @@
# The default version will own /usr/bin/node and friends
%global nodejs_pkg_major 22
%if 0%{?fedora} == 41 || 0%{?fedora} == 42 || 0%{?rhel} == 10
%global nodejs_default %{nodejs_pkg_major}
%endif
%global nodejs_default_sitelib %{_prefix}/lib/node_modules
%global nodejs_private_sitelib %{nodejs_default_sitelib}_%{nodejs_pkg_major}
@ -218,14 +222,19 @@ BuildRequires: pkgconfig(sqlite3) >= 3.45.0
%if 0%{?nodejs_default}
Provides: nodejs = %{nodejs_envr}
%endif
# RHEL-10: obsolete packages with the unversioned names;
# we do not want a default stream at all.
# The default version is set to the last version shipped in default stream
%define obsolete_default_stream_package() %{expand:\
Obsoletes: nodejs%{?1:-%{1}} < %{?2}%{!?2:22.13.1-2}
# To keep the upgrade path clean, we Obsolete nodejsXX from the nodejs
# package and nodejsXX-foo from individual subpackages.
# Note that using Obsoletes without package version is not standard practice.
# Here we assert that *any* version of the system's default interpreter is
# preferable to an "extra" interpreter. For example, nodejs-20.5.0 will
# replace nodejs20-20.6.0.
%define unversioned_obsoletes_of_nodejsXX_if_default() %{expand:\
Obsoletes: nodejs%{nodejs_pkg_major}%{?1:-%{1}} < %{nodejs_envr}\
Provides: nodejs%{nodejs_pkg_major}%{?1:-%{1}} = %{nodejs_envr}\
}
%else
%define unversioned_obsoletes_of_nodejsXX_if_default() %{nil}
%endif
%if %{with bundled}
Provides: bundled(libuv) = %{libuv_version}
@ -350,7 +359,7 @@ Requires: nodejs-undici
%endif
%obsolete_default_stream_package
%unversioned_obsoletes_of_nodejsXX_if_default
%description
@ -361,6 +370,16 @@ makes it lightweight and efficient, perfect for data-intensive \
real-time applications that run across distributed devices.}
%if 0%{?nodejs_default}
%description -n %{pkgname}
Node.js is a platform built on Chrome's JavaScript runtime \
for easily building fast, scalable network applications. \
Node.js uses an event-driven, non-blocking I/O model that \
makes it lightweight and efficient, perfect for data-intensive \
real-time applications that run across distributed devices.}
%endif
%package -n %{pkgname}-devel
Summary: JavaScript runtime - development headers
Group: Development/Languages
@ -380,7 +399,7 @@ Requires: libuv-devel%{?_isa}
%if 0%{?nodejs_default}
Provides: nodejs-devel = %{nodejs_envr}
%endif
%obsolete_default_stream_package devel
%unversioned_obsoletes_of_nodejsXX_if_default devel
Provides: nodejs-devel-pkg = %{nodejs_envr}
Conflicts: nodejs-devel-pkg
@ -410,7 +429,7 @@ Provides: v8%{?_isa} = %{v8_epoch}:%{v8_version}-%{nodejs_release}
Obsoletes: v8 < 1:6.7.17-10
Provides: nodejs-libs = %{nodejs_envr}
%obsolete_default_stream_package libs
%unversioned_obsoletes_of_nodejsXX_if_default libs
%description -n %{pkgname}-libs
Libraries to support Node.js and provide stable v8 interfaces.
@ -420,7 +439,7 @@ Libraries to support Node.js and provide stable v8 interfaces.
Summary: Non-English locale data for Node.js
Requires: %{pkgname}%{?_isa} = %{nodejs_envr}
%obsolete_default_stream_package full-i18n
%unversioned_obsoletes_of_nodejsXX_if_default full-i18n
%description -n %{pkgname}-full-i18n
@ -469,10 +488,12 @@ Provides: npm = %{npm_envr}
# Obsolete the old 'npm' package
Obsoletes: npm < 1:9
%endif
# Obsolete latest version of default stream package.
%obsolete_default_stream_package npm 10.9.2-1.22.13.1.2
# Obsolete others. We can't use %%unversioned_obsoletes_of_nodejsXX_if_default
# here because the Provides: needs its own version
Obsoletes: nodejs%{nodejs_pkg_major}-npm < %{npm_envr}
Provides: nodejs%{nodejs_pkg_major}-npm = %{npm_envr}
%endif
%description -n %{pkgname}-npm
@ -487,7 +508,7 @@ BuildArch: noarch
Requires(meta): %{pkgname} = %{nodejs_envr}
Provides: nodejs-docs = %{nodejs_envr}
%obsolete_default_stream_package docs
%unversioned_obsoletes_of_nodejsXX_if_default docs
%description -n %{pkgname}-docs