Improve bundle gems prerelease handling.

This attempts to split pre-release version by `tilde`. This should
prevent issues such as:

~~~
Problem 1: package rubygems-devel-3.6.0.dev-15.fc42.noarch from copr_base requires ruby(rubygems) >= 3.6.0.dev-15.fc42, but none of the providers can be installed
  - cannot install the best candidate for the job
  - nothing provides rubygem(psych) >= 5.2.0.beta1 needed by rubygems-3.6.0.dev-15.fc42.noarch from copr_base
~~~

Where due to this change the `psych` virtual provide becomes:

~~~
rubygem(psych) = 5.2.0~beta1
~~~
This commit is contained in:
Vít Ondruch 2024-10-29 19:43:57 +01:00
commit c122b25ac6

View file

@ -87,8 +87,10 @@
%global set_version 1.1.0
%global shellwords_version 0.2.0
%global singleton_version 0.2.0
%global stringio_version 3.1.2.dev
%global strscan_version 3.1.1.dev
%global stringio_version 3.1.2
%global stringio_prerelease .dev
%global strscan_version 3.1.1
%global strscan_prerelease .dev
%global syntax_suggest_version 2.0.0
%global syslog_version 0.1.2
%global tempfile_version 0.2.1
@ -108,7 +110,8 @@
%global io_console_version 0.7.2
%global irb_version 1.14.1
%global json_version 2.7.2
%global psych_version 5.2.0.beta1
%global psych_version 5.2.0
%global psych_prerelease .beta1
%global rdoc_version 6.7.0
# Bundled gems.
@ -393,7 +396,7 @@ Requires: ruby(release)
Recommends: rubygem(bundler) >= %{bundler_version}
Recommends: rubygem(rdoc) >= %{rdoc_version}
Recommends: rubygem(io-console)
Requires: rubygem(psych) >= %{psych_version}
Requires: rubygem(psych) >= %{psych_version}%{?psych_prerelease:~%{sub %{psych_prerelease} 2 -1}}
Provides: gem = %{version}-%{release}
Provides: ruby(rubygems) = %{version}-%{release}
Provides: bundled(rubygems) = %{rubygems_version}
@ -544,9 +547,9 @@ markup language.
%package -n rubygem-psych
Summary: A libyaml wrapper for Ruby
Version: %{psych_version}
Version: %{psych_version}%{?psych_prerelease:~%{sub %{psych_prerelease} 2 -1}}
License: MIT
Provides: bundled(rubygem-psych) = %{psych_version}
Provides: bundled(rubygem-psych) = %{psych_version}%{?psych_prerelease:~%{sub %{psych_prerelease} 2 -1}}
%description -n rubygem-psych
Psych is a YAML parser and emitter. Psych leverages