On 11/9/23 18:27, Vít Ondruch wrote:

Dne 07. 11. 23 v 12:56 jpro...@redhat.com napsal(a):
Hi,

On 11/1/23 17:13, Vít Ondruch wrote:
Hi,

Here is yet another Ruby 3.3 snapshot, this time a1e24ab484:

https://koji.fedoraproject.org/koji/taskinfo?taskID=108418495

The respective changes are available in my PR. There is nothing particular what would catch my attention. Happy testing and thx for all the feedback and support.
JFTR, rubygem-rdoc has broken deps, resulting in not being able to install rubygem-rdoc and on EL* systems also the rubygems-devel by extension, this has to do with the `.dev` suffix that gets transformed in rubygem-io-console version.

For fedora, I am doing the repoqueries and installs agains my new reverse dep rebuild Copr, with the SRPM from the koji build mentioned above (no content edits or adjustments): https://copr.fedorainfracloud.org/coprs/jackorp/ruby-3.3-fedora-november/

The correct rdoc refuses to install:
~~~
$ dnf install rubygem-rdoc-6.5.0-183.fc40.noarch
Last metadata expiration check: 0:09:16 ago on Tue Nov  7 11:44:02 2023.
Error:
 Problem: conflicting requests
  - nothing provides rubygem(io-console) >= 0.6.1.dev needed by rubygem-rdoc-6.5.0-183.fc40.noarch from copr:copr.fedorainfracloud.org:jackorp:ruby-3.3-fedora-november
(try to add '--skip-broken' to skip uninstallable packages)
~~~

I'll paste just relevant parts of rpm queries, to minimize noise:
Fedora Rawhide:
~~~
$ dnf install rubygems-devel
$ rpm -q --requires rubygems-devel
rubygem(rdoc) >= 6.5.0

$ rpm -q rubygems-devel
rubygems-devel-3.5.0.dev-183.fc40.noarch

# rubygem-rdoc of this exact version is uninstallable
$ dnf repoquery --requires "rubygem-rdoc-6.5.0-183.fc40.noarch"
rubygem(io-console) >= 0.6.1.dev

$ rpm -q --provides rubygem-io-console
rubygem(io-console) = 0.6.1~dev
rubygem-io-console = 0.6.1.dev-183.fc40
rubygem-io-console(x86-64) = 0.6.1.dev-183.fc40

~~~

Output for EL9 is more or less the same, just s/fc40/el9/, but it's more problematic there, as there isn't new enough version of rdoc, unlike in Fedora.


Good spot. Yes, this is quite unfortunate. We have already faced similar issues, but that were typically just issues with upgrades, which were easy to neglect. But this would probably deserve some improvement.

The issue is that wile it is easy to generate provides such as `rubygem(io-console) = 0.6.1~dev`, where the `~` replaces the period, because there is information about "pre-release", it is not that easy to generate the requires, because there is no such information that the dependency is pre-release. So I can see several options:

1) Close our eyes and ignore the issue in a hope that stable release will not suffer the same
Generally up for this option for this situation. So far I have just adjusted the spec:
~~~
%package -n rubygem-io-console
# ... Other definitions for the package ...
Provides: rubygem(io-console) = 0.6.1.dev
~~~

2) Improve the requires generator. But there will be needed some heuristics, which might be error prone.
This'd be preferred, or adjust the provides generator.

I'd like to point out that I noticed there is already some smartistic on the Provider generator side: https://src.fedoraproject.org/rpms/ruby/blob/5fd12c42e7911fe5a07db3f92167983bd6e78008/f/rubygems.prov#_12
Could we just provide %{version}.dev AND %{version}~dev for such packages?
We'd dodge doing error prone heuristics on Requirement generator and be IMO more correct in listing provides for pre-release gem versions.

3) Temporarily patch the tarball and drop the `.dev` suffix(es).
3)
  a) If any such situation arises for actual release, adjust the requirement via already existing macros, to workaround this situation.

But I find point 3 overall to not be that great (I prefer option 1 for WIP pre-release PRs, least amount of work IMO).

Jarek


Not sure if (3) is feasible, but at the first look, this looks to be like the least effort.



Vít

_______________________________________________
ruby-sig mailing list -- ruby-sig@lists.fedoraproject.org
To unsubscribe send an email to ruby-sig-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to