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