From c122b25ac690e4bba51df7be1b82cc6e866539b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 29 Oct 2024 19:43:57 +0100 Subject: [PATCH] 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 ~~~ --- ruby.spec | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ruby.spec b/ruby.spec index b050ad2..d87724c 100644 --- a/ruby.spec +++ b/ruby.spec @@ -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